ngx-bimplus-components 0.0.149 → 0.0.151

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 (100) hide show
  1. package/assets/images/default/ic_view_orthographic.svg +7 -0
  2. package/assets/images/default/ic_view_orthographic_maincolor.svg +7 -0
  3. package/assets/images/default/ic_view_perspective.svg +3 -0
  4. package/assets/images/default/ic_view_perspective_disabled.svg +3 -0
  5. package/assets/images/default/ic_view_perspective_maincolor.svg +3 -0
  6. package/assets/languages/strings_cs.json +72 -24
  7. package/assets/languages/strings_de.json +15 -4
  8. package/assets/languages/strings_en.json +9 -6
  9. package/assets/languages/strings_es.json +54 -6
  10. package/assets/languages/strings_fr.json +50 -6
  11. package/assets/languages/strings_it.json +50 -2
  12. package/assets/languages/strings_nl.json +796 -796
  13. package/assets/languages/strings_ro.json +55 -7
  14. package/assets/languages/strings_ru.json +93 -45
  15. package/assets/languages/strings_tr.json +50 -2
  16. package/assets/languages/strings_us.json +44 -8
  17. package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +3 -3
  18. package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +5 -5
  19. package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.interface.mjs +1 -1
  20. package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.service.mjs +4 -4
  21. package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +5 -5
  22. package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.interface.mjs +1 -1
  23. package/esm2022/lib/components/bimplus-contact/bimplus-contact.component.mjs +5 -5
  24. package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.component.mjs +3 -3
  25. package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.interface.mjs +1 -1
  26. package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +3 -3
  27. package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
  28. package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.mjs +5 -5
  29. package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.interface.mjs +1 -1
  30. package/esm2022/lib/components/bimplus-floating-bar-body/bimplus-floating-bar-body.component.mjs +5 -5
  31. package/esm2022/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.mjs +5 -5
  32. package/esm2022/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.mjs +3 -3
  33. package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +3 -3
  34. package/esm2022/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.mjs +3 -3
  35. package/esm2022/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.mjs +4 -4
  36. package/esm2022/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.mjs +3 -3
  37. package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component.mjs +3 -3
  38. package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.service.mjs +3 -3
  39. package/esm2022/lib/components/bimplus-language-menu/bimplus-language-menu.component.mjs +3 -3
  40. package/esm2022/lib/components/bimplus-localized-widget/bimplus-localized-widget.component.mjs +3 -3
  41. package/esm2022/lib/components/bimplus-main-menu/bimplus-main-menu.component.mjs +3 -3
  42. package/esm2022/lib/components/bimplus-navbar/bimplus-navbar.component.mjs +3 -3
  43. package/esm2022/lib/components/bimplus-notify/bimplus-notify.component.mjs +5 -5
  44. package/esm2022/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.component.mjs +3 -3
  45. package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +6 -5
  46. package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
  47. package/esm2022/lib/components/bimplus-object-navigator/filter-criterium/filter-criterium.component.mjs +3 -3
  48. package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +5 -5
  49. package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +3 -3
  50. package/esm2022/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.mjs +3 -3
  51. package/esm2022/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.mjs +3 -3
  52. package/esm2022/lib/components/bimplus-panel-toolbar/bimplus-panel-toolbar.component.mjs +5 -5
  53. package/esm2022/lib/components/bimplus-project-menu/bimplus-project-menu.component.mjs +3 -3
  54. package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +5 -5
  55. package/esm2022/lib/components/bimplus-sidenav/bimplus-sidenav.component.mjs +3 -3
  56. package/esm2022/lib/components/bimplus-sidenav-drawer-content/bimplus-sidenav-drawer-content.component.mjs +3 -3
  57. package/esm2022/lib/components/bimplus-storage-info/bimplus-storage-info.component.mjs +3 -3
  58. package/esm2022/lib/components/bimplus-text-message/bimplus-text-message.component.mjs +3 -3
  59. package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.mjs +60 -12
  60. package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.interface.mjs +1 -1
  61. package/esm2022/lib/components/bimplus-tool-hub/svgGenerator.mjs +1 -1
  62. package/esm2022/lib/components/bimplus-tool-hub/tool-hub-item/tool-hub-item.component.mjs +5 -5
  63. package/esm2022/lib/components/bimplus-tool-hub/tool-hub-sub-item/tool-hub-sub-item.component.mjs +5 -5
  64. package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.component.mjs +5 -5
  65. package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.interface.mjs +1 -1
  66. package/esm2022/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.mjs +5 -5
  67. package/esm2022/lib/components/bimplus-user-menu/bimplus-user-menu.component.mjs +3 -3
  68. package/esm2022/lib/components/bimplus-zoom/bimplus-zoom.component.mjs +5 -5
  69. package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +3 -3
  70. package/esm2022/lib/components/expansion-panel-header/expansion-panel-header.component.mjs +3 -3
  71. package/esm2022/lib/components/expansion-panel-header-actions/expansion-panel-header-actions.component.mjs +3 -3
  72. package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +3 -3
  73. package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +5 -5
  74. package/esm2022/lib/components/project-models/project-models.component.mjs +3 -3
  75. package/esm2022/lib/components/project-models/project-models.interface.mjs +1 -1
  76. package/esm2022/lib/components/resizable-panel/resizable-panel.component.mjs +5 -5
  77. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +4 -4
  78. package/esm2022/lib/directives/component-draggable/componentsDraggable.directive.mjs +3 -3
  79. package/esm2022/lib/directives/draggable.directive.mjs +3 -3
  80. package/esm2022/lib/directives/resizable.directive.mjs +4 -4
  81. package/esm2022/lib/directives/x-draggable.directive.mjs +3 -3
  82. package/esm2022/lib/interfaces/bimplus-opacity-properties.interface.mjs +1 -1
  83. package/esm2022/lib/interfaces/bimplus-visibility-properties.interface.mjs +1 -1
  84. package/esm2022/lib/ngx-bimplus-components.component.mjs +3 -3
  85. package/esm2022/lib/ngx-bimplus-components.service.mjs +3 -3
  86. package/esm2022/lib/pipes/pxsuffix.pipe.mjs +3 -3
  87. package/esm2022/lib/services/cursors.service.mjs +3 -3
  88. package/esm2022/lib/services/language-strings.service.mjs +3 -3
  89. package/esm2022/lib/services/layout-manager.service.mjs +3 -3
  90. package/esm2022/lib/services/local-storage.service.mjs +4 -4
  91. package/esm2022/lib/services/resize-observer.service.mjs +4 -4
  92. package/esm2022/lib/types/types.mjs +1 -1
  93. package/esm2022/lib/utils/filterString.mjs +1 -1
  94. package/esm2022/lib/utils/filterStructureFetcher.mjs +1 -1
  95. package/esm2022/lib/utils/utils.mjs +1 -1
  96. package/fesm2022/ngx-bimplus-components.mjs +267 -218
  97. package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
  98. package/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.d.ts +6 -1
  99. package/lib/components/bimplus-tool-hub/bimplus-tool-hub.interface.d.ts +1 -0
  100. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy10b29sLWh1Yi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2wtaHViL2JpbXBsdXMtdG9vbC1odWIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBUb29sSHViU3ViSXRlbXtcclxuICBidXR0b25JZDogc3RyaW5nLFxyXG4gIGljb25DbGFzczogc3RyaW5nLFxyXG4gIHRleHQ6IHN0cmluZyxcclxuICB0b29sdGlwOiBzdHJpbmcsXHJcbiAgdG9vbHRpcERpc2FibGVkOiBzdHJpbmcsXHJcbiAgYWN0aW9uQ2xpY2s6IHN0cmluZyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUb29sSHViSXRlbXtcclxuICAgIGJ1dHRvbklkOiBzdHJpbmcsXHJcbiAgICBpY29uQ2xhc3M6IHN0cmluZyxcclxuICAgIHRleHQ6IHN0cmluZyxcclxuICAgIHRvb2x0aXA6IHN0cmluZyxcclxuICAgIHRvb2x0aXBEaXNhYmxlZDogc3RyaW5nLFxyXG4gICAgc3ViTWVudUlkPyA6IHN0cmluZyxcclxuICAgIHN1Ykl0ZW1zPyA6IEFycmF5PFRvb2xIdWJTdWJJdGVtPixcclxuICAgIGFjdGl2ZT8gOiBib29sZWFuLFxyXG4gICAgZGlzYWJsZWQ/IDogYm9vbGVhblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUb29sSHViSXRlbVN0YXRlcyB7XHJcbiAgYnV0dG9uSWQ6IHN0cmluZyxcclxuICBhY3RpdmU/OiBib29sZWFuLFxyXG4gIGRpc2FibGVkPzogYm9vbGVhbixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUb29sSHViVmlzdWFsU2V0dGluZ3N7XHJcbiAgc3ViTWVudVN0YXJ0QW5nbGUgOiBudW1iZXIsXHJcbiAgc3ViTWVudUVuZEFuZ2xlIDogbnVtYmVyLFxyXG4gIHN2Z1JhZGl1c0lubmVyIDogbnVtYmVyLFxyXG4gIHN2Z1JhZGl1cyA6IG51bWJlcixcclxuICBzdWJNZW51Q2VudGVyIDogW251bWJlciwgbnVtYmVyXSxcclxuICBzdWJNZW51UmFkaXVzIDogbnVtYmVyLFxyXG4gIHN1Yk1lbnVXaWR0aCA6IG51bWJlcixcclxuICBkZWFkWm9uZUNlbnRlciA6IFtudW1iZXIsIG51bWJlcl1cclxuICBkZWFkWm9uZVdpZHRoIDogbnVtYmVyLFxyXG4gIGRlYWRab25lUmFkaXVzIDogbnVtYmVyLFxyXG4gIGRlYWRab25lU3RhcnRBbmdsZSA6IG51bWJlcixcclxuICBkZWFkWm9uZUVuZEFuZ2xlIDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9vbEh1Ykl0ZW1Vbml0c3tcclxuICByYWRpdXM6IG51bWJlcixcclxuICByYWRpdXNJbm5lcjogbnVtYmVyLFxyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgdGhpY2s6IG51bWJlcixcclxuICBpbm5lckVkZ2VSaWdodDogbnVtYmVyLFxyXG4gIGxlZnRYOiBudW1iZXIsXHJcbiAgbGVmdFk6IG51bWJlcixcclxuICByaWdodFg6IG51bWJlcixcclxuICByaWdodFk6IG51bWJlclxyXG59IFxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy10b29sLWh1Yi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2wtaHViL2JpbXBsdXMtdG9vbC1odWIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBUb29sSHViU3ViSXRlbXtcclxuICBidXR0b25JZDogc3RyaW5nLFxyXG4gIHR5cGU6IHN0cmluZyxcclxuICBpY29uQ2xhc3M6IHN0cmluZyxcclxuICB0ZXh0OiBzdHJpbmcsXHJcbiAgdG9vbHRpcDogc3RyaW5nLFxyXG4gIHRvb2x0aXBEaXNhYmxlZDogc3RyaW5nLFxyXG4gIGFjdGlvbkNsaWNrOiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9vbEh1Ykl0ZW17XHJcbiAgICBidXR0b25JZDogc3RyaW5nLFxyXG4gICAgaWNvbkNsYXNzOiBzdHJpbmcsXHJcbiAgICB0ZXh0OiBzdHJpbmcsXHJcbiAgICB0b29sdGlwOiBzdHJpbmcsXHJcbiAgICB0b29sdGlwRGlzYWJsZWQ6IHN0cmluZyxcclxuICAgIHN1Yk1lbnVJZD8gOiBzdHJpbmcsXHJcbiAgICBzdWJJdGVtcz8gOiBBcnJheTxUb29sSHViU3ViSXRlbT4sXHJcbiAgICBhY3RpdmU/IDogYm9vbGVhbixcclxuICAgIGRpc2FibGVkPyA6IGJvb2xlYW5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9vbEh1Ykl0ZW1TdGF0ZXMge1xyXG4gIGJ1dHRvbklkOiBzdHJpbmcsXHJcbiAgYWN0aXZlPzogYm9vbGVhbixcclxuICBkaXNhYmxlZD86IGJvb2xlYW4sXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9vbEh1YlZpc3VhbFNldHRpbmdze1xyXG4gIHN1Yk1lbnVTdGFydEFuZ2xlIDogbnVtYmVyLFxyXG4gIHN1Yk1lbnVFbmRBbmdsZSA6IG51bWJlcixcclxuICBzdmdSYWRpdXNJbm5lciA6IG51bWJlcixcclxuICBzdmdSYWRpdXMgOiBudW1iZXIsXHJcbiAgc3ViTWVudUNlbnRlciA6IFtudW1iZXIsIG51bWJlcl0sXHJcbiAgc3ViTWVudVJhZGl1cyA6IG51bWJlcixcclxuICBzdWJNZW51V2lkdGggOiBudW1iZXIsXHJcbiAgZGVhZFpvbmVDZW50ZXIgOiBbbnVtYmVyLCBudW1iZXJdXHJcbiAgZGVhZFpvbmVXaWR0aCA6IG51bWJlcixcclxuICBkZWFkWm9uZVJhZGl1cyA6IG51bWJlcixcclxuICBkZWFkWm9uZVN0YXJ0QW5nbGUgOiBudW1iZXIsXHJcbiAgZGVhZFpvbmVFbmRBbmdsZSA6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xIdWJJdGVtVW5pdHN7XHJcbiAgcmFkaXVzOiBudW1iZXIsXHJcbiAgcmFkaXVzSW5uZXI6IG51bWJlcixcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIHRoaWNrOiBudW1iZXIsXHJcbiAgaW5uZXJFZGdlUmlnaHQ6IG51bWJlcixcclxuICBsZWZ0WDogbnVtYmVyLFxyXG4gIGxlZnRZOiBudW1iZXIsXHJcbiAgcmlnaHRYOiBudW1iZXIsXHJcbiAgcmlnaHRZOiBudW1iZXJcclxufSBcclxuIl19
@@ -122,4 +122,4 @@ export class SVGGenerator {
122
122
  return `M ${subMenuUnits.radius} ${subMenuUnits.radius} L ${subMenuUnits.leftX} ${subMenuUnits.leftY} A ${subMenuUnits.radius} ${subMenuUnits.radius} 0 0 1 ${subMenuUnits.rightX} ${subMenuUnits.rightY} L ${subMenuUnits.rightX} ${subMenuUnits.rightY} L ${subMenuUnits.radius} ${subMenuUnits.radius} Z`;
123
123
  }
124
124
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnR2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy10b29sLWh1Yi9zdmdHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLEdBQVksSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFDekMsTUFBTSxHQUFHLEdBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7QUFHakMsTUFBTSxPQUFPLFlBQVk7SUFFdkIsNEJBQTRCO0lBQzVCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUF1QixFQUFFLENBQVMsRUFBRSxLQUFhO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUV2QyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQXVCLEVBQUUsTUFBYyxFQUFFLEtBQWEsRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxXQUFtQjtRQUVoSSxNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xELENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQyxNQUFNLFdBQVcsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXBDLHNCQUFzQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFbkQsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFakQsaUJBQWlCO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUVoRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFFaEUsTUFBTSxTQUFTLEdBQUcsYUFBYSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxNQUFNLFNBQVMsR0FBRyxhQUFhLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdELE1BQU0sTUFBTSxHQUFtQixJQUFJLEtBQUs7UUFDdEMsYUFBYTtRQUNiLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDL0UscUJBQXFCO1FBQ3JCLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDMUssaUJBQWlCO1FBQ2pCLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUN2TSxtQkFBbUI7UUFDbkIsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNoSyxXQUFXO1FBQ1gsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMzRSxtQkFBbUI7UUFDbkIsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdB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QUF3QjtRQUN0RCxPQUFPLEtBQUssS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxNQUFNLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssTUFBTSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLFVBQVUsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxNQUFNLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sTUFBTSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztJQUMzTixDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLFlBQStCO1FBQ2hFLE9BQU8sS0FBSyxZQUFZLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLE1BQU0sWUFBWSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsS0FBSyxNQUFNLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLE1BQU0sWUFBWSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxNQUFNLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDO0lBQy9TLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xIdWJWaXN1YWxTZXR0aW5ncywgVG9vbEh1Ykl0ZW1Vbml0cyB9IGZyb20gJy4vYmltcGx1cy10b29sLWh1Yi5pbnRlcmZhY2UnO1xuXG5jb25zdCBSQURfREVHIDogbnVtYmVyID0gTWF0aC5QSSAvIDE4MC4wO1xuY29uc3QgUEkyIDogbnVtYmVyID0gMiAqIE1hdGguUEk7XG5cblxuZXhwb3J0IGNsYXNzIFNWR0dlbmVyYXRvciB7XG5cbiAgLy8gQ29uc3RhbnRzIGZvciBkcmF3aW5nIGFyY1xuICAvKipcbiAgICogQHBhcmFtICB7QXJyYXkuPE51bWJlcj59IGNlbnRlclxuICAgKiBAcGFyYW0gIHtOdW1iZXJ9IFJcbiAgICogQHBhcmFtICB7TnVtYmVyfSBhbmdsZVxuICAgKiBAcmV0dXJuIHtBcnJheS48TnVtYmVyPn1cbiAgICovXG4gIHN0YXRpYyBwb2ludE9uQXJjKGNlbnRlcjogW251bWJlcixudW1iZXJdLCBSOiBudW1iZXIsIGFuZ2xlOiBudW1iZXIpIDogW251bWJlciwgbnVtYmVyXSB7XG4gICAgY29uc3QgcmFkaWFucyA9IChhbmdsZSAtIDkwKSAqIFJBRF9ERUc7XG5cbiAgICByZXR1cm4gW2NlbnRlclswXSArIFIgKiBNYXRoLmNvcyhyYWRpYW5zKSwgY2VudGVyWzFdICsgUiAqIE1hdGguc2luKHJhZGlhbnMpXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYXJjIHBhdGhcbiAgICpcbiAgICogQHBhcmFtICB7QXJyYXkuPE51bWJlcj59IGNlbnRlclxuICAgKiBAcGFyYW0gIHtOdW1iZXJ9ICAgICAgICAgcmFkaXVzXG4gICAqIEBwYXJhbSAge051bWJlcn0gICAgICAgICBzdGFydFxuICAgKiBAcGFyYW0gIHtOdW1iZXJ9ICAgICAgICAgZW5kXG4gICAqIEBwYXJhbSAge051bWJlcn0gICAgICAgICB3aWR0aFxuICAgKiBAcGFyYW0gIHtOdW1iZXJ9ICAgICAgICAgY29ybmVyIENvcm5lciByYWRpdXNcbiAgICogQHBhcmFtICB7TnVtYmVyfSAgICAgICAgIGNhbnZhc1dpZHRoIC0gRGl2aXNvciB0byBoYXZlIHN2ZyB3aXRoIHJhbmdlIDAgdG8gMVxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJpbmd8QXJyYXkuPE51bWJlcnxTdHJpbmc+fVxuICAgKi9cbiAgc3RhdGljIGFyYyhjZW50ZXI6IFtudW1iZXIsbnVtYmVyXSwgcmFkaXVzOiBudW1iZXIsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBjb3JuZXI6IG51bWJlciwgY2FudmFzV2lkdGg6IG51bWJlcikgOiBzdHJpbmcge1xuXG4gICAgY29uc3QgaW5uZXJSID0gcmFkaXVzIC0gd2lkdGg7XG4gICAgY29uc3QgY2lyY3VtZmVyZW5jZSA9IE1hdGguYWJzKGVuZCAtIHN0YXJ0KTtcbiAgICBjb3JuZXIgPSBNYXRoLm1pbih3aWR0aCAvIDIsIGNvcm5lcik7XG5cbiAgICBpZiAoMzYwICogKGNvcm5lciAvIChNYXRoLlBJICogKHJhZGl1cyAtIHdpZHRoKSkpID4gTWF0aC5hYnMoc3RhcnQgLSBlbmQpKSB7XG4gICAgICBjb3JuZXIgPSBjaXJjdW1mZXJlbmNlIC8gMzYwICogaW5uZXJSICogTWF0aC5QSTtcbiAgICB9XG5cbiAgICAvLyBpbm5lciBhbmQgb3V0ZXIgcmFkaXVzZXNcbiAgICBjb25zdCBpbm5lclIyID0gaW5uZXJSICsgY29ybmVyO1xuICAgIGNvbnN0IG91dGVyUmFkaXVzID0gcmFkaXVzIC0gY29ybmVyO1xuXG4gICAgLy8gYnV0dHMgY29ybmVyIHBvaW50c1xuICAgIGNvbnN0IG9TdGFydCA9IHRoaXMucG9pbnRPbkFyYyhjZW50ZXIsIG91dGVyUmFkaXVzLCBzdGFydCk7XG4gICAgY29uc3Qgb0VuZCA9IHRoaXMucG9pbnRPbkFyYyhjZW50ZXIsIG91dGVyUmFkaXVzLCBlbmQpO1xuXG4gICAgY29uc3QgaVN0YXJ0ID0gdGhpcy5wb2ludE9uQXJjKGNlbnRlciwgaW5uZXJSMiwgc3RhcnQpO1xuICAgIGNvbnN0IGlFbmQgPSB0aGlzLnBvaW50T25BcmMoY2VudGVyLCBpbm5lclIyLCBlbmQpO1xuXG4gICAgY29uc3QgaVNlY3Rpb24gPSAzNjAgKiAoY29ybmVyIC8gKFBJMiAqIGlubmVyUikpO1xuICAgIGNvbnN0IG9TZWN0aW9uID0gMzYwICogKGNvcm5lciAvIChQSTIgKiByYWRpdXMpKTtcblxuICAgIC8vIGFyY3MgZW5kcG9pbnRzXG4gICAgY29uc3QgaUFyY1N0YXJ0ID0gdGhpcy5wb2ludE9uQXJjKGNlbnRlciwgaW5uZXJSLCBzdGFydCArIGlTZWN0aW9uKTtcbiAgICBjb25zdCBpQXJjRW5kID0gdGhpcy5wb2ludE9uQXJjKGNlbnRlciwgaW5uZXJSLCBlbmQgLSBpU2VjdGlvbik7XG5cbiAgICBjb25zdCBvQXJjU3RhcnQgPSB0aGlzLnBvaW50T25BcmMoY2VudGVyLCByYWRpdXMsIHN0YXJ0ICsgb1NlY3Rpb24pO1xuICAgIGNvbnN0IG9BcmNFbmQgPSB0aGlzLnBvaW50T25BcmMoY2VudGVyLCByYWRpdXMsIGVuZCAtIG9TZWN0aW9uKTtcblxuICAgIGNvbnN0IGFyY1N3ZWVwMSA9IGNpcmN1bWZlcmVuY2UgPiAxODAgKyAyICogb1NlY3Rpb24gPyAxIDogMDtcbiAgICBjb25zdCBhcmNTd2VlcDIgPSBjaXJjdW1mZXJlbmNlID4gMTgwICsgMiAqIGlTZWN0aW9uID8gMSA6IDA7XG5cbiAgICBjb25zdCBwb2ludHMgOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5PHN0cmluZz4oXG4gICAgICAvLyBiZWdpbiBwYXRoXG4gICAgICBcIk1cIiwgKG9TdGFydFswXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAob1N0YXJ0WzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksXG4gICAgICAvLyBvdXRlciBzdGFydCBjb3JuZXJcbiAgICAgIFwiQVwiLCAoY29ybmVyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChjb3JuZXIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIwXCIsIFwiMFwiLCBcIjFcIiwgKG9BcmNTdGFydFswXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAob0FyY1N0YXJ0WzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksXG4gICAgICAvLyBvdXRlciBtYWluIGFyY1xuICAgICAgXCJBXCIsIChyYWRpdXMgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKHJhZGl1cyAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCBcIjBcIiwgKGFyY1N3ZWVwMSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCBcIjFcIiwgKG9BcmNFbmRbMF0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKG9BcmNFbmRbMV0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSxcbiAgICAgIC8vIG91dGVyIGVuZCBjb3JuZXJcbiAgICAgIFwiQVwiLCAoY29ybmVyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChjb3JuZXIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIwXCIsIFwiMFwiLCBcIjFcIiwgKG9FbmRbMF0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKG9FbmRbMV0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSxcbiAgICAgIC8vIGVuZCBidXR0XG4gICAgICBcIkxcIiwgKGlFbmRbMF0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKGlFbmRbMV0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSxcbiAgICAgIC8vIGlubmVyIGVuZCBjb3JuZXJcbiAgICAgIFwiQVwiLCAoY29ybmVyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChjb3JuZXIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIwXCIsIFwiMFwiLCBcIjFcIiwgKGlBcmNFbmRbMF0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKGlBcmNFbmRbMV0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSxcbiAgICAgIC8vIGlubmVyIGFyY1xuICAgICAgXCJBXCIsIChpbm5lclIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKGlubmVyUiAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCBcIjBcIiwgKGFyY1N3ZWVwMiAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCBcIjBcIiwgKGlBcmNTdGFydFswXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAoaUFyY1N0YXJ0WzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksXG4gICAgICAvLyBpbm5lciBzdGFydCBjb3JuZXJcbiAgICAgIFwiQVwiLCAoY29ybmVyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChjb3JuZXIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIwXCIsIFwiMFwiLCBcIjFcIiwgKGlTdGFydFswXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAoaVN0YXJ0WzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIFwiWlwiIC8vIGVuZCBwYXRoKi9cbiAgICApO1xuXG4gICAgcmV0dXJuIHBvaW50cy5qb2luKCcgJyk7XG4gIH1cblxuICAvKlxuICAgICAgKiBzdmcgdW5pdHMgLSB3aGVuIFwib2JqZWN0Qm91bmRpbmdCb3hcIiBpcyBhcHBsaWVkLCBjb29yZGluYXRlcyBhcmUgcmVsYXRpdmUsXG4gICAgICAqIHVzZSBjb29yZGluYXRlcyBhcyByYXRpbyAoaW4gcmFuZ2UgMC0xKSxcbiAgICAgICogZi5lLiAoMSwxKSBpcyBib3RvbSByaWdodCBjb3JuZXIgb2YgZWxlbWVudFxuICAgICovXG4gIHN0YXRpYyBkcmF3TWVudUl0ZW1Tdmcoc3ZnUmFkaXVzOiBudW1iZXIsIHN2Z1JhZGl1c0lubmVyOiBudW1iZXIsIGJ1dHRvbnNMZW5ndGg6IG51bWJlciwgaXNFTUVtYmVkZGVkOiBib29sZWFuKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XG4gICAgXG4gICAgY29uc3QgcmFkaXVzID0gaXNFTUVtYmVkZGVkID8gKHN2Z1JhZGl1cyAtIDUpICogMTAgOiBzdmdSYWRpdXMgKiAxMDtcbiAgICBjb25zdCByYWRpdXNJbm5lciA9IGlzRU1FbWJlZGRlZCA/IChzdmdSYWRpdXNJbm5lciAtIDMpICogMTAgOiBzdmdSYWRpdXNJbm5lciAqIDEwO1xuICAgIGNvbnN0IHdpZHRoID0gcmFkaXVzICogMjtcbiAgICAvLyBjb29yZGluYXRlcyBvZiBwb2ludHMgZGVzY3JpYmluZyBvbmUgaXRlbSBvbiBtZW51XG4gICAgY29uc3QgYW5nbGUgPSAzNjAgLyAoKGJ1dHRvbnNMZW5ndGggPiAwKSA/IGJ1dHRvbnNMZW5ndGggOiAxKTtcbiAgICBjb25zdCBoYWxmQW5nbGVSYWRpYW5zID0gKGFuZ2xlICogTWF0aC5QSSkgLyAzNjA7XG4gICAgY29uc3QgbGVmdFggPSByYWRpdXMgLSBNYXRoLnNpbihoYWxmQW5nbGVSYWRpYW5zKSAqIHJhZGl1cztcbiAgICBjb25zdCBsZWZ0WSA9IHJhZGl1cyAtIE1hdGguY29zKGhhbGZBbmdsZVJhZGlhbnMpICogcmFkaXVzO1xuICAgIGNvbnN0IHJpZ2h0WCA9IHJhZGl1cyArIE1hdGguc2luKGhhbGZBbmdsZVJhZGlhbnMpICogcmFkaXVzO1xuICAgIGNvbnN0IHJpZ2h0WSA9IHJhZGl1cyAtIE1hdGguY29zKGhhbGZBbmdsZVJhZGlhbnMpICogcmFkaXVzO1xuICBcbiAgXG4gICAgcmV0dXJuIHtcbiAgICAgIHJhZGl1czogcmFkaXVzIC8gd2lkdGgsXG4gICAgICByYWRpdXNJbm5lcjogcmFkaXVzSW5uZXIgLyB3aWR0aCxcbiAgICAgIHdpZHRoOiAxLFxuICAgICAgdGhpY2s6IChyYWRpdXMgLSByYWRpdXNJbm5lcikgLyB3aWR0aCxcbiAgICAgIGlubmVyRWRnZVJpZ2h0OiAocmFkaXVzICsgcmFkaXVzSW5uZXIpIC8gd2lkdGgsXG4gICAgICBsZWZ0WDogbGVmdFggLyB3aWR0aCxcbiAgICAgIGxlZnRZOiBsZWZ0WSAvIHdpZHRoLFxuICAgICAgcmlnaHRYOiByaWdodFggLyB3aWR0aCxcbiAgICAgIHJpZ2h0WTogcmlnaHRZIC8gd2lkdGhcbiAgICB9O1xuICB9XG5cbiAgXG4gIHN0YXRpYyBnZW5lcmF0ZUFubnVsYXJTZWN0b3Ioc2V0dGluZ3MgOiBUb29sSHViVmlzdWFsU2V0dGluZ3MpOiBzdHJpbmd7XG4gICAgY29uc3QgbXVsdGlwbGllciA9IDEyO1xuICAgIHJldHVybiBTVkdHZW5lcmF0b3IuYXJjKFxuICAgICAgW3NldHRpbmdzLnN1Yk1lbnVDZW50ZXJbMF0gKiBtdWx0aXBsaWVyLCBzZXR0aW5ncy5zdWJNZW51Q2VudGVyWzFdICogbXVsdGlwbGllcl0sXG4gICAgICBzZXR0aW5ncy5zdWJNZW51UmFkaXVzICogbXVsdGlwbGllcixcbiAgICAgIHNldHRpbmdzLnN1Yk1lbnVTdGFydEFuZ2xlLFxuICAgICAgc2V0dGluZ3Muc3ViTWVudUVuZEFuZ2xlLFxuICAgICAgc2V0dGluZ3Muc3ViTWVudVdpZHRoLFxuICAgICAgNyxcbiAgICAgIDQyNVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2VuZXJhdGVBbm51bGFyU2VjdG9yQm9yZGVyKHNldHRpbmdzIDogVG9vbEh1YlZpc3VhbFNldHRpbmdzKTogc3RyaW5ne1xuICAgIGNvbnN0IG11bHRpcGxpZXIgPSAxMjtcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmFyYyhcbiAgICAgIFtzZXR0aW5ncy5zdWJNZW51Q2VudGVyWzBdICogbXVsdGlwbGllciwgc2V0dGluZ3Muc3ViTWVudUNlbnRlclsxXSAqIG11bHRpcGxpZXJdLFxuICAgICAgKHNldHRpbmdzLnN1Yk1lbnVSYWRpdXMgKiBtdWx0aXBsaWVyKSArIDEsXG4gICAgICBzZXR0aW5ncy5zdWJNZW51U3RhcnRBbmdsZSAtIDAuNSxcbiAgICAgIHNldHRpbmdzLnN1Yk1lbnVFbmRBbmdsZSAgKyAwLjUsXG4gICAgICBzZXR0aW5ncy5zdWJNZW51V2lkdGggKyAyLFxuICAgICAgNyxcbiAgICAgIDQyNVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2VuZXJhdGVEZWFkWm9uZUFubnVsYXJTZWN0b3Ioc2V0dGluZ3MgOiBUb29sSHViVmlzdWFsU2V0dGluZ3MpOiBzdHJpbmd7XG4gICAgY29uc3QgbXVsdGlwbGllciA9IDEyO1xuICAgIHJldHVybiBTVkdHZW5lcmF0b3IuYXJjKFxuICAgICAgW3NldHRpbmdzLmRlYWRab25lQ2VudGVyWzBdICogbXVsdGlwbGllciwgc2V0dGluZ3MuZGVhZFpvbmVDZW50ZXJbMV0gKiBtdWx0aXBsaWVyXSxcbiAgICAgIChzZXR0aW5ncy5kZWFkWm9uZVJhZGl1cykgKiBtdWx0aXBsaWVyLFxuICAgICAgc2V0dGluZ3MuZGVhZFpvbmVTdGFydEFuZ2xlLFxuICAgICAgc2V0dGluZ3MuZGVhZFpvbmVFbmRBbmdsZSxcbiAgICAgIHNldHRpbmdzLmRlYWRab25lV2lkdGgsXG4gICAgICA3LFxuICAgICAgNzAwKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTVkdWaWV3Qm94KHVuaXRzIDogVG9vbEh1Ykl0ZW1Vbml0cyk6c3RyaW5ne1xuICAgIHJldHVybiBgMCAwICR7dW5pdHMud2lkdGh9ICR7dW5pdHMud2lkdGh9YDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTVkdDZW50ZXJNZW51UGF0aCh1bml0cyA6IFRvb2xIdWJJdGVtVW5pdHMpOnN0cmluZ3tcbiAgICByZXR1cm4gYE0gMCAke3VuaXRzLnJhZGl1c30gQSAke3VuaXRzLnJhZGl1c30gJHt1bml0cy5yYWRpdXN9IDAgMCAxICR7dW5pdHMud2lkdGh9ICR7dW5pdHMucmFkaXVzfSBMICR7dW5pdHMud2lkdGh9ICR7dW5pdHMucmFkaXVzfSBBICR7dW5pdHMucmFkaXVzfSAke3VuaXRzLnJhZGl1c30gMCAwIDEgMCAke3VuaXRzLnJhZGl1c30gTCAke3VuaXRzLnRoaWNrfSAke3VuaXRzLnJhZGl1c30gQSAke3VuaXRzLnJhZGl1c0lubmVyfSAke3VuaXRzLnJhZGl1c0lubmVyfSAwIDAgMCAke3VuaXRzLmlubmVyRWRnZVJpZ2h0fSAke3VuaXRzLnJhZGl1c30gTCAke3VuaXRzLmlubmVyRWRnZVJpZ2h0fSAke3VuaXRzLnJhZGl1c30gQSAke3VuaXRzLnJhZGl1c0lubmVyfSAke3VuaXRzLnJhZGl1c0lubmVyfSAwIDAgMCAke3VuaXRzLnRoaWNrfSAke3VuaXRzLnJhZGl1c30gWmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0U1ZHQ2VudGVyTWVudUl0ZW1QYXRoKHVuaXRzIDogVG9vbEh1Ykl0ZW1Vbml0cyk6c3RyaW5ne1xuICAgIHJldHVybiBgTSAke3VuaXRzLnJhZGl1c30gJHt1bml0cy5yYWRpdXN9IEwgJHt1bml0cy5sZWZ0WH0gJHt1bml0cy5sZWZ0WX0gQSAke3VuaXRzLnJhZGl1c30gJHt1bml0cy5yYWRpdXN9IDAgMCAxICR7dW5pdHMucmlnaHRYfSAke3VuaXRzLnJpZ2h0WX0gTCAke3VuaXRzLnJpZ2h0WH0gJHt1bml0cy5yaWdodFl9IEwgJHt1bml0cy5yYWRpdXN9ICR7dW5pdHMucmFkaXVzfSBaYDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTVkdDZW50ZXJTdWJNZW51SXRlbVBhdGgoc3ViTWVudVVuaXRzIDogVG9vbEh1Ykl0ZW1Vbml0cyk6c3RyaW5ne1xuICAgIHJldHVybiBgTSAke3N1Yk1lbnVVbml0cy5yYWRpdXN9ICR7c3ViTWVudVVuaXRzLnJhZGl1c30gTCAke3N1Yk1lbnVVbml0cy5sZWZ0WH0gJHtzdWJNZW51VW5pdHMubGVmdFl9IEEgJHtzdWJNZW51VW5pdHMucmFkaXVzfSAke3N1Yk1lbnVVbml0cy5yYWRpdXN9IDAgMCAxICR7c3ViTWVudVVuaXRzLnJpZ2h0WH0gJHtzdWJNZW51VW5pdHMucmlnaHRZfSBMICR7c3ViTWVudVVuaXRzLnJpZ2h0WH0gJHtzdWJNZW51VW5pdHMucmlnaHRZfSBMICR7c3ViTWVudVVuaXRzLnJhZGl1c30gJHtzdWJNZW51VW5pdHMucmFkaXVzfSBaYDtcbiAgfVxuXG59XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnR2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy10b29sLWh1Yi9zdmdHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLEdBQVksSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFDekMsTUFBTSxHQUFHLEdBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7QUFHakMsTUFBTSxPQUFPLFlBQVk7SUFFdkIsNEJBQTRCO0lBQzVCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUF1QixFQUFFLENBQVMsRUFBRSxLQUFhO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUV2QyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQXVCLEVBQUUsTUFBYyxFQUFFLEtBQWEsRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxXQUFtQjtRQUVoSSxNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xELENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQyxNQUFNLFdBQVcsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXBDLHNCQUFzQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFbkQsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFakQsaUJBQWlCO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUVoRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFFaEUsTUFBTSxTQUFTLEdBQUcsYUFBYSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxNQUFNLFNBQVMsR0FBRyxhQUFhLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdELE1BQU0sTUFBTSxHQUFtQixJQUFJLEtBQUs7UUFDdEMsYUFBYTtRQUNiLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDL0UscUJBQXFCO1FBQ3JCLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDMUssaUJBQWlCO1FBQ2pCLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUN2TSxtQkFBbUI7UUFDbkIsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNoSyxXQUFXO1FBQ1gsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUMzRSxtQkFBbUI7UUFDbkIsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdB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QUF3QjtRQUN0RCxPQUFPLEtBQUssS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxNQUFNLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssTUFBTSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLFVBQVUsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxNQUFNLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sTUFBTSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztJQUMzTixDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLFlBQStCO1FBQ2hFLE9BQU8sS0FBSyxZQUFZLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLE1BQU0sWUFBWSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsS0FBSyxNQUFNLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLE1BQU0sWUFBWSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxNQUFNLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDO0lBQy9TLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xIdWJWaXN1YWxTZXR0aW5ncywgVG9vbEh1Ykl0ZW1Vbml0cyB9IGZyb20gJy4vYmltcGx1cy10b29sLWh1Yi5pbnRlcmZhY2UnO1xyXG5cclxuY29uc3QgUkFEX0RFRyA6IG51bWJlciA9IE1hdGguUEkgLyAxODAuMDtcclxuY29uc3QgUEkyIDogbnVtYmVyID0gMiAqIE1hdGguUEk7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFNWR0dlbmVyYXRvciB7XHJcblxyXG4gIC8vIENvbnN0YW50cyBmb3IgZHJhd2luZyBhcmNcclxuICAvKipcclxuICAgKiBAcGFyYW0gIHtBcnJheS48TnVtYmVyPn0gY2VudGVyXHJcbiAgICogQHBhcmFtICB7TnVtYmVyfSBSXHJcbiAgICogQHBhcmFtICB7TnVtYmVyfSBhbmdsZVxyXG4gICAqIEByZXR1cm4ge0FycmF5LjxOdW1iZXI+fVxyXG4gICAqL1xyXG4gIHN0YXRpYyBwb2ludE9uQXJjKGNlbnRlcjogW251bWJlcixudW1iZXJdLCBSOiBudW1iZXIsIGFuZ2xlOiBudW1iZXIpIDogW251bWJlciwgbnVtYmVyXSB7XHJcbiAgICBjb25zdCByYWRpYW5zID0gKGFuZ2xlIC0gOTApICogUkFEX0RFRztcclxuXHJcbiAgICByZXR1cm4gW2NlbnRlclswXSArIFIgKiBNYXRoLmNvcyhyYWRpYW5zKSwgY2VudGVyWzFdICsgUiAqIE1hdGguc2luKHJhZGlhbnMpXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlbmVyYXRlcyBhcmMgcGF0aFxyXG4gICAqXHJcbiAgICogQHBhcmFtICB7QXJyYXkuPE51bWJlcj59IGNlbnRlclxyXG4gICAqIEBwYXJhbSAge051bWJlcn0gICAgICAgICByYWRpdXNcclxuICAgKiBAcGFyYW0gIHtOdW1iZXJ9ICAgICAgICAgc3RhcnRcclxuICAgKiBAcGFyYW0gIHtOdW1iZXJ9ICAgICAgICAgZW5kXHJcbiAgICogQHBhcmFtICB7TnVtYmVyfSAgICAgICAgIHdpZHRoXHJcbiAgICogQHBhcmFtICB7TnVtYmVyfSAgICAgICAgIGNvcm5lciBDb3JuZXIgcmFkaXVzXHJcbiAgICogQHBhcmFtICB7TnVtYmVyfSAgICAgICAgIGNhbnZhc1dpZHRoIC0gRGl2aXNvciB0byBoYXZlIHN2ZyB3aXRoIHJhbmdlIDAgdG8gMVxyXG4gICAqXHJcbiAgICogQHJldHVybiB7U3RyaW5nfEFycmF5LjxOdW1iZXJ8U3RyaW5nPn1cclxuICAgKi9cclxuICBzdGF0aWMgYXJjKGNlbnRlcjogW251bWJlcixudW1iZXJdLCByYWRpdXM6IG51bWJlciwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGNvcm5lcjogbnVtYmVyLCBjYW52YXNXaWR0aDogbnVtYmVyKSA6IHN0cmluZyB7XHJcblxyXG4gICAgY29uc3QgaW5uZXJSID0gcmFkaXVzIC0gd2lkdGg7XHJcbiAgICBjb25zdCBjaXJjdW1mZXJlbmNlID0gTWF0aC5hYnMoZW5kIC0gc3RhcnQpO1xyXG4gICAgY29ybmVyID0gTWF0aC5taW4od2lkdGggLyAyLCBjb3JuZXIpO1xyXG5cclxuICAgIGlmICgzNjAgKiAoY29ybmVyIC8gKE1hdGguUEkgKiAocmFkaXVzIC0gd2lkdGgpKSkgPiBNYXRoLmFicyhzdGFydCAtIGVuZCkpIHtcclxuICAgICAgY29ybmVyID0gY2lyY3VtZmVyZW5jZSAvIDM2MCAqIGlubmVyUiAqIE1hdGguUEk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaW5uZXIgYW5kIG91dGVyIHJhZGl1c2VzXHJcbiAgICBjb25zdCBpbm5lclIyID0gaW5uZXJSICsgY29ybmVyO1xyXG4gICAgY29uc3Qgb3V0ZXJSYWRpdXMgPSByYWRpdXMgLSBjb3JuZXI7XHJcblxyXG4gICAgLy8gYnV0dHMgY29ybmVyIHBvaW50c1xyXG4gICAgY29uc3Qgb1N0YXJ0ID0gdGhpcy5wb2ludE9uQXJjKGNlbnRlciwgb3V0ZXJSYWRpdXMsIHN0YXJ0KTtcclxuICAgIGNvbnN0IG9FbmQgPSB0aGlzLnBvaW50T25BcmMoY2VudGVyLCBvdXRlclJhZGl1cywgZW5kKTtcclxuXHJcbiAgICBjb25zdCBpU3RhcnQgPSB0aGlzLnBvaW50T25BcmMoY2VudGVyLCBpbm5lclIyLCBzdGFydCk7XHJcbiAgICBjb25zdCBpRW5kID0gdGhpcy5wb2ludE9uQXJjKGNlbnRlciwgaW5uZXJSMiwgZW5kKTtcclxuXHJcbiAgICBjb25zdCBpU2VjdGlvbiA9IDM2MCAqIChjb3JuZXIgLyAoUEkyICogaW5uZXJSKSk7XHJcbiAgICBjb25zdCBvU2VjdGlvbiA9IDM2MCAqIChjb3JuZXIgLyAoUEkyICogcmFkaXVzKSk7XHJcblxyXG4gICAgLy8gYXJjcyBlbmRwb2ludHNcclxuICAgIGNvbnN0IGlBcmNTdGFydCA9IHRoaXMucG9pbnRPbkFyYyhjZW50ZXIsIGlubmVyUiwgc3RhcnQgKyBpU2VjdGlvbik7XHJcbiAgICBjb25zdCBpQXJjRW5kID0gdGhpcy5wb2ludE9uQXJjKGNlbnRlciwgaW5uZXJSLCBlbmQgLSBpU2VjdGlvbik7XHJcblxyXG4gICAgY29uc3Qgb0FyY1N0YXJ0ID0gdGhpcy5wb2ludE9uQXJjKGNlbnRlciwgcmFkaXVzLCBzdGFydCArIG9TZWN0aW9uKTtcclxuICAgIGNvbnN0IG9BcmNFbmQgPSB0aGlzLnBvaW50T25BcmMoY2VudGVyLCByYWRpdXMsIGVuZCAtIG9TZWN0aW9uKTtcclxuXHJcbiAgICBjb25zdCBhcmNTd2VlcDEgPSBjaXJjdW1mZXJlbmNlID4gMTgwICsgMiAqIG9TZWN0aW9uID8gMSA6IDA7XHJcbiAgICBjb25zdCBhcmNTd2VlcDIgPSBjaXJjdW1mZXJlbmNlID4gMTgwICsgMiAqIGlTZWN0aW9uID8gMSA6IDA7XHJcblxyXG4gICAgY29uc3QgcG9pbnRzIDogQXJyYXk8c3RyaW5nPiA9IG5ldyBBcnJheTxzdHJpbmc+KFxyXG4gICAgICAvLyBiZWdpbiBwYXRoXHJcbiAgICAgIFwiTVwiLCAob1N0YXJ0WzBdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChvU3RhcnRbMV0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSxcclxuICAgICAgLy8gb3V0ZXIgc3RhcnQgY29ybmVyXHJcbiAgICAgIFwiQVwiLCAoY29ybmVyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChjb3JuZXIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIwXCIsIFwiMFwiLCBcIjFcIiwgKG9BcmNTdGFydFswXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAob0FyY1N0YXJ0WzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksXHJcbiAgICAgIC8vIG91dGVyIG1haW4gYXJjXHJcbiAgICAgIFwiQVwiLCAocmFkaXVzIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChyYWRpdXMgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIwXCIsIChhcmNTd2VlcDEgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIxXCIsIChvQXJjRW5kWzBdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChvQXJjRW5kWzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksXHJcbiAgICAgIC8vIG91dGVyIGVuZCBjb3JuZXJcclxuICAgICAgXCJBXCIsIChjb3JuZXIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKGNvcm5lciAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCBcIjBcIiwgXCIwXCIsIFwiMVwiLCAob0VuZFswXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAob0VuZFsxXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLFxyXG4gICAgICAvLyBlbmQgYnV0dFxyXG4gICAgICBcIkxcIiwgKGlFbmRbMF0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgKGlFbmRbMV0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSxcclxuICAgICAgLy8gaW5uZXIgZW5kIGNvcm5lclxyXG4gICAgICBcIkFcIiwgKGNvcm5lciAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAoY29ybmVyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIFwiMFwiLCBcIjBcIiwgXCIxXCIsIChpQXJjRW5kWzBdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChpQXJjRW5kWzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksXHJcbiAgICAgIC8vIGlubmVyIGFyY1xyXG4gICAgICBcIkFcIiwgKGlubmVyUiAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAoaW5uZXJSIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIFwiMFwiLCAoYXJjU3dlZXAyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIFwiMFwiLCAoaUFyY1N0YXJ0WzBdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChpQXJjU3RhcnRbMV0gLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSxcclxuICAgICAgLy8gaW5uZXIgc3RhcnQgY29ybmVyXHJcbiAgICAgIFwiQVwiLCAoY29ybmVyIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIChjb3JuZXIgLyBjYW52YXNXaWR0aCkudG9TdHJpbmcoKSwgXCIwXCIsIFwiMFwiLCBcIjFcIiwgKGlTdGFydFswXSAvIGNhbnZhc1dpZHRoKS50b1N0cmluZygpLCAoaVN0YXJ0WzFdIC8gY2FudmFzV2lkdGgpLnRvU3RyaW5nKCksIFwiWlwiIC8vIGVuZCBwYXRoKi9cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIHBvaW50cy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgICAqIHN2ZyB1bml0cyAtIHdoZW4gXCJvYmplY3RCb3VuZGluZ0JveFwiIGlzIGFwcGxpZWQsIGNvb3JkaW5hdGVzIGFyZSByZWxhdGl2ZSxcclxuICAgICAgKiB1c2UgY29vcmRpbmF0ZXMgYXMgcmF0aW8gKGluIHJhbmdlIDAtMSksXHJcbiAgICAgICogZi5lLiAoMSwxKSBpcyBib3RvbSByaWdodCBjb3JuZXIgb2YgZWxlbWVudFxyXG4gICAgKi9cclxuICBzdGF0aWMgZHJhd01lbnVJdGVtU3ZnKHN2Z1JhZGl1czogbnVtYmVyLCBzdmdSYWRpdXNJbm5lcjogbnVtYmVyLCBidXR0b25zTGVuZ3RoOiBudW1iZXIsIGlzRU1FbWJlZGRlZDogYm9vbGVhbik6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgXHJcbiAgICBjb25zdCByYWRpdXMgPSBpc0VNRW1iZWRkZWQgPyAoc3ZnUmFkaXVzIC0gNSkgKiAxMCA6IHN2Z1JhZGl1cyAqIDEwO1xyXG4gICAgY29uc3QgcmFkaXVzSW5uZXIgPSBpc0VNRW1iZWRkZWQgPyAoc3ZnUmFkaXVzSW5uZXIgLSAzKSAqIDEwIDogc3ZnUmFkaXVzSW5uZXIgKiAxMDtcclxuICAgIGNvbnN0IHdpZHRoID0gcmFkaXVzICogMjtcclxuICAgIC8vIGNvb3JkaW5hdGVzIG9mIHBvaW50cyBkZXNjcmliaW5nIG9uZSBpdGVtIG9uIG1lbnVcclxuICAgIGNvbnN0IGFuZ2xlID0gMzYwIC8gKChidXR0b25zTGVuZ3RoID4gMCkgPyBidXR0b25zTGVuZ3RoIDogMSk7XHJcbiAgICBjb25zdCBoYWxmQW5nbGVSYWRpYW5zID0gKGFuZ2xlICogTWF0aC5QSSkgLyAzNjA7XHJcbiAgICBjb25zdCBsZWZ0WCA9IHJhZGl1cyAtIE1hdGguc2luKGhhbGZBbmdsZVJhZGlhbnMpICogcmFkaXVzO1xyXG4gICAgY29uc3QgbGVmdFkgPSByYWRpdXMgLSBNYXRoLmNvcyhoYWxmQW5nbGVSYWRpYW5zKSAqIHJhZGl1cztcclxuICAgIGNvbnN0IHJpZ2h0WCA9IHJhZGl1cyArIE1hdGguc2luKGhhbGZBbmdsZVJhZGlhbnMpICogcmFkaXVzO1xyXG4gICAgY29uc3QgcmlnaHRZID0gcmFkaXVzIC0gTWF0aC5jb3MoaGFsZkFuZ2xlUmFkaWFucykgKiByYWRpdXM7XHJcbiAgXHJcbiAgXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICByYWRpdXM6IHJhZGl1cyAvIHdpZHRoLFxyXG4gICAgICByYWRpdXNJbm5lcjogcmFkaXVzSW5uZXIgLyB3aWR0aCxcclxuICAgICAgd2lkdGg6IDEsXHJcbiAgICAgIHRoaWNrOiAocmFkaXVzIC0gcmFkaXVzSW5uZXIpIC8gd2lkdGgsXHJcbiAgICAgIGlubmVyRWRnZVJpZ2h0OiAocmFkaXVzICsgcmFkaXVzSW5uZXIpIC8gd2lkdGgsXHJcbiAgICAgIGxlZnRYOiBsZWZ0WCAvIHdpZHRoLFxyXG4gICAgICBsZWZ0WTogbGVmdFkgLyB3aWR0aCxcclxuICAgICAgcmlnaHRYOiByaWdodFggLyB3aWR0aCxcclxuICAgICAgcmlnaHRZOiByaWdodFkgLyB3aWR0aFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIFxyXG4gIHN0YXRpYyBnZW5lcmF0ZUFubnVsYXJTZWN0b3Ioc2V0dGluZ3MgOiBUb29sSHViVmlzdWFsU2V0dGluZ3MpOiBzdHJpbmd7XHJcbiAgICBjb25zdCBtdWx0aXBsaWVyID0gMTI7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmFyYyhcclxuICAgICAgW3NldHRpbmdzLnN1Yk1lbnVDZW50ZXJbMF0gKiBtdWx0aXBsaWVyLCBzZXR0aW5ncy5zdWJNZW51Q2VudGVyWzFdICogbXVsdGlwbGllcl0sXHJcbiAgICAgIHNldHRpbmdzLnN1Yk1lbnVSYWRpdXMgKiBtdWx0aXBsaWVyLFxyXG4gICAgICBzZXR0aW5ncy5zdWJNZW51U3RhcnRBbmdsZSxcclxuICAgICAgc2V0dGluZ3Muc3ViTWVudUVuZEFuZ2xlLFxyXG4gICAgICBzZXR0aW5ncy5zdWJNZW51V2lkdGgsXHJcbiAgICAgIDcsXHJcbiAgICAgIDQyNVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZW5lcmF0ZUFubnVsYXJTZWN0b3JCb3JkZXIoc2V0dGluZ3MgOiBUb29sSHViVmlzdWFsU2V0dGluZ3MpOiBzdHJpbmd7XHJcbiAgICBjb25zdCBtdWx0aXBsaWVyID0gMTI7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmFyYyhcclxuICAgICAgW3NldHRpbmdzLnN1Yk1lbnVDZW50ZXJbMF0gKiBtdWx0aXBsaWVyLCBzZXR0aW5ncy5zdWJNZW51Q2VudGVyWzFdICogbXVsdGlwbGllcl0sXHJcbiAgICAgIChzZXR0aW5ncy5zdWJNZW51UmFkaXVzICogbXVsdGlwbGllcikgKyAxLFxyXG4gICAgICBzZXR0aW5ncy5zdWJNZW51U3RhcnRBbmdsZSAtIDAuNSxcclxuICAgICAgc2V0dGluZ3Muc3ViTWVudUVuZEFuZ2xlICArIDAuNSxcclxuICAgICAgc2V0dGluZ3Muc3ViTWVudVdpZHRoICsgMixcclxuICAgICAgNyxcclxuICAgICAgNDI1XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdlbmVyYXRlRGVhZFpvbmVBbm51bGFyU2VjdG9yKHNldHRpbmdzIDogVG9vbEh1YlZpc3VhbFNldHRpbmdzKTogc3RyaW5ne1xyXG4gICAgY29uc3QgbXVsdGlwbGllciA9IDEyO1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5hcmMoXHJcbiAgICAgIFtzZXR0aW5ncy5kZWFkWm9uZUNlbnRlclswXSAqIG11bHRpcGxpZXIsIHNldHRpbmdzLmRlYWRab25lQ2VudGVyWzFdICogbXVsdGlwbGllcl0sXHJcbiAgICAgIChzZXR0aW5ncy5kZWFkWm9uZVJhZGl1cykgKiBtdWx0aXBsaWVyLFxyXG4gICAgICBzZXR0aW5ncy5kZWFkWm9uZVN0YXJ0QW5nbGUsXHJcbiAgICAgIHNldHRpbmdzLmRlYWRab25lRW5kQW5nbGUsXHJcbiAgICAgIHNldHRpbmdzLmRlYWRab25lV2lkdGgsXHJcbiAgICAgIDcsXHJcbiAgICAgIDcwMCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0U1ZHVmlld0JveCh1bml0cyA6IFRvb2xIdWJJdGVtVW5pdHMpOnN0cmluZ3tcclxuICAgIHJldHVybiBgMCAwICR7dW5pdHMud2lkdGh9ICR7dW5pdHMud2lkdGh9YDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTVkdDZW50ZXJNZW51UGF0aCh1bml0cyA6IFRvb2xIdWJJdGVtVW5pdHMpOnN0cmluZ3tcclxuICAgIHJldHVybiBgTSAwICR7dW5pdHMucmFkaXVzfSBBICR7dW5pdHMucmFkaXVzfSAke3VuaXRzLnJhZGl1c30gMCAwIDEgJHt1bml0cy53aWR0aH0gJHt1bml0cy5yYWRpdXN9IEwgJHt1bml0cy53aWR0aH0gJHt1bml0cy5yYWRpdXN9IEEgJHt1bml0cy5yYWRpdXN9ICR7dW5pdHMucmFkaXVzfSAwIDAgMSAwICR7dW5pdHMucmFkaXVzfSBMICR7dW5pdHMudGhpY2t9ICR7dW5pdHMucmFkaXVzfSBBICR7dW5pdHMucmFkaXVzSW5uZXJ9ICR7dW5pdHMucmFkaXVzSW5uZXJ9IDAgMCAwICR7dW5pdHMuaW5uZXJFZGdlUmlnaHR9ICR7dW5pdHMucmFkaXVzfSBMICR7dW5pdHMuaW5uZXJFZGdlUmlnaHR9ICR7dW5pdHMucmFkaXVzfSBBICR7dW5pdHMucmFkaXVzSW5uZXJ9ICR7dW5pdHMucmFkaXVzSW5uZXJ9IDAgMCAwICR7dW5pdHMudGhpY2t9ICR7dW5pdHMucmFkaXVzfSBaYDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTVkdDZW50ZXJNZW51SXRlbVBhdGgodW5pdHMgOiBUb29sSHViSXRlbVVuaXRzKTpzdHJpbmd7XHJcbiAgICByZXR1cm4gYE0gJHt1bml0cy5yYWRpdXN9ICR7dW5pdHMucmFkaXVzfSBMICR7dW5pdHMubGVmdFh9ICR7dW5pdHMubGVmdFl9IEEgJHt1bml0cy5yYWRpdXN9ICR7dW5pdHMucmFkaXVzfSAwIDAgMSAke3VuaXRzLnJpZ2h0WH0gJHt1bml0cy5yaWdodFl9IEwgJHt1bml0cy5yaWdodFh9ICR7dW5pdHMucmlnaHRZfSBMICR7dW5pdHMucmFkaXVzfSAke3VuaXRzLnJhZGl1c30gWmA7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0U1ZHQ2VudGVyU3ViTWVudUl0ZW1QYXRoKHN1Yk1lbnVVbml0cyA6IFRvb2xIdWJJdGVtVW5pdHMpOnN0cmluZ3tcclxuICAgIHJldHVybiBgTSAke3N1Yk1lbnVVbml0cy5yYWRpdXN9ICR7c3ViTWVudVVuaXRzLnJhZGl1c30gTCAke3N1Yk1lbnVVbml0cy5sZWZ0WH0gJHtzdWJNZW51VW5pdHMubGVmdFl9IEEgJHtzdWJNZW51VW5pdHMucmFkaXVzfSAke3N1Yk1lbnVVbml0cy5yYWRpdXN9IDAgMCAxICR7c3ViTWVudVVuaXRzLnJpZ2h0WH0gJHtzdWJNZW51VW5pdHMucmlnaHRZfSBMICR7c3ViTWVudVVuaXRzLnJpZ2h0WH0gJHtzdWJNZW51VW5pdHMucmlnaHRZfSBMICR7c3ViTWVudVVuaXRzLnJhZGl1c30gJHtzdWJNZW51VW5pdHMucmFkaXVzfSBaYDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==