ngx-bimplus-components 0.0.160 → 0.0.162

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 (162) hide show
  1. package/assets/images/default/Attachment_18_gray.svg +1 -0
  2. package/assets/images/default/Attachment_18_maincolor.svg +3 -0
  3. package/assets/images/default/Attachmentlink_18_gray.svg +7 -0
  4. package/assets/images/default/Attachmentlink_18_maincolor.svg +7 -0
  5. package/assets/images/default/Calendar_18.svg +4 -0
  6. package/assets/images/default/Calendar_18_disabled.svg +1 -0
  7. package/assets/images/default/Calendar_18_gray.svg +1 -0
  8. package/assets/images/default/Comments_18_gray.svg +1 -0
  9. package/assets/images/default/Comments_18_maincolor.svg +4 -0
  10. package/assets/images/default/Links_18_gray.svg +1 -0
  11. package/assets/images/default/Links_18_maincolor.svg +4 -0
  12. package/assets/images/default/Refresh_18_gray.svg +1 -0
  13. package/assets/images/default/bimplus_WebIcons_Cross_Disabled.svg +1 -0
  14. package/assets/images/default/ic_models.svg +3 -0
  15. package/assets/images/default/ic_models_maincolor.svg +3 -0
  16. package/assets/images/default/icn_grid_attachments.png +0 -0
  17. package/assets/images/default/icn_grid_hyperlinks.png +0 -0
  18. package/assets/images/default/progress-spinner.svg +1 -0
  19. package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.component.mjs +114 -0
  20. package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.interface.mjs +38 -0
  21. package/esm2022/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.mjs +95 -0
  22. package/esm2022/lib/components/bimplus-attachments/services/bimplus-attachments.service.mjs +32 -0
  23. package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +40 -5
  24. package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +5 -2
  25. package/esm2022/lib/components/bimplus-comment/IComment.mjs +2 -0
  26. package/esm2022/lib/components/bimplus-comment/bimplus-comment.component.mjs +118 -0
  27. package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +5 -5
  28. package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +3 -3
  29. package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +115 -7
  30. package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
  31. package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +1 -1
  32. package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.mjs +1 -1
  33. package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component.mjs +3 -3
  34. package/esm2022/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.mjs +64 -0
  35. package/esm2022/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.mjs +161 -0
  36. package/esm2022/lib/components/bimplus-input-date/bimplus-input-date.component.mjs +271 -0
  37. package/esm2022/lib/components/bimplus-input-number/bimplus-input-number.component.mjs +85 -0
  38. package/esm2022/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.mjs +92 -0
  39. package/esm2022/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.mjs +78 -0
  40. package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.mjs +388 -0
  41. package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.interface.mjs +3 -0
  42. package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.mjs +104 -0
  43. package/esm2022/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.mjs +2 -0
  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 -3
  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/criteria-select-object-properties/criteria-select-object-properties.interface.mjs +1 -1
  48. package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +3 -3
  49. package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +42 -4
  50. package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.interface.mjs +4 -2
  51. package/esm2022/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.mjs +77 -0
  52. package/esm2022/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.mjs +83 -0
  53. package/esm2022/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.mjs +31 -8
  54. package/esm2022/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.mjs +34 -8
  55. package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +1 -1
  56. package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.component.mjs +35 -0
  57. package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.service.mjs +35 -0
  58. package/esm2022/lib/components/bimplus-status-bar/statusBar.mjs +2 -0
  59. package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.mjs +38 -0
  60. package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.mjs +10 -0
  61. package/esm2022/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.mjs +89 -0
  62. package/esm2022/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.mjs +33 -0
  63. package/esm2022/lib/components/bimplus-textarea/autoResizeTextarea.directive.mjs +83 -0
  64. package/esm2022/lib/components/bimplus-textarea/bimplus-textarea.component.mjs +128 -0
  65. package/esm2022/lib/components/links-to-documents/links-to-documents.component.mjs +376 -0
  66. package/esm2022/lib/components/object-hyperlinks/object-hyperlinks.component.mjs +145 -0
  67. package/esm2022/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.mjs +36 -0
  68. package/esm2022/lib/components/object-preview/object-preview.component.mjs +284 -0
  69. package/esm2022/lib/components/object-preview/object-preview.interface.mjs +2 -0
  70. package/esm2022/lib/components/object-properties/object-properties.component.mjs +545 -0
  71. package/esm2022/lib/components/object-properties/object-properties.interface.mjs +2 -0
  72. package/esm2022/lib/components/object-properties/object-properties.service.mjs +26 -0
  73. package/esm2022/lib/components/object-properties-group/object-properties-group.component.mjs +129 -0
  74. package/esm2022/lib/components/object-properties-group/object-property-value/object-property-value.component.mjs +55 -0
  75. package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +48 -6
  76. package/esm2022/lib/components/object-properties-header/object-properties-header.interface.mjs +1 -1
  77. package/esm2022/lib/components/resizable-panel/resizable-panel.component.mjs +54 -10
  78. package/esm2022/lib/pipes/bit-converter.pipe.mjs +46 -0
  79. package/esm2022/lib/pipes/get-attribute-value-as-string.pipe.mjs +173 -0
  80. package/esm2022/lib/pipes/get-attribute-value.pipe.mjs +156 -0
  81. package/esm2022/lib/pipes/round.pipe.mjs +20 -0
  82. package/esm2022/lib/services/decorators.service.mjs +65 -0
  83. package/esm2022/lib/utils/objectProperties.mjs +9 -0
  84. package/esm2022/lib/validators/double-enum.validator.mjs +20 -0
  85. package/esm2022/lib/validators/double.validator.mjs +23 -0
  86. package/esm2022/lib/validators/guid-enum.validator.mjs +20 -0
  87. package/esm2022/lib/validators/guid.validator.mjs +14 -0
  88. package/esm2022/lib/validators/integer.validator.mjs +23 -0
  89. package/esm2022/lib/validators/string-combobox.validator.mjs +20 -0
  90. package/esm2022/lib/validators/string-enum.validator.mjs +20 -0
  91. package/esm2022/public-api.mjs +22 -1
  92. package/fesm2022/ngx-bimplus-components.mjs +4618 -80
  93. package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
  94. package/lib/components/bimplus-attachments/bimplus-attachments.component.d.ts +39 -0
  95. package/lib/components/bimplus-attachments/bimplus-attachments.interface.d.ts +33 -0
  96. package/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.d.ts +30 -0
  97. package/lib/components/bimplus-attachments/services/bimplus-attachments.service.d.ts +8 -0
  98. package/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.d.ts +14 -3
  99. package/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.d.ts +7 -1
  100. package/lib/components/bimplus-comment/IComment.d.ts +4 -0
  101. package/lib/components/bimplus-comment/bimplus-comment.component.d.ts +39 -0
  102. package/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.d.ts +16 -3
  103. package/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.d.ts +4 -0
  104. package/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.d.ts +1 -1
  105. package/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.d.ts +3 -3
  106. package/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.d.ts +18 -0
  107. package/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.d.ts +41 -0
  108. package/lib/components/bimplus-input-date/bimplus-input-date.component.d.ts +46 -0
  109. package/lib/components/bimplus-input-number/bimplus-input-number.component.d.ts +26 -0
  110. package/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.d.ts +28 -0
  111. package/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.d.ts +22 -0
  112. package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.d.ts +88 -0
  113. package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.interface.d.ts +10 -0
  114. package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.d.ts +20 -0
  115. package/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.d.ts +11 -0
  116. package/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.d.ts +2 -1
  117. package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.d.ts +12 -12
  118. package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.d.ts +3 -3
  119. package/lib/components/bimplus-object-structure/bimplus-object-structure.component.d.ts +5 -1
  120. package/lib/components/bimplus-object-structure/bimplus-object-structure.interface.d.ts +2 -0
  121. package/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.d.ts +29 -0
  122. package/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.d.ts +24 -0
  123. package/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.d.ts +8 -1
  124. package/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.d.ts +11 -1
  125. package/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.d.ts +1 -1
  126. package/lib/components/bimplus-status-bar/bimplus-status-bar.component.d.ts +14 -0
  127. package/lib/components/bimplus-status-bar/bimplus-status-bar.service.d.ts +14 -0
  128. package/lib/components/bimplus-status-bar/statusBar.d.ts +4 -0
  129. package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.d.ts +16 -0
  130. package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.d.ts +18 -0
  131. package/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.d.ts +36 -0
  132. package/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.d.ts +15 -0
  133. package/lib/components/bimplus-textarea/autoResizeTextarea.directive.d.ts +24 -0
  134. package/lib/components/bimplus-textarea/bimplus-textarea.component.d.ts +42 -0
  135. package/lib/components/links-to-documents/links-to-documents.component.d.ts +69 -0
  136. package/lib/components/object-hyperlinks/object-hyperlinks.component.d.ts +32 -0
  137. package/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.d.ts +15 -0
  138. package/lib/components/object-preview/object-preview.component.d.ts +45 -0
  139. package/lib/components/object-preview/object-preview.interface.d.ts +5 -0
  140. package/lib/components/object-properties/object-properties.component.d.ts +79 -0
  141. package/lib/components/object-properties/object-properties.interface.d.ts +22 -0
  142. package/lib/components/object-properties/object-properties.service.d.ts +12 -0
  143. package/lib/components/object-properties-group/object-properties-group.component.d.ts +30 -0
  144. package/lib/components/object-properties-group/object-property-value/object-property-value.component.d.ts +14 -0
  145. package/lib/components/object-properties-header/object-properties-header.component.d.ts +13 -4
  146. package/lib/components/object-properties-header/object-properties-header.interface.d.ts +8 -0
  147. package/lib/components/resizable-panel/resizable-panel.component.d.ts +12 -3
  148. package/lib/pipes/bit-converter.pipe.d.ts +17 -0
  149. package/lib/pipes/get-attribute-value-as-string.pipe.d.ts +35 -0
  150. package/lib/pipes/get-attribute-value.pipe.d.ts +35 -0
  151. package/lib/pipes/round.pipe.d.ts +7 -0
  152. package/lib/services/decorators.service.d.ts +12 -0
  153. package/lib/utils/objectProperties.d.ts +2 -0
  154. package/lib/validators/double-enum.validator.d.ts +2 -0
  155. package/lib/validators/double.validator.d.ts +2 -0
  156. package/lib/validators/guid-enum.validator.d.ts +2 -0
  157. package/lib/validators/guid.validator.d.ts +2 -0
  158. package/lib/validators/integer.validator.d.ts +2 -0
  159. package/lib/validators/string-combobox.validator.d.ts +2 -0
  160. package/lib/validators/string-enum.validator.d.ts +2 -0
  161. package/package.json +14 -4
  162. package/public-api.d.ts +21 -0
@@ -1,6 +1,7 @@
1
1
  import { Component, Input, booleanAttribute, Output, EventEmitter, signal } from '@angular/core';
2
2
  import { MatIconModule } from '@angular/material/icon';
3
3
  import { MatButtonModule } from '@angular/material/button';
4
+ import { MatCheckbox } from '@angular/material/checkbox';
4
5
  import { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';
5
6
  import { SelectionModel } from '@angular/cdk/collections';
6
7
  import { CdkTreeModule, FlatTreeControl } from '@angular/cdk/tree';
@@ -32,24 +33,32 @@ export class BimplusFlatTreeComponent {
32
33
  this.enableDragAndDrop = false;
33
34
  this.dataTestPrefix = "";
34
35
  this.contextMenus = null;
36
+ this.hasCheckBox1 = false;
37
+ this.hasCheckBox2 = false;
35
38
  this.customNodeTemplate = signal(null);
36
39
  this.selectedNodes = new EventEmitter();
40
+ this.checked1Nodes = new EventEmitter();
41
+ this.checked2Nodes = new EventEmitter();
37
42
  this._selectionList = undefined;
38
43
  this._transformer = (node, level) => {
39
44
  return {
40
- expandable: node.children !== undefined,
45
+ expandable: node.children !== undefined && node.children.length > 0,
41
46
  children_count: node.children?.length,
42
47
  name: node.name,
43
48
  id: node.id,
44
49
  level: level,
45
50
  parent: node.parent,
46
- nodeType: node.nodeType
51
+ nodeType: node.nodeType,
52
+ isChecked1: true,
53
+ isChecked2: true,
54
+ isUndetermined1: false,
55
+ isUndetermined2: false
47
56
  };
48
57
  };
49
58
  this._treeControl = new FlatTreeControl(node => node.level, node => node.expandable);
50
59
  this._treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children);
51
60
  this._dataSource = new MatTreeFlatDataSource(this._treeControl, this._treeFlattener);
52
- this._isExpendable = (_, node) => node.expandable;
61
+ this._isExpandable = (_, node) => node.expandable;
53
62
  }
54
63
  get treeData() {
55
64
  return this._dataSource.data;
@@ -277,8 +286,96 @@ export class BimplusFlatTreeComponent {
277
286
  }
278
287
  return this._selectionList?.isSelected(node);
279
288
  }
289
+ _toggleCheckBox1(event, node) {
290
+ if (event) {
291
+ event.stopPropagation();
292
+ event.preventDefault();
293
+ }
294
+ node.isChecked1 = !node.isChecked1;
295
+ if (node.expandable) {
296
+ this._treeControl.getDescendants(node).forEach(n => {
297
+ n.isChecked1 = node.isChecked1;
298
+ });
299
+ }
300
+ node.isUndetermined1 = false;
301
+ this.checkUndetermined(node, 1);
302
+ fireEvent(this, "checked1Nodes", [node]);
303
+ }
304
+ _toggleCheckBox2(event, node) {
305
+ if (event) {
306
+ event.stopPropagation();
307
+ event.preventDefault();
308
+ }
309
+ node.isChecked2 = !node.isChecked2;
310
+ if (node.expandable) {
311
+ this._treeControl.getDescendants(node).forEach(n => {
312
+ n.isChecked2 = node.isChecked2;
313
+ });
314
+ }
315
+ node.isUndetermined2 = false;
316
+ this.checkUndetermined(node, 2);
317
+ fireEvent(this, "checked2Nodes", [node]);
318
+ }
319
+ //simplified version of checkUndetermined
320
+ checkUndetermined(node, checkbox) {
321
+ if (!this.hasCheckBox1 && checkbox === 1) {
322
+ return;
323
+ }
324
+ if (!this.hasCheckBox2 && checkbox === 2) {
325
+ return;
326
+ }
327
+ if (!node.parent) {
328
+ return;
329
+ }
330
+ let myNode = node;
331
+ while (myNode && myNode.parent) {
332
+ const parentNode = this._treeControl.dataNodes.find(n => n.id === myNode.parent);
333
+ if (!parentNode) {
334
+ return;
335
+ }
336
+ let checked = 0;
337
+ let unchecked = 0;
338
+ let undetermined = false;
339
+ this._treeControl.getDescendants(parentNode).forEach(n => {
340
+ if (checkbox === 1 ? n.isChecked1 : n.isChecked2) {
341
+ checked++;
342
+ }
343
+ else {
344
+ unchecked++;
345
+ }
346
+ if (checkbox === 1 ? n.isUndetermined1 : n.isUndetermined2) {
347
+ undetermined = true;
348
+ }
349
+ if (checked > 0 && unchecked > 0) {
350
+ undetermined = true;
351
+ }
352
+ });
353
+ if (checkbox === 1) {
354
+ parentNode.isUndetermined1 = undetermined;
355
+ parentNode.isChecked1 = !unchecked;
356
+ }
357
+ else {
358
+ parentNode.isUndetermined2 = undetermined;
359
+ parentNode.isChecked2 = !unchecked;
360
+ }
361
+ myNode = parentNode;
362
+ }
363
+ ;
364
+ }
365
+ _isUndetermined1(node) {
366
+ return node.isUndetermined1;
367
+ }
368
+ _isUndetermined2(node) {
369
+ return node.isUndetermined2;
370
+ }
371
+ _isChecked1(node) {
372
+ return node.isChecked1;
373
+ }
374
+ _isChecked2(node) {
375
+ return node.isChecked2;
376
+ }
280
377
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusFlatTreeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
281
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusFlatTreeComponent, isStandalone: true, selector: "lib-bimplus-flat-tree", inputs: { treeDataStringified: "treeDataStringified", treeTitleValue: ["treeTitle", "treeTitleValue"], paddingIndent: "paddingIndent", multiSelect: ["multiSelect", "multiSelect", booleanAttribute], oneLevelMultiSelect: ["oneLevelMultiSelect", "oneLevelMultiSelect", booleanAttribute], showFoldersIcons: ["showFoldersIcons", "showFoldersIcons", booleanAttribute], showObjectsIcons: ["showObjectsIcons", "showObjectsIcons", booleanAttribute], enableSelect: ["enableSelect", "enableSelect", booleanAttribute], enableParentHighlighting: ["enableParentHighlighting", "enableParentHighlighting", booleanAttribute], enableDragAndDrop: ["enableDragAndDrop", "enableDragAndDrop", booleanAttribute], dataTestPrefix: "dataTestPrefix", contextMenus: "contextMenus", treeData: "treeData", customNodeTemplateValue: ["customNodeTemplate", "customNodeTemplateValue"] }, outputs: { selectedNodes: "selectedNodes" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tree-container\">\r\n @if (treeTitle(); as treeTitle) {\r\n <div class=\"tree-title\">{{treeTitle}}</div>\r\n }\r\n <cdk-tree [dataSource]=\"_dataSource\" [treeControl]=\"_treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <cdk-tree-node\r\n [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"object-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled>\r\n </button>\r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon object-icon\" *ngIf=\"showObjectsIcons\">\r\n </div>\r\n <span\r\n class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div>\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.objectContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.objectContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <cdk-tree-node [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node;when: _isExpendable\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"folder-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.name\"\r\n >\r\n <div\r\n class=\"icon expand-collapse-icon\"\r\n [class.expand-more-icon]=\"_hasChildren(node) && !_treeControl.isExpanded(node)\"\r\n [class.collapse-icon]=\"_hasChildren(node) && _treeControl.isExpanded(node)\"\r\n >\r\n </div>\r\n </button>\r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon folder-icon\" *ngIf=\"showFoldersIcons\">\r\n </div>\r\n <span class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [class.selected-all-descendants-nodes]=\"_descendantsAllSelected(node) && _isSelected(node) && enableParentHighlighting\"\r\n [class.selected-partially-descendants-nodes]=\"_descendantsPartiallySelected(node) && enableParentHighlighting\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div class=\"node-label\">\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.folderContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.folderContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n </cdk-tree>\r\n</div>\r\n", styles: [".text-selected{color:var(--text-highlight-text-color-enabled)}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.tree-container{background-color:var(--flat-tree-container-background-color-enabled);width:calc(100% - 2 * var(--flat-tree-node-indent, 1rem));padding:var(--flat-tree-node-indent, 1rem);font-family:var(--flat-tree-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--flat-tree-font-size, 1.3rem);font-weight:var(--flat-tree-font-weight, 700);color:var(--flat-tree-container-text-color-enabled)}.tree-container>.tree-title{background-color:transparent;font-size:var(--flat-tree-title-font-size, 1.6rem);margin-bottom:1rem}.cdk-tree{background-color:transparent;width:100%}.cdk-tree>.cdk-tree-node{--mat-icon-button-touch-target-display: none;background-color:transparent;display:flex;align-items:center;cursor:pointer;line-height:var(--flat-tree-node-line-height, 2.4rem)}.cdk-tree>.cdk-tree-node.folder-node{font-weight:var(--flat-tree-folder-font-weight, 700)}.cdk-tree>.cdk-tree-node.object-node{font-weight:var(--flat-tree-object-font-weight, 400)}.cdk-tree>.cdk-tree-node>span.node-label{overflow:hidden;flex:1}.cdk-tree>.cdk-tree-node>span.node-label>div.node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-tree>.cdk-tree-node lib-bimplus-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: var(--flat-tree-node-line-height, 2.4rem);--context-menu-trigger-bkg-color: transparent;--context-menu-translate-x: 1rem}.cdk-tree>.cdk-tree-node:not(.selected-node):not(:hover) lib-bimplus-context-menu{display:none}.cdk-tree-node.dragable-node:hover{background-color:var(--flat-tree-draggable-node-background-color-hovered);background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"11\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;background-size:var(--flat-tree-node-icon-size, 1.8rem);background-position:left center}.mat-mdc-icon-button{padding:.2rem;width:var(--flat-tree-node-line-height, 2.4rem);height:var(--flat-tree-node-line-height, 2.4rem)}.selected-node{color:var(--flat-tree-selected-node-text-color-enabled);font-weight:var(--flat-tree-selected-node-font-weight, 700)!important}.selected-all-descendants-nodes{color:var(--flat-tree-selected-node-text-color-enabled)}.selected-partially-descendants-nodes{color:var(--flat-tree-partially-selected-nodes-text-color-enabled)}.custom-drag-placeholder{height:0px}.icon{width:var(--flat-tree-node-icon-size, 1.8rem);height:var(--flat-tree-node-icon-size, 1.8rem);margin-right:.4rem;background-position:center;background-size:var(--flat-tree-node-icon-size, 1.8rem)}.icon.folder-icon{background:var(--flat-tree-folder-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444444;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M17,7V5V4V1h-6L8,3H0v16h2h15l3-12H17z M8,5h0.6l0.5-0.3L11.6,3H15v1v1v2H3l-1,4V5H8z M15.4,17H2.6l2-8H15h2%0D%0A%09h0.4L15.4,17z\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-folder-icon-size, 1.6rem);background-position:center}.icon.object-icon{background:var(--flat-tree-object-icon, url('data:image/svg+xml,<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M6 9H10V7H6V9Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 4V6H14V4H6Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 12H10V10H6V12Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M17 1H3V19H13L17 15V1ZM13 15V17H5V3H15V15H13Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-object-icon-size, 1.6rem);background-position:center}.icon.expand-collapse-icon.expand-more-icon{background:var(--flat-tree-node-expand-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M7.81235 5.64988C7.48497 5.38797 7 5.62106 7 6.04031L7 11.9597C7 12.3789 7.48497 12.612 7.81235 12.3501L11.512 9.39043C11.7622 9.19027 11.7622 8.80973 11.512 8.60957L7.81235 5.64988Z\" fill=\"%23ADADAD\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}.icon.expand-collapse-icon.collapse-icon{background:var(--flat-tree-node-collapse-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M12.3501 7.81235C12.612 7.48497 12.3789 7 11.9597 7H6.04031C5.62106 7 5.38797 7.48497 5.64988 7.81235L8.60957 11.512C8.80973 11.7622 9.19027 11.7622 9.39043 11.512L12.3501 7.81235Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}\n"], dependencies: [{ kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: CdkTreeModule }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "levelAccessor", "childrenAccessor", "trackBy", "expansionKey"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNode, selector: "cdk-tree-node", inputs: ["role", "isExpandable", "isExpanded", "isDisabled", "cdkTreeNodeTypeaheadLabel"], outputs: ["activation", "expandedChange"], exportAs: ["cdkTreeNode"] }, { kind: "component", type: BimplusContextMenuComponent, selector: "lib-bimplus-context-menu", inputs: ["showIcons", "triggerTitle", "items", "data"], outputs: ["triggerSelected"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
378
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusFlatTreeComponent, isStandalone: true, selector: "lib-bimplus-flat-tree", inputs: { treeDataStringified: "treeDataStringified", treeTitleValue: ["treeTitle", "treeTitleValue"], paddingIndent: "paddingIndent", multiSelect: ["multiSelect", "multiSelect", booleanAttribute], oneLevelMultiSelect: ["oneLevelMultiSelect", "oneLevelMultiSelect", booleanAttribute], showFoldersIcons: ["showFoldersIcons", "showFoldersIcons", booleanAttribute], showObjectsIcons: ["showObjectsIcons", "showObjectsIcons", booleanAttribute], enableSelect: ["enableSelect", "enableSelect", booleanAttribute], enableParentHighlighting: ["enableParentHighlighting", "enableParentHighlighting", booleanAttribute], enableDragAndDrop: ["enableDragAndDrop", "enableDragAndDrop", booleanAttribute], dataTestPrefix: "dataTestPrefix", contextMenus: "contextMenus", hasCheckBox1: ["hasCheckBox1", "hasCheckBox1", booleanAttribute], hasCheckBox2: ["hasCheckBox2", "hasCheckBox2", booleanAttribute], treeData: "treeData", customNodeTemplateValue: ["customNodeTemplate", "customNodeTemplateValue"] }, outputs: { selectedNodes: "selectedNodes", checked1Nodes: "checked1Nodes", checked2Nodes: "checked2Nodes" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tree-container\">\r\n @if (treeTitle(); as treeTitle) {\r\n <div class=\"tree-title\">{{treeTitle}}</div>\r\n }\r\n <cdk-tree [dataSource]=\"_dataSource\" [treeControl]=\"_treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <cdk-tree-node\r\n [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"object-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled>\r\n </button>\r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon object-icon\" *ngIf=\"showObjectsIcons\">\r\n </div>\r\n <span\r\n class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div>\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.objectContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.objectContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n @if(hasCheckBox1){\r\n <div\r\n class=\"custom-checkbox1\"\r\n [ngClass]=\"{ 'icon-checked': _isChecked1(node), 'icon-unchecked': !_isChecked1(node) }\"\r\n (click)=\"_toggleCheckBox1($event,node)\"\r\n (keypress)=\"_toggleCheckBox1($event,node)\"\r\n ></div>\r\n }\r\n @if(hasCheckBox2){\r\n <div\r\n class=\"custom-checkbox2\"\r\n [ngClass]=\"{ 'icon-checked': _isChecked2(node), 'icon-unchecked': !_isChecked2(node) }\"\r\n (click)=\"_toggleCheckBox2($event,node)\"\r\n (keypress)=\"_toggleCheckBox2($event,node)\"\r\n ></div>\r\n }\r\n </cdk-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <cdk-tree-node [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node;when: _isExpandable\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"folder-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.name\"\r\n >\r\n <div\r\n class=\"icon expand-collapse-icon\"\r\n [class.expand-more-icon]=\"_hasChildren(node) && !_treeControl.isExpanded(node)\"\r\n [class.collapse-icon]=\"_hasChildren(node) && _treeControl.isExpanded(node)\"\r\n >\r\n </div>\r\n </button> \r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon folder-icon\" *ngIf=\"showFoldersIcons\">\r\n </div>\r\n <span class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [class.selected-all-descendants-nodes]=\"_descendantsAllSelected(node) && _isSelected(node) && enableParentHighlighting\"\r\n [class.selected-partially-descendants-nodes]=\"_descendantsPartiallySelected(node) && enableParentHighlighting\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div class=\"node-label\">\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.folderContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.folderContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n\r\n @if(hasCheckBox1){\r\n <div\r\n class=\"custom-checkbox1\"\r\n [ngClass]=\"{\r\n 'icon-undetermined': _isUndetermined1(node),\r\n 'icon-checked': !_isUndetermined1(node) && _isChecked1(node),\r\n 'icon-unchecked': !_isUndetermined1(node) && !_isChecked1(node)\r\n }\"\r\n (click)=\"_toggleCheckBox1($event,node)\"\r\n (keypress)=\"_toggleCheckBox1($event,node)\"\r\n ></div>\r\n }\r\n @if(hasCheckBox2){\r\n <div\r\n class=\"custom-checkbox2\"\r\n [ngClass]=\"{\r\n 'icon-undetermined': _isUndetermined2(node),\r\n 'icon-checked': !_isUndetermined2(node) && _isChecked2(node),\r\n 'icon-unchecked': !_isUndetermined2(node) && !_isChecked2(node)\r\n }\"\r\n (click)=\"_toggleCheckBox2($event,node)\"\r\n (keypress)=\"_toggleCheckBox2($event,node)\"\r\n ></div>\r\n }\r\n </cdk-tree-node>\r\n </cdk-tree>\r\n</div>\r\n", styles: [".text-selected{color:var(--text-highlight-text-color-enabled)}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.tree-container{background-color:var(--flat-tree-background-color, var(--flat-tree-container-background-color-enabled));width:calc(100% - 2 * var(--flat-tree-node-indent, 1rem));padding:var(--flat-tree-node-indent, 1rem);font-family:var(--flat-tree-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--flat-tree-font-size, 1.3rem);font-weight:var(--flat-tree-font-weight, 700);color:var(--flat-tree-container-text-color-enabled)}.tree-container>.tree-title{background-color:transparent;font-size:var(--flat-tree-title-font-size, 1.6rem);margin-bottom:1rem}.cdk-tree{background-color:transparent;width:100%}.cdk-tree>.cdk-tree-node{--mat-icon-button-touch-target-display: none;background-color:transparent;display:flex;align-items:center;cursor:pointer;line-height:var(--flat-tree-node-line-height, 2.4rem)}.cdk-tree>.cdk-tree-node.folder-node{font-weight:var(--flat-tree-folder-font-weight, 700)}.cdk-tree>.cdk-tree-node.object-node{font-weight:var(--flat-tree-object-font-weight, 400)}.cdk-tree>.cdk-tree-node>span.node-label{overflow:hidden;flex:1}.cdk-tree>.cdk-tree-node>span.node-label>div.node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-tree>.cdk-tree-node lib-bimplus-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: var(--flat-tree-node-line-height, 2.4rem);--context-menu-trigger-bkg-color: transparent;--context-menu-translate-x: 1rem}.cdk-tree>.cdk-tree-node:not(.selected-node):not(:hover) lib-bimplus-context-menu{display:none}.cdk-tree-node.dragable-node:hover{background-color:var(--flat-tree-draggable-node-background-color-hovered);background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"11\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;background-size:var(--flat-tree-node-icon-size, 1.8rem);background-position:left center}.mat-mdc-icon-button{padding:.2rem;width:var(--flat-tree-node-line-height, 2.4rem);height:var(--flat-tree-node-line-height, 2.4rem)}.selected-node{color:var(--flat-tree-selected-node-text-color-enabled);font-weight:var(--flat-tree-selected-node-font-weight, 700)!important}.selected-all-descendants-nodes{color:var(--flat-tree-selected-node-text-color-enabled)}.selected-partially-descendants-nodes{color:var(--flat-tree-partially-selected-nodes-text-color-enabled)}.custom-drag-placeholder{height:0px}.custom-checkbox1,.custom-checkbox2{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding-left:.2rem;padding-right:.2rem;cursor:pointer;background-size:1.8rem 1.8rem!important}.custom-checkbox1.icon-checked{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M0 10.8998L9 5.7998L18 10.8998L9 15.9998L0 10.8998Z\" fill=\"%2387C1FF\"/>%0D%0A<path d=\"M0 7.10001L9 2L18 7.10001L9 12.2L0 7.10001Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox1.icon-unchecked{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M0 10.9L9 5.80002L18 10.9L9 16L0 10.9Z\" fill=\"%23E1E5E8\"/>%0D%0A<path d=\"M0 7.10001L9 2L18 7.10001L9 12.2L0 7.10001Z\" fill=\"%2384888C\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox1.icon-undetermined{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M0 10.9L9 5.80002L18 10.9L9 16L0 10.9Z\" fill=\"%23DEF0FF\"/>%0D%0A<path d=\"M0 7.10001L9 2L18 7.10001L9 12.2L0 7.10001Z\" fill=\"%2387C1FF\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox2.icon-checked{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M9.0005 6.00002C9.39649 5.99269 9.78988 6.06528 10.1572 6.21345C10.5245 6.36162 10.8581 6.58233 11.1381 6.86238C11.4182 7.14242 11.6389 7.47607 11.7871 7.84335C11.9352 8.21064 12.0078 8.60403 12.0005 9.00002C12.0078 9.396 11.9352 9.78939 11.7871 10.1567C11.6389 10.524 11.4182 10.8576 11.1381 11.1377C10.8581 11.4177 10.5245 11.6384 10.1572 11.7866C9.78988 11.9348 9.39649 12.0073 9.0005 12C8.60452 12.0073 8.21113 11.9348 7.84384 11.7866C7.47655 11.6384 7.14291 11.4177 6.86286 11.1377C6.58281 10.8576 6.36211 10.524 6.21394 10.1567C6.06577 9.78939 5.99318 9.396 6.0005 9.00002C5.99318 8.60403 6.06577 8.21064 6.21394 7.84335C6.36211 7.47607 6.58281 7.14242 6.86286 6.86238C7.14291 6.58233 7.47655 6.36162 7.84384 6.21345C8.21113 6.06528 8.60452 5.99269 9.0005 6.00002Z\" fill=\"%230066CC\"/>%0D%0A<path d=\"M9 3C3.5 3 0 9 0 9C0 9 3.5 15 9 15C14.5 15 18 9 18 9C18 9 14.5 3 9 3ZM9 14C8.34157 14.0065 7.68845 13.8817 7.07886 13.6327C6.46928 13.3838 5.91547 13.0157 5.44987 12.5501C4.98427 12.0845 4.61622 11.5307 4.36726 10.9211C4.11831 10.3116 3.99345 9.65843 4 9C3.99345 8.34157 4.11831 7.68845 4.36726 7.07886C4.61622 6.46928 4.98427 5.91547 5.44987 5.44987C5.91547 4.98427 6.46928 4.61622 7.07886 4.36726C7.68845 4.11831 8.34157 3.99345 9 4C9.65843 3.99345 10.3116 4.11831 10.9211 4.36726C11.5307 4.61622 12.0845 4.98427 12.5501 5.44987C13.0157 5.91547 13.3838 6.46928 13.6327 7.07886C13.8817 7.68845 14.0065 8.34157 14 9C14.0065 9.65843 13.8817 10.3116 13.6327 10.9211C13.3838 11.5307 13.0157 12.0845 12.5501 12.5501C12.0845 13.0157 11.5307 13.3838 10.9211 13.6327C10.3116 13.8817 9.65843 14.0065 9 14Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox2.icon-unchecked{display:inline-block;background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23bababa}<\\/style><path class=\"st0\" d=\"M9 6c1.7 0 3 1.3 3 3s-1.3 3-3 3-3-1.3-3-3 1.3-3 3-3z\"/><path class=\"st0\" d=\"M9 3C3.5 3 0 9 0 9s3.5 6 9 6 9-6 9-6-3.5-6-9-6zm0 11c-2.8 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5z\"/></svg>') no-repeat center}.custom-checkbox2.icon-undetermined{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M9.0005 6.00002C9.39649 5.99269 9.78988 6.06528 10.1572 6.21345C10.5245 6.36162 10.8581 6.58233 11.1381 6.86238C11.4182 7.14242 11.6389 7.47607 11.7871 7.84335C11.9352 8.21064 12.0078 8.60403 12.0005 9.00002C12.0078 9.396 11.9352 9.78939 11.7871 10.1567C11.6389 10.524 11.4182 10.8576 11.1381 11.1377C10.8581 11.4177 10.5245 11.6384 10.1572 11.7866C9.78988 11.9348 9.39649 12.0073 9.0005 12C8.60452 12.0073 8.21113 11.9348 7.84384 11.7866C7.47655 11.6384 7.14291 11.4177 6.86286 11.1377C6.58281 10.8576 6.36211 10.524 6.21394 10.1567C6.06577 9.78939 5.99318 9.396 6.0005 9.00002C5.99318 8.60403 6.06577 8.21064 6.21394 7.84335C6.36211 7.47607 6.58281 7.14242 6.86286 6.86238C7.14291 6.58233 7.47655 6.36162 7.84384 6.21345C8.21113 6.06528 8.60452 5.99269 9.0005 6.00002Z\" fill=\"%2387C1FF\"/>%0D%0A<path d=\"M9 3C3.5 3 0 9 0 9C0 9 3.5 15 9 15C14.5 15 18 9 18 9C18 9 14.5 3 9 3ZM9 14C8.34157 14.0065 7.68845 13.8817 7.07886 13.6327C6.46928 13.3838 5.91547 13.0157 5.44987 12.5501C4.98427 12.0845 4.61622 11.5307 4.36726 10.9211C4.11831 10.3116 3.99345 9.65843 4 9C3.99345 8.34157 4.11831 7.68845 4.36726 7.07886C4.61622 6.46928 4.98427 5.91547 5.44987 5.44987C5.91547 4.98427 6.46928 4.61622 7.07886 4.36726C7.68845 4.11831 8.34157 3.99345 9 4C9.65843 3.99345 10.3116 4.11831 10.9211 4.36726C11.5307 4.61622 12.0845 4.98427 12.5501 5.44987C13.0157 5.91547 13.3838 6.46928 13.6327 7.07886C13.8817 7.68845 14.0065 8.34157 14 9C14.0065 9.65843 13.8817 10.3116 13.6327 10.9211C13.3838 11.5307 13.0157 12.0845 12.5501 12.5501C12.0845 13.0157 11.5307 13.3838 10.9211 13.6327C10.3116 13.8817 9.65843 14.0065 9 14Z\" fill=\"%2387C1FF\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon{width:var(--flat-tree-node-icon-size, 1.8rem);height:var(--flat-tree-node-icon-size, 1.8rem);margin-right:.4rem;background-position:center;background-size:var(--flat-tree-node-icon-size, 1.8rem)}.icon.folder-icon{background:var(--flat-tree-folder-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444444;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M17,7V5V4V1h-6L8,3H0v16h2h15l3-12H17z M8,5h0.6l0.5-0.3L11.6,3H15v1v1v2H3l-1,4V5H8z M15.4,17H2.6l2-8H15h2%0D%0A%09h0.4L15.4,17z\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-folder-icon-size, 1.6rem);background-position:center}.icon.object-icon{background:var(--flat-tree-object-icon, url('data:image/svg+xml,<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M6 9H10V7H6V9Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 4V6H14V4H6Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 12H10V10H6V12Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M17 1H3V19H13L17 15V1ZM13 15V17H5V3H15V15H13Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-object-icon-size, 1.6rem);background-position:center}.icon.expand-collapse-icon.expand-more-icon{background:var(--flat-tree-node-expand-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M7.81235 5.64988C7.48497 5.38797 7 5.62106 7 6.04031L7 11.9597C7 12.3789 7.48497 12.612 7.81235 12.3501L11.512 9.39043C11.7622 9.19027 11.7622 8.80973 11.512 8.60957L7.81235 5.64988Z\" fill=\"%23ADADAD\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}.icon.expand-collapse-icon.collapse-icon{background:var(--flat-tree-node-collapse-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M12.3501 7.81235C12.612 7.48497 12.3789 7 11.9597 7H6.04031C5.62106 7 5.38797 7.48497 5.64988 7.81235L8.60957 11.512C8.80973 11.7622 9.19027 11.7622 9.39043 11.512L12.3501 7.81235Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}\n"], dependencies: [{ kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: CdkTreeModule }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "levelAccessor", "childrenAccessor", "trackBy", "expansionKey"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNode, selector: "cdk-tree-node", inputs: ["role", "isExpandable", "isExpanded", "isDisabled", "cdkTreeNodeTypeaheadLabel"], outputs: ["activation", "expandedChange"], exportAs: ["cdkTreeNode"] }, { kind: "component", type: BimplusContextMenuComponent, selector: "lib-bimplus-context-menu", inputs: ["showIcons", "triggerTitle", "items", "data"], outputs: ["triggerSelected"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
282
379
  }
283
380
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusFlatTreeComponent, decorators: [{
284
381
  type: Component,
@@ -287,8 +384,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
287
384
  MatIconModule,
288
385
  CdkTreeModule,
289
386
  BimplusContextMenuComponent,
290
- CommonModule
291
- ], template: "<div class=\"tree-container\">\r\n @if (treeTitle(); as treeTitle) {\r\n <div class=\"tree-title\">{{treeTitle}}</div>\r\n }\r\n <cdk-tree [dataSource]=\"_dataSource\" [treeControl]=\"_treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <cdk-tree-node\r\n [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"object-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled>\r\n </button>\r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon object-icon\" *ngIf=\"showObjectsIcons\">\r\n </div>\r\n <span\r\n class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div>\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.objectContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.objectContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <cdk-tree-node [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node;when: _isExpendable\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"folder-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.name\"\r\n >\r\n <div\r\n class=\"icon expand-collapse-icon\"\r\n [class.expand-more-icon]=\"_hasChildren(node) && !_treeControl.isExpanded(node)\"\r\n [class.collapse-icon]=\"_hasChildren(node) && _treeControl.isExpanded(node)\"\r\n >\r\n </div>\r\n </button>\r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon folder-icon\" *ngIf=\"showFoldersIcons\">\r\n </div>\r\n <span class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [class.selected-all-descendants-nodes]=\"_descendantsAllSelected(node) && _isSelected(node) && enableParentHighlighting\"\r\n [class.selected-partially-descendants-nodes]=\"_descendantsPartiallySelected(node) && enableParentHighlighting\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div class=\"node-label\">\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.folderContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.folderContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n </cdk-tree-node>\r\n </cdk-tree>\r\n</div>\r\n", styles: [".text-selected{color:var(--text-highlight-text-color-enabled)}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.tree-container{background-color:var(--flat-tree-container-background-color-enabled);width:calc(100% - 2 * var(--flat-tree-node-indent, 1rem));padding:var(--flat-tree-node-indent, 1rem);font-family:var(--flat-tree-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--flat-tree-font-size, 1.3rem);font-weight:var(--flat-tree-font-weight, 700);color:var(--flat-tree-container-text-color-enabled)}.tree-container>.tree-title{background-color:transparent;font-size:var(--flat-tree-title-font-size, 1.6rem);margin-bottom:1rem}.cdk-tree{background-color:transparent;width:100%}.cdk-tree>.cdk-tree-node{--mat-icon-button-touch-target-display: none;background-color:transparent;display:flex;align-items:center;cursor:pointer;line-height:var(--flat-tree-node-line-height, 2.4rem)}.cdk-tree>.cdk-tree-node.folder-node{font-weight:var(--flat-tree-folder-font-weight, 700)}.cdk-tree>.cdk-tree-node.object-node{font-weight:var(--flat-tree-object-font-weight, 400)}.cdk-tree>.cdk-tree-node>span.node-label{overflow:hidden;flex:1}.cdk-tree>.cdk-tree-node>span.node-label>div.node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-tree>.cdk-tree-node lib-bimplus-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: var(--flat-tree-node-line-height, 2.4rem);--context-menu-trigger-bkg-color: transparent;--context-menu-translate-x: 1rem}.cdk-tree>.cdk-tree-node:not(.selected-node):not(:hover) lib-bimplus-context-menu{display:none}.cdk-tree-node.dragable-node:hover{background-color:var(--flat-tree-draggable-node-background-color-hovered);background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"11\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;background-size:var(--flat-tree-node-icon-size, 1.8rem);background-position:left center}.mat-mdc-icon-button{padding:.2rem;width:var(--flat-tree-node-line-height, 2.4rem);height:var(--flat-tree-node-line-height, 2.4rem)}.selected-node{color:var(--flat-tree-selected-node-text-color-enabled);font-weight:var(--flat-tree-selected-node-font-weight, 700)!important}.selected-all-descendants-nodes{color:var(--flat-tree-selected-node-text-color-enabled)}.selected-partially-descendants-nodes{color:var(--flat-tree-partially-selected-nodes-text-color-enabled)}.custom-drag-placeholder{height:0px}.icon{width:var(--flat-tree-node-icon-size, 1.8rem);height:var(--flat-tree-node-icon-size, 1.8rem);margin-right:.4rem;background-position:center;background-size:var(--flat-tree-node-icon-size, 1.8rem)}.icon.folder-icon{background:var(--flat-tree-folder-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444444;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M17,7V5V4V1h-6L8,3H0v16h2h15l3-12H17z M8,5h0.6l0.5-0.3L11.6,3H15v1v1v2H3l-1,4V5H8z M15.4,17H2.6l2-8H15h2%0D%0A%09h0.4L15.4,17z\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-folder-icon-size, 1.6rem);background-position:center}.icon.object-icon{background:var(--flat-tree-object-icon, url('data:image/svg+xml,<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M6 9H10V7H6V9Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 4V6H14V4H6Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 12H10V10H6V12Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M17 1H3V19H13L17 15V1ZM13 15V17H5V3H15V15H13Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-object-icon-size, 1.6rem);background-position:center}.icon.expand-collapse-icon.expand-more-icon{background:var(--flat-tree-node-expand-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M7.81235 5.64988C7.48497 5.38797 7 5.62106 7 6.04031L7 11.9597C7 12.3789 7.48497 12.612 7.81235 12.3501L11.512 9.39043C11.7622 9.19027 11.7622 8.80973 11.512 8.60957L7.81235 5.64988Z\" fill=\"%23ADADAD\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}.icon.expand-collapse-icon.collapse-icon{background:var(--flat-tree-node-collapse-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M12.3501 7.81235C12.612 7.48497 12.3789 7 11.9597 7H6.04031C5.62106 7 5.38797 7.48497 5.64988 7.81235L8.60957 11.512C8.80973 11.7622 9.19027 11.7622 9.39043 11.512L12.3501 7.81235Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}\n"] }]
387
+ CommonModule,
388
+ MatCheckbox
389
+ ], template: "<div class=\"tree-container\">\r\n @if (treeTitle(); as treeTitle) {\r\n <div class=\"tree-title\">{{treeTitle}}</div>\r\n }\r\n <cdk-tree [dataSource]=\"_dataSource\" [treeControl]=\"_treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <cdk-tree-node\r\n [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"object-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <!-- use a disabled button to provide padding for tree leaf -->\r\n <button mat-icon-button disabled>\r\n </button>\r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon object-icon\" *ngIf=\"showObjectsIcons\">\r\n </div>\r\n <span\r\n class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div>\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.objectContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.objectContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n @if(hasCheckBox1){\r\n <div\r\n class=\"custom-checkbox1\"\r\n [ngClass]=\"{ 'icon-checked': _isChecked1(node), 'icon-unchecked': !_isChecked1(node) }\"\r\n (click)=\"_toggleCheckBox1($event,node)\"\r\n (keypress)=\"_toggleCheckBox1($event,node)\"\r\n ></div>\r\n }\r\n @if(hasCheckBox2){\r\n <div\r\n class=\"custom-checkbox2\"\r\n [ngClass]=\"{ 'icon-checked': _isChecked2(node), 'icon-unchecked': !_isChecked2(node) }\"\r\n (click)=\"_toggleCheckBox2($event,node)\"\r\n (keypress)=\"_toggleCheckBox2($event,node)\"\r\n ></div>\r\n }\r\n </cdk-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <cdk-tree-node [matTreeNodePaddingIndent]=\"paddingIndent\"\r\n *matTreeNodeDef=\"let node;when: _isExpandable\"\r\n matTreeNodePadding\r\n (click)=\"_toggleNode($event, node)\"\r\n (keypress)=\"_toggleNode($event, node)\"\r\n class=\"folder-node\"\r\n [class.dragable-node]=\"enableDragAndDrop && node.level > 0\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [attr.data-test]=\"dataTestPrefix + node.id\"\r\n [title]=\"node.name\"\r\n [attr.node-id]=\"node.id\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.name\"\r\n >\r\n <div\r\n class=\"icon expand-collapse-icon\"\r\n [class.expand-more-icon]=\"_hasChildren(node) && !_treeControl.isExpanded(node)\"\r\n [class.collapse-icon]=\"_hasChildren(node) && _treeControl.isExpanded(node)\"\r\n >\r\n </div>\r\n </button> \r\n @if (customNodeTemplate() && _isCustomNodeType(node)) {\r\n <ng-container \r\n [ngTemplateOutlet]=\"customNodeTemplate()\" \r\n [ngTemplateOutletContext]=\"{node:node}\">\r\n </ng-container>\r\n }@else{\r\n <div class=\"icon folder-icon\" *ngIf=\"showFoldersIcons\">\r\n </div>\r\n <span class=\"node-label\"\r\n [class.selected-node]=\"_isSelected(node)\"\r\n [class.selected-all-descendants-nodes]=\"_descendantsAllSelected(node) && _isSelected(node) && enableParentHighlighting\"\r\n [class.selected-partially-descendants-nodes]=\"_descendantsPartiallySelected(node) && enableParentHighlighting\"\r\n >\r\n <div class=\"custom-drag-placeholder\" *cdkDragPlaceholder></div>\r\n <div class=\"node-label\">\r\n {{node.name}}\r\n </div>\r\n </span>\r\n }\r\n <lib-bimplus-context-menu\r\n [items]=\"contextMenus?.folderContextMenuitems\"\r\n [data]=\"node\"\r\n *ngIf=\"contextMenus?.folderContextMenuitems?.length\"\r\n (triggerSelected)=\"_toggleNode($event, node)\"\r\n >\r\n </lib-bimplus-context-menu>\r\n\r\n @if(hasCheckBox1){\r\n <div\r\n class=\"custom-checkbox1\"\r\n [ngClass]=\"{\r\n 'icon-undetermined': _isUndetermined1(node),\r\n 'icon-checked': !_isUndetermined1(node) && _isChecked1(node),\r\n 'icon-unchecked': !_isUndetermined1(node) && !_isChecked1(node)\r\n }\"\r\n (click)=\"_toggleCheckBox1($event,node)\"\r\n (keypress)=\"_toggleCheckBox1($event,node)\"\r\n ></div>\r\n }\r\n @if(hasCheckBox2){\r\n <div\r\n class=\"custom-checkbox2\"\r\n [ngClass]=\"{\r\n 'icon-undetermined': _isUndetermined2(node),\r\n 'icon-checked': !_isUndetermined2(node) && _isChecked2(node),\r\n 'icon-unchecked': !_isUndetermined2(node) && !_isChecked2(node)\r\n }\"\r\n (click)=\"_toggleCheckBox2($event,node)\"\r\n (keypress)=\"_toggleCheckBox2($event,node)\"\r\n ></div>\r\n }\r\n </cdk-tree-node>\r\n </cdk-tree>\r\n</div>\r\n", styles: [".text-selected{color:var(--text-highlight-text-color-enabled)}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}.tree-container{background-color:var(--flat-tree-background-color, var(--flat-tree-container-background-color-enabled));width:calc(100% - 2 * var(--flat-tree-node-indent, 1rem));padding:var(--flat-tree-node-indent, 1rem);font-family:var(--flat-tree-font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:var(--flat-tree-font-size, 1.3rem);font-weight:var(--flat-tree-font-weight, 700);color:var(--flat-tree-container-text-color-enabled)}.tree-container>.tree-title{background-color:transparent;font-size:var(--flat-tree-title-font-size, 1.6rem);margin-bottom:1rem}.cdk-tree{background-color:transparent;width:100%}.cdk-tree>.cdk-tree-node{--mat-icon-button-touch-target-display: none;background-color:transparent;display:flex;align-items:center;cursor:pointer;line-height:var(--flat-tree-node-line-height, 2.4rem)}.cdk-tree>.cdk-tree-node.folder-node{font-weight:var(--flat-tree-folder-font-weight, 700)}.cdk-tree>.cdk-tree-node.object-node{font-weight:var(--flat-tree-object-font-weight, 400)}.cdk-tree>.cdk-tree-node>span.node-label{overflow:hidden;flex:1}.cdk-tree>.cdk-tree-node>span.node-label>div.node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-tree>.cdk-tree-node lib-bimplus-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: var(--flat-tree-node-line-height, 2.4rem);--context-menu-trigger-bkg-color: transparent;--context-menu-translate-x: 1rem}.cdk-tree>.cdk-tree-node:not(.selected-node):not(:hover) lib-bimplus-context-menu{display:none}.cdk-tree-node.dragable-node:hover{background-color:var(--flat-tree-draggable-node-background-color-hovered);background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"11\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"2\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"8\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"11\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A<rect x=\"6\" y=\"14\" width=\"2\" height=\"2\" fill=\"%237B7B7B\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;background-size:var(--flat-tree-node-icon-size, 1.8rem);background-position:left center}.mat-mdc-icon-button{padding:.2rem;width:var(--flat-tree-node-line-height, 2.4rem);height:var(--flat-tree-node-line-height, 2.4rem)}.selected-node{color:var(--flat-tree-selected-node-text-color-enabled);font-weight:var(--flat-tree-selected-node-font-weight, 700)!important}.selected-all-descendants-nodes{color:var(--flat-tree-selected-node-text-color-enabled)}.selected-partially-descendants-nodes{color:var(--flat-tree-partially-selected-nodes-text-color-enabled)}.custom-drag-placeholder{height:0px}.custom-checkbox1,.custom-checkbox2{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding-left:.2rem;padding-right:.2rem;cursor:pointer;background-size:1.8rem 1.8rem!important}.custom-checkbox1.icon-checked{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M0 10.8998L9 5.7998L18 10.8998L9 15.9998L0 10.8998Z\" fill=\"%2387C1FF\"/>%0D%0A<path d=\"M0 7.10001L9 2L18 7.10001L9 12.2L0 7.10001Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox1.icon-unchecked{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M0 10.9L9 5.80002L18 10.9L9 16L0 10.9Z\" fill=\"%23E1E5E8\"/>%0D%0A<path d=\"M0 7.10001L9 2L18 7.10001L9 12.2L0 7.10001Z\" fill=\"%2384888C\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox1.icon-undetermined{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M0 10.9L9 5.80002L18 10.9L9 16L0 10.9Z\" fill=\"%23DEF0FF\"/>%0D%0A<path d=\"M0 7.10001L9 2L18 7.10001L9 12.2L0 7.10001Z\" fill=\"%2387C1FF\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox2.icon-checked{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M9.0005 6.00002C9.39649 5.99269 9.78988 6.06528 10.1572 6.21345C10.5245 6.36162 10.8581 6.58233 11.1381 6.86238C11.4182 7.14242 11.6389 7.47607 11.7871 7.84335C11.9352 8.21064 12.0078 8.60403 12.0005 9.00002C12.0078 9.396 11.9352 9.78939 11.7871 10.1567C11.6389 10.524 11.4182 10.8576 11.1381 11.1377C10.8581 11.4177 10.5245 11.6384 10.1572 11.7866C9.78988 11.9348 9.39649 12.0073 9.0005 12C8.60452 12.0073 8.21113 11.9348 7.84384 11.7866C7.47655 11.6384 7.14291 11.4177 6.86286 11.1377C6.58281 10.8576 6.36211 10.524 6.21394 10.1567C6.06577 9.78939 5.99318 9.396 6.0005 9.00002C5.99318 8.60403 6.06577 8.21064 6.21394 7.84335C6.36211 7.47607 6.58281 7.14242 6.86286 6.86238C7.14291 6.58233 7.47655 6.36162 7.84384 6.21345C8.21113 6.06528 8.60452 5.99269 9.0005 6.00002Z\" fill=\"%230066CC\"/>%0D%0A<path d=\"M9 3C3.5 3 0 9 0 9C0 9 3.5 15 9 15C14.5 15 18 9 18 9C18 9 14.5 3 9 3ZM9 14C8.34157 14.0065 7.68845 13.8817 7.07886 13.6327C6.46928 13.3838 5.91547 13.0157 5.44987 12.5501C4.98427 12.0845 4.61622 11.5307 4.36726 10.9211C4.11831 10.3116 3.99345 9.65843 4 9C3.99345 8.34157 4.11831 7.68845 4.36726 7.07886C4.61622 6.46928 4.98427 5.91547 5.44987 5.44987C5.91547 4.98427 6.46928 4.61622 7.07886 4.36726C7.68845 4.11831 8.34157 3.99345 9 4C9.65843 3.99345 10.3116 4.11831 10.9211 4.36726C11.5307 4.61622 12.0845 4.98427 12.5501 5.44987C13.0157 5.91547 13.3838 6.46928 13.6327 7.07886C13.8817 7.68845 14.0065 8.34157 14 9C14.0065 9.65843 13.8817 10.3116 13.6327 10.9211C13.3838 11.5307 13.0157 12.0845 12.5501 12.5501C12.0845 13.0157 11.5307 13.3838 10.9211 13.6327C10.3116 13.8817 9.65843 14.0065 9 14Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A') no-repeat center}.custom-checkbox2.icon-unchecked{display:inline-block;background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23bababa}<\\/style><path class=\"st0\" d=\"M9 6c1.7 0 3 1.3 3 3s-1.3 3-3 3-3-1.3-3-3 1.3-3 3-3z\"/><path class=\"st0\" d=\"M9 3C3.5 3 0 9 0 9s3.5 6 9 6 9-6 9-6-3.5-6-9-6zm0 11c-2.8 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5z\"/></svg>') no-repeat center}.custom-checkbox2.icon-undetermined{display:inline-block;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M9.0005 6.00002C9.39649 5.99269 9.78988 6.06528 10.1572 6.21345C10.5245 6.36162 10.8581 6.58233 11.1381 6.86238C11.4182 7.14242 11.6389 7.47607 11.7871 7.84335C11.9352 8.21064 12.0078 8.60403 12.0005 9.00002C12.0078 9.396 11.9352 9.78939 11.7871 10.1567C11.6389 10.524 11.4182 10.8576 11.1381 11.1377C10.8581 11.4177 10.5245 11.6384 10.1572 11.7866C9.78988 11.9348 9.39649 12.0073 9.0005 12C8.60452 12.0073 8.21113 11.9348 7.84384 11.7866C7.47655 11.6384 7.14291 11.4177 6.86286 11.1377C6.58281 10.8576 6.36211 10.524 6.21394 10.1567C6.06577 9.78939 5.99318 9.396 6.0005 9.00002C5.99318 8.60403 6.06577 8.21064 6.21394 7.84335C6.36211 7.47607 6.58281 7.14242 6.86286 6.86238C7.14291 6.58233 7.47655 6.36162 7.84384 6.21345C8.21113 6.06528 8.60452 5.99269 9.0005 6.00002Z\" fill=\"%2387C1FF\"/>%0D%0A<path d=\"M9 3C3.5 3 0 9 0 9C0 9 3.5 15 9 15C14.5 15 18 9 18 9C18 9 14.5 3 9 3ZM9 14C8.34157 14.0065 7.68845 13.8817 7.07886 13.6327C6.46928 13.3838 5.91547 13.0157 5.44987 12.5501C4.98427 12.0845 4.61622 11.5307 4.36726 10.9211C4.11831 10.3116 3.99345 9.65843 4 9C3.99345 8.34157 4.11831 7.68845 4.36726 7.07886C4.61622 6.46928 4.98427 5.91547 5.44987 5.44987C5.91547 4.98427 6.46928 4.61622 7.07886 4.36726C7.68845 4.11831 8.34157 3.99345 9 4C9.65843 3.99345 10.3116 4.11831 10.9211 4.36726C11.5307 4.61622 12.0845 4.98427 12.5501 5.44987C13.0157 5.91547 13.3838 6.46928 13.6327 7.07886C13.8817 7.68845 14.0065 8.34157 14 9C14.0065 9.65843 13.8817 10.3116 13.6327 10.9211C13.3838 11.5307 13.0157 12.0845 12.5501 12.5501C12.0845 13.0157 11.5307 13.3838 10.9211 13.6327C10.3116 13.8817 9.65843 14.0065 9 14Z\" fill=\"%2387C1FF\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon{width:var(--flat-tree-node-icon-size, 1.8rem);height:var(--flat-tree-node-icon-size, 1.8rem);margin-right:.4rem;background-position:center;background-size:var(--flat-tree-node-icon-size, 1.8rem)}.icon.folder-icon{background:var(--flat-tree-folder-icon, url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"utf-8\"?>%0D%0A<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->%0D%0A<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"%0D%0A%09 viewBox=\"0 0 20 20\" style=\"enable-background:new 0 0 20 20;\" xml:space=\"preserve\">%0D%0A<style type=\"text/css\">%0D%0A%09.st0{fill:%23444444;}%0D%0A<\\/style>%0D%0A<path class=\"st0\" d=\"M17,7V5V4V1h-6L8,3H0v16h2h15l3-12H17z M8,5h0.6l0.5-0.3L11.6,3H15v1v1v2H3l-1,4V5H8z M15.4,17H2.6l2-8H15h2%0D%0A%09h0.4L15.4,17z\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-folder-icon-size, 1.6rem);background-position:center}.icon.object-icon{background:var(--flat-tree-object-icon, url('data:image/svg+xml,<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M6 9H10V7H6V9Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 4V6H14V4H6Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 12H10V10H6V12Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M17 1H3V19H13L17 15V1ZM13 15V17H5V3H15V15H13Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-object-icon-size, 1.6rem);background-position:center}.icon.expand-collapse-icon.expand-more-icon{background:var(--flat-tree-node-expand-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M7.81235 5.64988C7.48497 5.38797 7 5.62106 7 6.04031L7 11.9597C7 12.3789 7.48497 12.612 7.81235 12.3501L11.512 9.39043C11.7622 9.19027 11.7622 8.80973 11.512 8.60957L7.81235 5.64988Z\" fill=\"%23ADADAD\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}.icon.expand-collapse-icon.collapse-icon{background:var(--flat-tree-node-collapse-icon, url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M12.3501 7.81235C12.612 7.48497 12.3789 7 11.9597 7H6.04031C5.62106 7 5.38797 7.48497 5.64988 7.81235L8.60957 11.512C8.80973 11.7622 9.19027 11.7622 9.39043 11.512L12.3501 7.81235Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat);background-size:var(--flat-tree-expand-collapse-icon-size, 1.8rem);background-position:center}\n"] }]
292
390
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { treeDataStringified: [{
293
391
  type: Input
294
392
  }], treeTitleValue: [{
@@ -321,6 +419,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
321
419
  type: Input
322
420
  }], contextMenus: [{
323
421
  type: Input
422
+ }], hasCheckBox1: [{
423
+ type: Input,
424
+ args: [{ transform: booleanAttribute }]
425
+ }], hasCheckBox2: [{
426
+ type: Input,
427
+ args: [{ transform: booleanAttribute }]
324
428
  }], treeData: [{
325
429
  type: Input
326
430
  }], customNodeTemplateValue: [{
@@ -328,5 +432,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
328
432
  args: [{ alias: 'customNodeTemplate' }]
329
433
  }], selectedNodes: [{
330
434
  type: Output
435
+ }], checked1Nodes: [{
436
+ type: Output
437
+ }], checked2Nodes: [{
438
+ type: Output
331
439
  }] } });
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFNBQVMsRUFBVSxLQUFLLEVBQTJCLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU8sd0RBQXdELENBQUM7Ozs7OztBQXFCdEcsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyw0RUFBNEU7SUFDNUUsb0RBQW9EO0lBQ3BELElBQW1DLGNBQWMsQ0FBQyxLQUFh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QUFLLEVBQUUsb0JBQW9CLEVBQUU7Z0JBSzVCLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlLCBib29sZWFuQXR0cmlidXRlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciwgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgQ2RrVHJlZU1vZHVsZSwgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBmaXJlRXZlbnQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XHJcbmltcG9ydCB7IFRyZWVOb2RlLCBGbGF0Tm9kZSwgRmxhdFRyZWVDb250ZXh0TWVudXMgfSBmcm9tICcuL2JpbXBsdXMtZmxhdC10cmVlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gICcuLi9iaW1wbHVzLWNvbnRleHQtbWVudS9iaW1wbHVzLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5cclxuaW50ZXJmYWNlIEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudEF0dHJpYnV0ZSAge1xyXG4gIFtrZXk6IHN0cmluZ106IHVua25vd247IC8vIEFkZCBpbmRleCBzaWduYXR1cmUgYWxsb3dpbmcgc3RyaW5nIGluZGV4aW5nXHJcbiAgIC8vT3RoZXIgcHJvcGVydGllcyBhbmQgbWV0aG9kcy4uLlxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLWZsYXQtdHJlZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0VHJlZU1vZHVsZVxyXG4gICAgLCBNYXRCdXR0b25Nb2R1bGVcclxuICAgICwgTWF0SWNvbk1vZHVsZVxyXG4gICAgLCBDZGtUcmVlTW9kdWxlXHJcbiAgICAsIEJpbXBsdXNDb250ZXh0TWVudUNvbXBvbmVudFxyXG4gICAgLCBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLWZsYXQtdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtZmxhdC10cmVlLmNvbXBvbmVudC5sZXNzJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2Vze1xyXG4gIEBJbnB1dCgpIHRyZWVEYXRhU3RyaW5naWZpZWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiBUT0RPIHJlbW92ZSBASW5wdXQgb25jZSBzaWduYWwgaW5wdXRzIHJlbGVhc2UgZnJvbSBkZXZlbG9wZXIgcHJldmlldy4gKi9cclxuICAvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICd0cmVlVGl0bGUnIH0pIHNldCB0cmVlVGl0bGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRyZWVUaXRsZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJlZVRpdGxlID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICBASW5wdXQoKSBwYWRkaW5nSW5kZW50IDogc3RyaW5nID0gXCIyLjhyZW1cIlxyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtdWx0aVNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBvbmVMZXZlbE11bHRpU2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dGb2xkZXJzSWNvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd09iamVjdHNJY29uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlbmFibGVTZWxlY3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlbmFibGVQYXJlbnRIaWdobGlnaHRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlbmFibGVEcmFnQW5kRHJvcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRhdGFUZXN0UHJlZml4IDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBjb250ZXh0TWVudXM6IEZsYXRUcmVlQ29udGV4dE1lbnVzIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIGdldCB0cmVlRGF0YSgpIDogQXJyYXk8VHJlZU5vZGU+e1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2UuZGF0YTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCB0cmVlRGF0YShkYXRhOiBBcnJheTxUcmVlTm9kZT4pIHtcclxuICAgIHRoaXMudHJlZURhdGFTdHJpbmdpZmllZCA9IG51bGw7XHJcbiAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG4gIH1cclxuICBcclxuICAvKiogVE9ETyByZW1vdmUgQElucHV0IG9uY2Ugc2lnbmFsIGlucHV0cyByZWxlYXNlIGZyb20gZGV2ZWxvcGVyIHByZXZpZXcuICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICdjdXN0b21Ob2RlVGVtcGxhdGUnIH0pIHNldCBjdXN0b21Ob2RlVGVtcGxhdGVWYWx1ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsKSB7XHJcbiAgICB0aGlzLmN1c3RvbU5vZGVUZW1wbGF0ZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VzdG9tTm9kZVRlbXBsYXRlID0gc2lnbmFsPFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZE5vZGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGbGF0Tm9kZVtdPigpO1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3Rpb25MaXN0OiBTZWxlY3Rpb25Nb2RlbDxGbGF0Tm9kZT4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAoZWxlbWVudCBhcyB1bmtub3duIGFzIEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudEF0dHJpYnV0ZSlbJ2dldF9ub2RlJ10gPSB0aGlzLmdldF9ub2RlLmJpbmQodGhpcyk7XHJcbiAgICAgIChlbGVtZW50IGFzIHVua25vd24gYXMgQmltcGx1c0ZsYXRUcmVlQ29tcG9uZW50QXR0cmlidXRlKVsnc2VsZWN0X25vZGUnXSA9IHRoaXMuc2VsZWN0X25vZGUuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zZWxlY3Rpb25MaXN0ID0gbmV3IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPih0aGlzLm11bHRpU2VsZWN0IHx8IHRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCk7XHJcbiAgICBpZih0aGlzLnRyZWVEYXRhU3RyaW5naWZpZWQpe1xyXG4gICAgICB0aGlzLl9zZXROZXdEYXRhKHRoaXMudHJlZURhdGFTdHJpbmdpZmllZClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRUcmVlKCl7XHJcbiAgICB0aGlzLl90cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldE5vZGUoaWQ6IHN0cmluZywgbm9kZXM6IEFycmF5PFRyZWVOb2RlPik6IFRyZWVOb2RlIHwgbnVsbCB7XHJcbiAgICBmb3IoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG4gICAgICBpZihub2RlLmlkID09PSBpZCkge1xyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICBjb25zdCBfbm9kZTogVHJlZU5vZGUgfCBudWxsID0gdGhpcy5fZ2V0Tm9kZShpZCwgbm9kZS5jaGlsZHJlbik7XHJcbiAgICAgICAgaWYoX25vZGUpIHtcclxuICAgICAgICAgIHJldHVybiBfbm9kZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldF9ub2RlKGlkOiB7IGlkOiBzdHJpbmcgfSB8IHN0cmluZywgZ2V0RE9NRWxlbWVudDogYm9vbGVhbiA9IGZhbHNlKTogVHJlZU5vZGUgfCBFbGVtZW50IHwgbnVsbCB7XHJcbiAgICBpZih0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXROb2RlKGlkLCB0aGlzLl9kYXRhU291cmNlLmRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYoZ2V0RE9NRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBfZWxlbWVudDogRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGBbbm9kZS1pZD0nJHtpZC5pZH0nXWApO1xyXG4gICAgICByZXR1cm4gX2VsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fZ2V0Tm9kZShpZC5pZCwgdGhpcy5fZGF0YVNvdXJjZS5kYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3Rfbm9kZShpZDogc3RyaW5nLCBza2lwRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuX3RyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gaWQpO1xyXG4gICAgaWYoIW5vZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCF0aGlzLl9zZWxlY3Rpb25MaXN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLm9uZUxldmVsTXVsdGlTZWxlY3QgJiYgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3RlZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmKHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0ZWRbMF0ucGFyZW50ICE9PSBub2RlLnBhcmVudCkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuY2xlYXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuX3NlbGVjdGlvbkxpc3QuaXNTZWxlY3RlZChub2RlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3Qobm9kZSk7XHJcbiAgICBpZighdGhpcy5tdWx0aVNlbGVjdCAmJiAhdGhpcy5vbmVMZXZlbE11bHRpU2VsZWN0ICYmICFza2lwRXZlbnQpIHtcclxuICAgICAgZmlyZUV2ZW50KHRoaXMsIFwic2VsZWN0ZWROb2Rlc1wiLCB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdGVkICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighdGhpcy5vbmVMZXZlbE11bHRpU2VsZWN0KSB7XHJcbiAgICAgIHRoaXMuX3RvZ2dsZURlc2NlbmRhbnRzTm9kZXMobm9kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5lbmFibGVQYXJlbnRIaWdobGlnaHRpbmcpIHtcclxuICAgICAgdGhpcy5fdXBkYXRlUGFyZW50U2VsZWN0aW9ucyhub2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZighc2tpcEV2ZW50KXtcclxuICAgICAgZmlyZUV2ZW50KHRoaXMsIFwic2VsZWN0ZWROb2Rlc1wiLCB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdGVkICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0X3NlbGVjdGlvbigpe1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uTGlzdD8uY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRfbm9kZShpZCA6IHN0cmluZyl7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5fdHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQobiA9PiBuLmlkID09PSBpZCk7XHJcbiAgICBpZighbm9kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzX2V4cGFuZGVkKGlkIDogc3RyaW5nKXtcclxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLl90cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgIGlmKCFub2RlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc19zZWxlY3RlZChpZCA6IHN0cmluZyl7XHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLl90cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgIGlmKCFub2RlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTGlzdD8uaXNTZWxlY3RlZChub2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE5ld0RhdGEodHJlZURhdGFTdHJpbmdpZmllZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBfdHJlZV9kYXRhID0gSlNPTi5wYXJzZSh0cmVlRGF0YVN0cmluZ2lmaWVkKTtcclxuICAgIHRoaXMuX2RhdGFTb3VyY2UuZGF0YSA9IF90cmVlX2RhdGEgPz8gW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VkVHJlZURhdGEoY2hhbmdlOiBTaW1wbGVDaGFuZ2UpIHtcclxuICAgIHRoaXMuX3NldE5ld0RhdGEoY2hhbmdlLmN1cnJlbnRWYWx1ZSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BLZXk6IHN0cmluZ106IFNpbXBsZUNoYW5nZSB9KTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzWydtdWx0aVNlbGVjdCddIHx8IGNoYW5nZXNbJ29uZUxldmVsTXVsdGlTZWxlY3QnXSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0ID0gbmV3IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPih0aGlzLm11bHRpU2VsZWN0IHx8IHRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCk7XHJcbiAgICB9XHJcbiAgICBpZihjaGFuZ2VzWyd0cmVlRGF0YVN0cmluZ2lmaWVkJ10pIHtcclxuICAgICAgdGhpcy5fY2hhbmdlZFRyZWVEYXRhKGNoYW5nZXNbJ3RyZWVEYXRhU3RyaW5naWZpZWQnXSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybWVyID0gKG5vZGU6IFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKTogRmxhdE5vZGUgPT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogbm9kZS5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkLFxyXG4gICAgICBjaGlsZHJlbl9jb3VudDogbm9kZS5jaGlsZHJlbj8ubGVuZ3RoLFxyXG4gICAgICBuYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICBsZXZlbDogbGV2ZWwsXHJcbiAgICAgIHBhcmVudDogbm9kZS5wYXJlbnQsXHJcbiAgICAgIG5vZGVUeXBlOiBub2RlLm5vZGVUeXBlXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIHByb3RlY3RlZCBfdHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPEZsYXROb2RlPihcclxuICAgIG5vZGUgPT4gbm9kZS5sZXZlbCxcclxuICAgIG5vZGUgPT4gbm9kZS5leHBhbmRhYmxlLFxyXG4gICk7XHJcblxyXG4gIHByb3RlY3RlZCBfdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgdGhpcy5fdHJhbnNmb3JtZXIsXHJcbiAgICBub2RlID0+IG5vZGUubGV2ZWwsXHJcbiAgICBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSxcclxuICAgIG5vZGUgPT4gbm9kZS5jaGlsZHJlblxyXG4gICk7XHJcblxyXG4gIHByb3RlY3RlZCBfZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UodGhpcy5fdHJlZUNvbnRyb2wsIHRoaXMuX3RyZWVGbGF0dGVuZXIpO1xyXG4gIHByb3RlY3RlZCBfaXNFeHBlbmRhYmxlID0gKF86IG51bWJlciwgbm9kZTogRmxhdE5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZTtcclxuICBwcm90ZWN0ZWQgX2lzQ3VzdG9tTm9kZVR5cGUobm9kZTogRmxhdE5vZGUpOiBib29sZWFue1xyXG4gICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgIT0gdW5kZWZpbmVkICYmIG5vZGUubm9kZVR5cGUgIT0gXCJcIjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFzQ2hpbGRyZW4obm9kZTogRmxhdE5vZGUpOiBib29sZWFuIHtcclxuICAgIGlmKCFub2RlLmV4cGFuZGFibGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYobm9kZS5jaGlsZHJlbl9jb3VudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vZGUuY2hpbGRyZW5fY291bnQgPiAwXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2Rlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZTogRmxhdE5vZGUpOiBib29sZWFuIHtcclxuICAgIGlmKCF0aGlzLl9zZWxlY3Rpb25MaXN0KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBfc2VsZWN0aW9uTGlzdDogU2VsZWN0aW9uTW9kZWw8RmxhdE5vZGU+ID0gdGhpcy5fc2VsZWN0aW9uTGlzdDtcclxuXHJcbiAgICBjb25zdCBfZGVzY2VuZGFudHMgPSB0aGlzLl90cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcclxuICAgIGlmKF9kZXNjZW5kYW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBfZGVzY0FsbFNlbGVjdGVkID0gX2Rlc2NlbmRhbnRzLmxlbmd0aCA+IDAgJiYgX2Rlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4ge1xyXG4gICAgICByZXR1cm4gX3NlbGVjdGlvbkxpc3QuaXNTZWxlY3RlZChjaGlsZCk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBfZGVzY0FsbFNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9kZXNjZW5kYW50c1BhcnRpYWxseVNlbGVjdGVkKG5vZGU6IEZsYXROb2RlKTogYm9vbGVhbiB7XHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBfc2VsZWN0aW9uTGlzdDogU2VsZWN0aW9uTW9kZWw8RmxhdE5vZGU+ID0gdGhpcy5fc2VsZWN0aW9uTGlzdDtcclxuXHJcbiAgICBjb25zdCBfZGVzY2VuZGFudHMgPSB0aGlzLl90cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcclxuICAgIGNvbnN0IF9yZXN1bHQgPSBfZGVzY2VuZGFudHMuc29tZSgoY2hpbGQpID0+IHtcclxuICAgICAgcmV0dXJuIF9zZWxlY3Rpb25MaXN0LmlzU2VsZWN0ZWQoY2hpbGQpXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBfcmVzdWx0ICYmICF0aGlzLl9kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdG9nZ2xlRGVzY2VuZGFudHNOb2Rlcyhub2RlOiBGbGF0Tm9kZSkge1xyXG4gICAgaWYoIXRoaXMuX3NlbGVjdGlvbkxpc3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IF9pc05vZGVTZWxlY3RlZCA9IHRoaXMuX3NlbGVjdGlvbkxpc3QuaXNTZWxlY3RlZChub2RlKTtcclxuICAgIGlmKF9pc05vZGVTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdCguLi50aGlzLl90cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uTGlzdC5kZXNlbGVjdCguLi50aGlzLl90cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVQYXJlbnRTZWxlY3Rpb25zKG5vZGU6IEZsYXROb2RlKSB7XHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IF9wYXJlbnRJZCA9IG5vZGUucGFyZW50O1xyXG4gICAgbGV0IF9wYXJlbnROb2RlID0gdGhpcy5fdHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQobiA9PiBuLmlkID09PSBfcGFyZW50SWQpXHJcbiAgICB3aGlsZShfcGFyZW50Tm9kZSkge1xyXG4gICAgICBpZih0aGlzLl9kZXNjZW5kYW50c0FsbFNlbGVjdGVkKF9wYXJlbnROb2RlKSkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0KF9wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuZGVzZWxlY3QoX3BhcmVudE5vZGUpO1xyXG4gICAgICB9XHJcbiAgICAgIF9wYXJlbnRJZCA9IF9wYXJlbnROb2RlLnBhcmVudDtcclxuICAgICAgX3BhcmVudE5vZGUgPSB0aGlzLl90cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChuID0+IG4uaWQgPT09IF9wYXJlbnRJZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3RvZ2dsZU5vZGUoZXZlbnQ6IEV2ZW50LCBub2RlOiBGbGF0Tm9kZSkge1xyXG4gICAgaWYoIW5vZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCF0aGlzLmVuYWJsZVNlbGVjdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIXRoaXMuX3NlbGVjdGlvbkxpc3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIGlmIGV2ZW50IGlzIGEgTW91c2VFdmVudCBiZWZvcmUgYWNjZXNzaW5nIGN0cmxLZXlcclxuICAgIGNvbnN0IGlzTW91c2VFdmVudCA9IGV2ZW50ICE9IG51bGwgJiYgZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50O1xyXG4gICAgaWYgKGlzTW91c2VFdmVudCAmJiAhZXZlbnQ/LmN0cmxLZXkpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uTGlzdC5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCAmJiB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYodGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3RlZFswXS5wYXJlbnQgIT09IG5vZGUucGFyZW50KSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGlzdC5jbGVhcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0aW9uTGlzdC50b2dnbGUobm9kZSk7XHJcbiAgICBpZighdGhpcy5tdWx0aVNlbGVjdCAmJiAhdGhpcy5vbmVMZXZlbE11bHRpU2VsZWN0KSB7XHJcbiAgICAgIGZpcmVFdmVudCh0aGlzLCBcInNlbGVjdGVkTm9kZXNcIiwgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3RlZCApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIXRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCkge1xyXG4gICAgICB0aGlzLl90b2dnbGVEZXNjZW5kYW50c05vZGVzKG5vZGUpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZih0aGlzLmVuYWJsZVBhcmVudEhpZ2hsaWdodGluZykge1xyXG4gICAgICB0aGlzLl91cGRhdGVQYXJlbnRTZWxlY3Rpb25zKG5vZGUpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBmaXJlRXZlbnQodGhpcywgXCJzZWxlY3RlZE5vZGVzXCIsIHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0ZWQgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaXNTZWxlY3RlZChub2RlOiBGbGF0Tm9kZSk6IGJvb2xlYW57XHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTGlzdD8uaXNTZWxlY3RlZChub2RlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRyZWUtY29udGFpbmVyXCI+XHJcbiAgQGlmICh0cmVlVGl0bGUoKTsgYXMgdHJlZVRpdGxlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidHJlZS10aXRsZVwiPnt7dHJlZVRpdGxlfX08L2Rpdj5cclxuICB9XHJcbiAgPGNkay10cmVlIFtkYXRhU291cmNlXT1cIl9kYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cIl90cmVlQ29udHJvbFwiPlxyXG4gICAgPCEtLSBUaGlzIGlzIHRoZSB0cmVlIG5vZGUgdGVtcGxhdGUgZm9yIGxlYWYgbm9kZXMgLS0+XHJcbiAgICA8Y2RrLXRyZWUtbm9kZVxyXG4gICAgICBbbWF0VHJlZU5vZGVQYWRkaW5nSW5kZW50XT1cInBhZGRpbmdJbmRlbnRcIlxyXG4gICAgICAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiXHJcbiAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ1xyXG4gICAgICAoY2xpY2spPVwiX3RvZ2dsZU5vZGUoJGV2ZW50LCBub2RlKVwiXHJcbiAgICAgIChrZXlwcmVzcyk9XCJfdG9nZ2xlTm9kZSgkZXZlbnQsIG5vZGUpXCJcclxuICAgICAgY2xhc3M9XCJvYmplY3Qtbm9kZVwiXHJcbiAgICAgIFtjbGFzcy5kcmFnYWJsZS1ub2RlXT1cImVuYWJsZURyYWdBbmREcm9wICYmIG5vZGUubGV2ZWwgPiAwXCJcclxuICAgICAgW2NsYXNzLnNlbGVjdGVkLW5vZGVdPVwiX2lzU2VsZWN0ZWQobm9kZSlcIlxyXG4gICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiZGF0YVRlc3RQcmVmaXggKyBub2RlLmlkXCJcclxuICAgICAgW3RpdGxlXT1cIm5vZGUubmFtZVwiXHJcbiAgICAgIFthdHRyLm5vZGUtaWRdPVwibm9kZS5pZFwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gdXNlIGEgZGlzYWJsZWQgYnV0dG9uIHRvIHByb3ZpZGUgcGFkZGluZyBmb3IgdHJlZSBsZWFmIC0tPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIEBpZiAoY3VzdG9tTm9kZVRlbXBsYXRlKCkgJiYgX2lzQ3VzdG9tTm9kZVR5cGUobm9kZSkpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyIFxyXG4gICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tTm9kZVRlbXBsYXRlKClcIiBcclxuICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7bm9kZTpub2RlfVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICB9QGVsc2V7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24gb2JqZWN0LWljb25cIiAqbmdJZj1cInNob3dPYmplY3RzSWNvbnNcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgY2xhc3M9XCJub2RlLWxhYmVsXCJcclxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1ub2RlXT1cIl9pc1NlbGVjdGVkKG5vZGUpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRyYWctcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAge3tub2RlLm5hbWV9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICAgIDxsaWItYmltcGx1cy1jb250ZXh0LW1lbnVcclxuICAgICAgICBbaXRlbXNdPVwiY29udGV4dE1lbnVzPy5vYmplY3RDb250ZXh0TWVudWl0ZW1zXCJcclxuICAgICAgICBbZGF0YV09XCJub2RlXCJcclxuICAgICAgICAqbmdJZj1cImNvbnRleHRNZW51cz8ub2JqZWN0Q29udGV4dE1lbnVpdGVtcz8ubGVuZ3RoXCJcclxuICAgICAgICAodHJpZ2dlclNlbGVjdGVkKT1cIl90b2dnbGVOb2RlKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWJpbXBsdXMtY29udGV4dC1tZW51PlxyXG4gICAgPC9jZGstdHJlZS1ub2RlPlxyXG4gICAgPCEtLSBUaGlzIGlzIHRoZSB0cmVlIG5vZGUgdGVtcGxhdGUgZm9yIGV4cGFuZGFibGUgbm9kZXMgLS0+XHJcbiAgICA8Y2RrLXRyZWUtbm9kZSBbbWF0VHJlZU5vZGVQYWRkaW5nSW5kZW50XT1cInBhZGRpbmdJbmRlbnRcIlxyXG4gICAgICAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTt3aGVuOiBfaXNFeHBlbmRhYmxlXCJcclxuICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nXHJcbiAgICAgIChjbGljayk9XCJfdG9nZ2xlTm9kZSgkZXZlbnQsIG5vZGUpXCJcclxuICAgICAgKGtleXByZXNzKT1cIl90b2dnbGVOb2RlKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICBjbGFzcz1cImZvbGRlci1ub2RlXCJcclxuICAgICAgW2NsYXNzLmRyYWdhYmxlLW5vZGVdPVwiZW5hYmxlRHJhZ0FuZERyb3AgJiYgbm9kZS5sZXZlbCA+IDBcIlxyXG4gICAgICBbY2xhc3Muc2VsZWN0ZWQtbm9kZV09XCJfaXNTZWxlY3RlZChub2RlKVwiXHJcbiAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJkYXRhVGVzdFByZWZpeCArIG5vZGUuaWRcIlxyXG4gICAgICBbdGl0bGVdPVwibm9kZS5uYW1lXCJcclxuICAgICAgW2F0dHIubm9kZS1pZF09XCJub2RlLmlkXCJcclxuICAgID5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVG9nZ2xlICcgKyBub2RlLm5hbWVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJpY29uIGV4cGFuZC1jb2xsYXBzZS1pY29uXCJcclxuICAgICAgICAgIFtjbGFzcy5leHBhbmQtbW9yZS1pY29uXT1cIl9oYXNDaGlsZHJlbihub2RlKSAmJiAhX3RyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIlxyXG4gICAgICAgICAgW2NsYXNzLmNvbGxhcHNlLWljb25dPVwiX2hhc0NoaWxkcmVuKG5vZGUpICYmIF90cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICBAaWYgKGN1c3RvbU5vZGVUZW1wbGF0ZSgpICYmIF9pc0N1c3RvbU5vZGVUeXBlKG5vZGUpKSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBcclxuICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbU5vZGVUZW1wbGF0ZSgpXCIgXHJcbiAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie25vZGU6bm9kZX1cIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgfUBlbHNle1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIGZvbGRlci1pY29uXCIgKm5nSWY9XCJzaG93Rm9sZGVyc0ljb25zXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlLWxhYmVsXCJcclxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1ub2RlXT1cIl9pc1NlbGVjdGVkKG5vZGUpXCJcclxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1hbGwtZGVzY2VuZGFudHMtbm9kZXNdPVwiX2Rlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSkgJiYgX2lzU2VsZWN0ZWQobm9kZSkgJiYgZW5hYmxlUGFyZW50SGlnaGxpZ2h0aW5nXCJcclxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1wYXJ0aWFsbHktZGVzY2VuZGFudHMtbm9kZXNdPVwiX2Rlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZSkgJiYgZW5hYmxlUGFyZW50SGlnaGxpZ2h0aW5nXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRyYWctcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtbGFiZWxcIj5cclxuICAgICAgICAgICAge3tub2RlLm5hbWV9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICAgIDxsaWItYmltcGx1cy1jb250ZXh0LW1lbnVcclxuICAgICAgICBbaXRlbXNdPVwiY29udGV4dE1lbnVzPy5mb2xkZXJDb250ZXh0TWVudWl0ZW1zXCJcclxuICAgICAgICBbZGF0YV09XCJub2RlXCJcclxuICAgICAgICAqbmdJZj1cImNvbnRleHRNZW51cz8uZm9sZGVyQ29udGV4dE1lbnVpdGVtcz8ubGVuZ3RoXCJcclxuICAgICAgICAodHJpZ2dlclNlbGVjdGVkKT1cIl90b2dnbGVOb2RlKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWJpbXBsdXMtY29udGV4dC1tZW51PlxyXG4gICAgPC9jZGstdHJlZS1ub2RlPlxyXG4gIDwvY2RrLXRyZWU+XHJcbjwvZGl2PlxyXG4iXX0=
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFNBQVMsRUFBVSxLQUFLLEVBQTJCLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBSSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFPLHdEQUF3RCxDQUFDOzs7Ozs7QUFzQnRHLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsNEVB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LEVBQUU7Z0JBQ0UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFlBQVk7c0JBQW5ELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0Usd0JBQXdCO3NCQUEvRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGlCQUFpQjtzQkFBeEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVrQyxZQUFZO3NCQUFuRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFlBQVk7c0JBQW5ELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTXpCLFFBQVE7c0JBQXBCLEtBQUs7Z0JBTXNDLHVCQUF1QjtzQkFBbEUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtnQkFLNUIsYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlLCBib29sZWFuQXR0cmlidXRlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94ICAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciwgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgQ2RrVHJlZU1vZHVsZSwgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBmaXJlRXZlbnQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XHJcbmltcG9ydCB7IFRyZWVOb2RlLCBGbGF0Tm9kZSwgRmxhdFRyZWVDb250ZXh0TWVudXMgfSBmcm9tICcuL2JpbXBsdXMtZmxhdC10cmVlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gICcuLi9iaW1wbHVzLWNvbnRleHQtbWVudS9iaW1wbHVzLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5cclxuaW50ZXJmYWNlIEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudEF0dHJpYnV0ZSAge1xyXG4gIFtrZXk6IHN0cmluZ106IHVua25vd247IC8vIEFkZCBpbmRleCBzaWduYXR1cmUgYWxsb3dpbmcgc3RyaW5nIGluZGV4aW5nXHJcbiAgIC8vT3RoZXIgcHJvcGVydGllcyBhbmQgbWV0aG9kcy4uLlxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLWZsYXQtdHJlZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0VHJlZU1vZHVsZVxyXG4gICAgLCBNYXRCdXR0b25Nb2R1bGVcclxuICAgICwgTWF0SWNvbk1vZHVsZVxyXG4gICAgLCBDZGtUcmVlTW9kdWxlXHJcbiAgICAsIEJpbXBsdXNDb250ZXh0TWVudUNvbXBvbmVudFxyXG4gICAgLCBDb21tb25Nb2R1bGVcclxuICAgICwgTWF0Q2hlY2tib3hcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLWZsYXQtdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtZmxhdC10cmVlLmNvbXBvbmVudC5sZXNzJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2Vze1xyXG4gIEBJbnB1dCgpIHRyZWVEYXRhU3RyaW5naWZpZWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiBUT0RPIHJlbW92ZSBASW5wdXQgb25jZSBzaWduYWwgaW5wdXRzIHJlbGVhc2UgZnJvbSBkZXZlbG9wZXIgcHJldmlldy4gKi9cclxuICAvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICd0cmVlVGl0bGUnIH0pIHNldCB0cmVlVGl0bGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRyZWVUaXRsZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJlZVRpdGxlID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICBASW5wdXQoKSBwYWRkaW5nSW5kZW50IDogc3RyaW5nID0gXCIyLjhyZW1cIlxyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtdWx0aVNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBvbmVMZXZlbE11bHRpU2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dGb2xkZXJzSWNvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd09iamVjdHNJY29uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlbmFibGVTZWxlY3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlbmFibGVQYXJlbnRIaWdobGlnaHRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlbmFibGVEcmFnQW5kRHJvcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRhdGFUZXN0UHJlZml4IDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBjb250ZXh0TWVudXM6IEZsYXRUcmVlQ29udGV4dE1lbnVzIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZikge31cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ2hlY2tCb3gxOmJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ2hlY2tCb3gyOmJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IHRyZWVEYXRhKCkgOiBBcnJheTxUcmVlTm9kZT57XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZS5kYXRhO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IHRyZWVEYXRhKGRhdGE6IEFycmF5PFRyZWVOb2RlPikge1xyXG4gICAgdGhpcy50cmVlRGF0YVN0cmluZ2lmaWVkID0gbnVsbDtcclxuICAgIHRoaXMuX2RhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICAvKiogVE9ETyByZW1vdmUgQElucHV0IG9uY2Ugc2lnbmFsIGlucHV0cyByZWxlYXNlIGZyb20gZGV2ZWxvcGVyIHByZXZpZXcuICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICdjdXN0b21Ob2RlVGVtcGxhdGUnIH0pIHNldCBjdXN0b21Ob2RlVGVtcGxhdGVWYWx1ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsKSB7XHJcbiAgICB0aGlzLmN1c3RvbU5vZGVUZW1wbGF0ZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VzdG9tTm9kZVRlbXBsYXRlID0gc2lnbmFsPFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZE5vZGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGbGF0Tm9kZVtdPigpO1xyXG4gIEBPdXRwdXQoKSBjaGVja2VkMU5vZGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGbGF0Tm9kZVtdPigpO1xyXG4gIEBPdXRwdXQoKSBjaGVja2VkMk5vZGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGbGF0Tm9kZVtdPigpO1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3Rpb25MaXN0OiBTZWxlY3Rpb25Nb2RlbDxGbGF0Tm9kZT4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAoZWxlbWVudCBhcyB1bmtub3duIGFzIEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudEF0dHJpYnV0ZSlbJ2dldF9ub2RlJ10gPSB0aGlzLmdldF9ub2RlLmJpbmQodGhpcyk7XHJcbiAgICAgIChlbGVtZW50IGFzIHVua25vd24gYXMgQmltcGx1c0ZsYXRUcmVlQ29tcG9uZW50QXR0cmlidXRlKVsnc2VsZWN0X25vZGUnXSA9IHRoaXMuc2VsZWN0X25vZGUuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zZWxlY3Rpb25MaXN0ID0gbmV3IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPih0aGlzLm11bHRpU2VsZWN0IHx8IHRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCk7XHJcbiAgICBpZih0aGlzLnRyZWVEYXRhU3RyaW5naWZpZWQpe1xyXG4gICAgICB0aGlzLl9zZXROZXdEYXRhKHRoaXMudHJlZURhdGFTdHJpbmdpZmllZClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRUcmVlKCl7XHJcbiAgICB0aGlzLl90cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldE5vZGUoaWQ6IHN0cmluZywgbm9kZXM6IEFycmF5PFRyZWVOb2RlPik6IFRyZWVOb2RlIHwgbnVsbCB7XHJcbiAgICBmb3IoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG4gICAgICBpZihub2RlLmlkID09PSBpZCkge1xyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICBjb25zdCBfbm9kZTogVHJlZU5vZGUgfCBudWxsID0gdGhpcy5fZ2V0Tm9kZShpZCwgbm9kZS5jaGlsZHJlbik7XHJcbiAgICAgICAgaWYoX25vZGUpIHtcclxuICAgICAgICAgIHJldHVybiBfbm9kZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldF9ub2RlKGlkOiB7IGlkOiBzdHJpbmcgfSB8IHN0cmluZywgZ2V0RE9NRWxlbWVudDogYm9vbGVhbiA9IGZhbHNlKTogVHJlZU5vZGUgfCBFbGVtZW50IHwgbnVsbCB7XHJcbiAgICBpZih0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXROb2RlKGlkLCB0aGlzLl9kYXRhU291cmNlLmRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYoZ2V0RE9NRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBfZWxlbWVudDogRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGBbbm9kZS1pZD0nJHtpZC5pZH0nXWApO1xyXG4gICAgICByZXR1cm4gX2VsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fZ2V0Tm9kZShpZC5pZCwgdGhpcy5fZGF0YVNvdXJjZS5kYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3Rfbm9kZShpZDogc3RyaW5nLCBza2lwRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuX3RyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gaWQpO1xyXG4gICAgaWYoIW5vZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCF0aGlzLl9zZWxlY3Rpb25MaXN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLm9uZUxldmVsTXVsdGlTZWxlY3QgJiYgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3RlZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmKHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0ZWRbMF0ucGFyZW50ICE9PSBub2RlLnBhcmVudCkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuY2xlYXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuX3NlbGVjdGlvbkxpc3QuaXNTZWxlY3RlZChub2RlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3Qobm9kZSk7XHJcbiAgICBpZighdGhpcy5tdWx0aVNlbGVjdCAmJiAhdGhpcy5vbmVMZXZlbE11bHRpU2VsZWN0ICYmICFza2lwRXZlbnQpIHtcclxuICAgICAgZmlyZUV2ZW50KHRoaXMsIFwic2VsZWN0ZWROb2Rlc1wiLCB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdGVkICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighdGhpcy5vbmVMZXZlbE11bHRpU2VsZWN0KSB7XHJcbiAgICAgIHRoaXMuX3RvZ2dsZURlc2NlbmRhbnRzTm9kZXMobm9kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5lbmFibGVQYXJlbnRIaWdobGlnaHRpbmcpIHtcclxuICAgICAgdGhpcy5fdXBkYXRlUGFyZW50U2VsZWN0aW9ucyhub2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZighc2tpcEV2ZW50KXtcclxuICAgICAgZmlyZUV2ZW50KHRoaXMsIFwic2VsZWN0ZWROb2Rlc1wiLCB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdGVkICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0X3NlbGVjdGlvbigpe1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uTGlzdD8uY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRfbm9kZShpZCA6IHN0cmluZyl7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5fdHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQobiA9PiBuLmlkID09PSBpZCk7XHJcbiAgICBpZighbm9kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzX2V4cGFuZGVkKGlkIDogc3RyaW5nKXtcclxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLl90cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgIGlmKCFub2RlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc19zZWxlY3RlZChpZCA6IHN0cmluZyl7XHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLl90cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgIGlmKCFub2RlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTGlzdD8uaXNTZWxlY3RlZChub2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE5ld0RhdGEodHJlZURhdGFTdHJpbmdpZmllZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBfdHJlZV9kYXRhID0gSlNPTi5wYXJzZSh0cmVlRGF0YVN0cmluZ2lmaWVkKTtcclxuICAgIHRoaXMuX2RhdGFTb3VyY2UuZGF0YSA9IF90cmVlX2RhdGEgPz8gW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VkVHJlZURhdGEoY2hhbmdlOiBTaW1wbGVDaGFuZ2UpIHtcclxuICAgIHRoaXMuX3NldE5ld0RhdGEoY2hhbmdlLmN1cnJlbnRWYWx1ZSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BLZXk6IHN0cmluZ106IFNpbXBsZUNoYW5nZSB9KTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzWydtdWx0aVNlbGVjdCddIHx8IGNoYW5nZXNbJ29uZUxldmVsTXVsdGlTZWxlY3QnXSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0ID0gbmV3IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPih0aGlzLm11bHRpU2VsZWN0IHx8IHRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCk7XHJcbiAgICB9XHJcbiAgICBpZihjaGFuZ2VzWyd0cmVlRGF0YVN0cmluZ2lmaWVkJ10pIHtcclxuICAgICAgdGhpcy5fY2hhbmdlZFRyZWVEYXRhKGNoYW5nZXNbJ3RyZWVEYXRhU3RyaW5naWZpZWQnXSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybWVyID0gKG5vZGU6IFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKTogRmxhdE5vZGUgPT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogbm9kZS5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCxcclxuICAgICAgY2hpbGRyZW5fY291bnQ6IG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCxcclxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICBpZDogbm9kZS5pZCxcclxuICAgICAgbGV2ZWw6IGxldmVsLFxyXG4gICAgICBwYXJlbnQ6IG5vZGUucGFyZW50LFxyXG4gICAgICBub2RlVHlwZTogbm9kZS5ub2RlVHlwZSxcclxuICAgICAgaXNDaGVja2VkMTogdHJ1ZSxcclxuICAgICAgaXNDaGVja2VkMjogdHJ1ZSxcclxuICAgICAgaXNVbmRldGVybWluZWQxOiBmYWxzZSxcclxuICAgICAgaXNVbmRldGVybWluZWQyOiBmYWxzZVxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICBwcm90ZWN0ZWQgX3RyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZT4oXHJcbiAgICBub2RlID0+IG5vZGUubGV2ZWwsXHJcbiAgICBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSxcclxuICApO1xyXG5cclxuICBwcm90ZWN0ZWQgX3RyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcclxuICAgIHRoaXMuX3RyYW5zZm9ybWVyLFxyXG4gICAgbm9kZSA9PiBub2RlLmxldmVsLFxyXG4gICAgbm9kZSA9PiBub2RlLmV4cGFuZGFibGUsXHJcbiAgICBub2RlID0+IG5vZGUuY2hpbGRyZW5cclxuICApO1xyXG5cclxuICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKHRoaXMuX3RyZWVDb250cm9sLCB0aGlzLl90cmVlRmxhdHRlbmVyKTtcclxuICBwcm90ZWN0ZWQgX2lzRXhwYW5kYWJsZSA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XHJcbiAgcHJvdGVjdGVkIF9pc0N1c3RvbU5vZGVUeXBlKG5vZGU6IEZsYXROb2RlKTogYm9vbGVhbntcclxuICAgIHJldHVybiBub2RlLm5vZGVUeXBlICE9IHVuZGVmaW5lZCAmJiBub2RlLm5vZGVUeXBlICE9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhc0NoaWxkcmVuKG5vZGU6IEZsYXROb2RlKTogYm9vbGVhbiB7XHJcbiAgICBpZighbm9kZS5leHBhbmRhYmxlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKG5vZGUuY2hpbGRyZW5fY291bnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiBub2RlLmNoaWxkcmVuX2NvdW50ID4gMFxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGU6IEZsYXROb2RlKTogYm9vbGVhbiB7XHJcbiAgICBpZighdGhpcy5fc2VsZWN0aW9uTGlzdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgX3NlbGVjdGlvbkxpc3Q6IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPiA9IHRoaXMuX3NlbGVjdGlvbkxpc3Q7XHJcblxyXG4gICAgY29uc3QgX2Rlc2NlbmRhbnRzID0gdGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XHJcbiAgICBpZihfZGVzY2VuZGFudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgX2Rlc2NBbGxTZWxlY3RlZCA9IF9kZXNjZW5kYW50cy5sZW5ndGggPiAwICYmIF9kZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHtcclxuICAgICAgcmV0dXJuIF9zZWxlY3Rpb25MaXN0LmlzU2VsZWN0ZWQoY2hpbGQpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gX2Rlc2NBbGxTZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlOiBGbGF0Tm9kZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYoIXRoaXMuX3NlbGVjdGlvbkxpc3QpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgX3NlbGVjdGlvbkxpc3Q6IFNlbGVjdGlvbk1vZGVsPEZsYXROb2RlPiA9IHRoaXMuX3NlbGVjdGlvbkxpc3Q7XHJcblxyXG4gICAgY29uc3QgX2Rlc2NlbmRhbnRzID0gdGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XHJcbiAgICBjb25zdCBfcmVzdWx0ID0gX2Rlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PiB7XHJcbiAgICAgIHJldHVybiBfc2VsZWN0aW9uTGlzdC5pc1NlbGVjdGVkKGNoaWxkKVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gX3Jlc3VsdCAmJiAhdGhpcy5fZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RvZ2dsZURlc2NlbmRhbnRzTm9kZXMobm9kZTogRmxhdE5vZGUpIHtcclxuICAgIGlmKCF0aGlzLl9zZWxlY3Rpb25MaXN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBfaXNOb2RlU2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3Rpb25MaXN0LmlzU2VsZWN0ZWQobm9kZSk7XHJcbiAgICBpZihfaXNOb2RlU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3QoLi4udGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuZGVzZWxlY3QoLi4udGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlUGFyZW50U2VsZWN0aW9ucyhub2RlOiBGbGF0Tm9kZSkge1xyXG4gICAgaWYoIXRoaXMuX3NlbGVjdGlvbkxpc3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBfcGFyZW50SWQgPSBub2RlLnBhcmVudDtcclxuICAgIGxldCBfcGFyZW50Tm9kZSA9IHRoaXMuX3RyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gX3BhcmVudElkKVxyXG4gICAgd2hpbGUoX3BhcmVudE5vZGUpIHtcclxuICAgICAgaWYodGhpcy5fZGVzY2VuZGFudHNBbGxTZWxlY3RlZChfcGFyZW50Tm9kZSkpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0LnNlbGVjdChfcGFyZW50Tm9kZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MaXN0LmRlc2VsZWN0KF9wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBfcGFyZW50SWQgPSBfcGFyZW50Tm9kZS5wYXJlbnQ7XHJcbiAgICAgIF9wYXJlbnROb2RlID0gdGhpcy5fdHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQobiA9PiBuLmlkID09PSBfcGFyZW50SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF90b2dnbGVOb2RlKGV2ZW50OiBFdmVudCwgbm9kZTogRmxhdE5vZGUpIHtcclxuICAgIGlmKCFub2RlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighdGhpcy5lbmFibGVTZWxlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCF0aGlzLl9zZWxlY3Rpb25MaXN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDaGVjayBpZiBldmVudCBpcyBhIE1vdXNlRXZlbnQgYmVmb3JlIGFjY2Vzc2luZyBjdHJsS2V5XHJcbiAgICBjb25zdCBpc01vdXNlRXZlbnQgPSBldmVudCAhPSBudWxsICYmIGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudDtcclxuICAgIGlmIChpc01vdXNlRXZlbnQgJiYgIWV2ZW50Py5jdHJsS2V5KSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLm9uZUxldmVsTXVsdGlTZWxlY3QgJiYgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3RlZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmKHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0ZWRbMF0ucGFyZW50ICE9PSBub2RlLnBhcmVudCkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QuY2xlYXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NlbGVjdGlvbkxpc3QudG9nZ2xlKG5vZGUpO1xyXG4gICAgaWYoIXRoaXMubXVsdGlTZWxlY3QgJiYgIXRoaXMub25lTGV2ZWxNdWx0aVNlbGVjdCkge1xyXG4gICAgICBmaXJlRXZlbnQodGhpcywgXCJzZWxlY3RlZE5vZGVzXCIsIHRoaXMuX3NlbGVjdGlvbkxpc3Quc2VsZWN0ZWQgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCF0aGlzLm9uZUxldmVsTXVsdGlTZWxlY3QpIHtcclxuICAgICAgdGhpcy5fdG9nZ2xlRGVzY2VuZGFudHNOb2Rlcyhub2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLmVuYWJsZVBhcmVudEhpZ2hsaWdodGluZykge1xyXG4gICAgICB0aGlzLl91cGRhdGVQYXJlbnRTZWxlY3Rpb25zKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpcmVFdmVudCh0aGlzLCBcInNlbGVjdGVkTm9kZXNcIiwgdGhpcy5fc2VsZWN0aW9uTGlzdC5zZWxlY3RlZCApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9pc1NlbGVjdGVkKG5vZGU6IEZsYXROb2RlKTogYm9vbGVhbntcclxuICAgIGlmKCF0aGlzLl9zZWxlY3Rpb25MaXN0KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25MaXN0Py5pc1NlbGVjdGVkKG5vZGUpO1xyXG4gIH1cclxuICBcclxuICBwcm90ZWN0ZWQgX3RvZ2dsZUNoZWNrQm94MSggZXZlbnQ6RXZlbnQsbm9kZTogRmxhdE5vZGUpIHsgICAgXHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICBub2RlLmlzQ2hlY2tlZDEgPSAhbm9kZS5pc0NoZWNrZWQxO1xyXG4gICAgaWYobm9kZS5leHBhbmRhYmxlKXtcclxuICAgICAgdGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkuZm9yRWFjaChuID0+IHtcclxuICAgICAgICBuLmlzQ2hlY2tlZDEgPSBub2RlLmlzQ2hlY2tlZDE7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbm9kZS5pc1VuZGV0ZXJtaW5lZDEgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tVbmRldGVybWluZWQobm9kZSwxKTtcclxuICAgIGZpcmVFdmVudCh0aGlzLCBcImNoZWNrZWQxTm9kZXNcIiwgW25vZGVdKTtcclxuICB9XHJcbiAgXHJcbiAgcHJvdGVjdGVkIF90b2dnbGVDaGVja0JveDIoZXZlbnQ6RXZlbnQsIG5vZGU6IEZsYXROb2RlKSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICBub2RlLmlzQ2hlY2tlZDIgPSAhbm9kZS5pc0NoZWNrZWQyO1xyXG4gICAgaWYobm9kZS5leHBhbmRhYmxlKXtcclxuICAgICAgdGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkuZm9yRWFjaChuID0+IHtcclxuICAgICAgICBuLmlzQ2hlY2tlZDIgPSBub2RlLmlzQ2hlY2tlZDI7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbm9kZS5pc1VuZGV0ZXJtaW5lZDIgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tVbmRldGVybWluZWQobm9kZSwyKTtcclxuICAgIGZpcmVFdmVudCh0aGlzLCBcImNoZWNrZWQyTm9kZXNcIiwgW25vZGVdKTtcclxuICB9XHJcbiAgXHJcbiAgLy9zaW1wbGlmaWVkIHZlcnNpb24gb2YgY2hlY2tVbmRldGVybWluZWRcclxuICBjaGVja1VuZGV0ZXJtaW5lZChub2RlOkZsYXROb2RlLGNoZWNrYm94OiBudW1iZXIpe1xyXG4gICAgaWYoIXRoaXMuaGFzQ2hlY2tCb3gxICYmIGNoZWNrYm94ID09PSAxKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuaGFzQ2hlY2tCb3gyICYmIGNoZWNrYm94ID09PSAyKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYoIW5vZGUucGFyZW50KXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IG15Tm9kZSA9IG5vZGU7ICAgIFxyXG4gICAgd2hpbGUobXlOb2RlICYmIG15Tm9kZS5wYXJlbnQpe1xyXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcy5fdHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQobiA9PiBuLmlkID09PSBteU5vZGUucGFyZW50KTsgICAgICBcclxuICAgICAgaWYoIXBhcmVudE5vZGUpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgY2hlY2tlZCA9IDA7XHJcbiAgICAgIGxldCB1bmNoZWNrZWQgPSAwOyAgICAgICAgXHJcbiAgICAgIGxldCB1bmRldGVybWluZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fdHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMocGFyZW50Tm9kZSkuZm9yRWFjaChuID0+IHtcclxuICAgICAgICBpZihjaGVja2JveCA9PT0gMSA/IG4uaXNDaGVja2VkMTogbi5pc0NoZWNrZWQyKXsgXHJcbiAgICAgICAgICBjaGVja2VkKys7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVuY2hlY2tlZCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjaGVja2JveCA9PT0gMSA/IG4uaXNVbmRldGVybWluZWQxOiBuLmlzVW5kZXRlcm1pbmVkMil7IFxyXG4gICAgICAgICAgdW5kZXRlcm1pbmVkID0gdHJ1ZTsgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjaGVja2VkID4gMCAmJiB1bmNoZWNrZWQgPiAwKXtcclxuICAgICAgICAgIHVuZGV0ZXJtaW5lZCA9IHRydWU7ICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZihjaGVja2JveCA9PT0gMSApe1xyXG4gICAgICAgIHBhcmVudE5vZGUuaXNVbmRldGVybWluZWQxID0gdW5kZXRlcm1pbmVkO1xyXG4gICAgICAgIHBhcmVudE5vZGUuaXNDaGVja2VkMSA9ICF1bmNoZWNrZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyZW50Tm9kZS5pc1VuZGV0ZXJtaW5lZDIgPSB1bmRldGVybWluZWQ7XHJcbiAgICAgICAgcGFyZW50Tm9kZS5pc0NoZWNrZWQyID0gIXVuY2hlY2tlZDtcclxuICAgICAgfVxyXG4gICAgICBteU5vZGUgPSBwYXJlbnROb2RlO1xyXG4gICAgfTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9pc1VuZGV0ZXJtaW5lZDEobm9kZTogRmxhdE5vZGUpOiBib29sZWFue1xyXG4gICAgcmV0dXJuIG5vZGUuaXNVbmRldGVybWluZWQxO1xyXG4gIH1cclxuICBcclxuICBwcm90ZWN0ZWQgX2lzVW5kZXRlcm1pbmVkMihub2RlOiBGbGF0Tm9kZSk6IGJvb2xlYW57XHJcbiAgICByZXR1cm4gbm9kZS5pc1VuZGV0ZXJtaW5lZDI7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2lzQ2hlY2tlZDEobm9kZTogRmxhdE5vZGUpOiBib29sZWFueyAgICAgICAgXHJcbiAgICByZXR1cm4gbm9kZS5pc0NoZWNrZWQxO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2lzQ2hlY2tlZDIobm9kZTogRmxhdE5vZGUpOiBib29sZWFueyAgICAgICAgXHJcbiAgICByZXR1cm4gbm9kZS5pc0NoZWNrZWQyO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidHJlZS1jb250YWluZXJcIj5cclxuICBAaWYgKHRyZWVUaXRsZSgpOyBhcyB0cmVlVGl0bGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLXRpdGxlXCI+e3t0cmVlVGl0bGV9fTwvZGl2PlxyXG4gIH1cclxuICA8Y2RrLXRyZWUgW2RhdGFTb3VyY2VdPVwiX2RhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwiX3RyZWVDb250cm9sXCI+XHJcbiAgICA8IS0tIFRoaXMgaXMgdGhlIHRyZWUgbm9kZSB0ZW1wbGF0ZSBmb3IgbGVhZiBub2RlcyAtLT5cclxuICAgIDxjZGstdHJlZS1ub2RlXHJcbiAgICAgIFttYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnRdPVwicGFkZGluZ0luZGVudFwiXHJcbiAgICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlXCJcclxuICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nXHJcbiAgICAgIChjbGljayk9XCJfdG9nZ2xlTm9kZSgkZXZlbnQsIG5vZGUpXCJcclxuICAgICAgKGtleXByZXNzKT1cIl90b2dnbGVOb2RlKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICBjbGFzcz1cIm9iamVjdC1ub2RlXCJcclxuICAgICAgW2NsYXNzLmRyYWdhYmxlLW5vZGVdPVwiZW5hYmxlRHJhZ0FuZERyb3AgJiYgbm9kZS5sZXZlbCA+IDBcIlxyXG4gICAgICBbY2xhc3Muc2VsZWN0ZWQtbm9kZV09XCJfaXNTZWxlY3RlZChub2RlKVwiXHJcbiAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJkYXRhVGVzdFByZWZpeCArIG5vZGUuaWRcIlxyXG4gICAgICBbdGl0bGVdPVwibm9kZS5uYW1lXCJcclxuICAgICAgW2F0dHIubm9kZS1pZF09XCJub2RlLmlkXCJcclxuICAgID5cclxuICAgICAgPCEtLSB1c2UgYSBkaXNhYmxlZCBidXR0b24gdG8gcHJvdmlkZSBwYWRkaW5nIGZvciB0cmVlIGxlYWYgLS0+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRpc2FibGVkPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgQGlmIChjdXN0b21Ob2RlVGVtcGxhdGUoKSAmJiBfaXNDdXN0b21Ob2RlVHlwZShub2RlKSkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXIgXHJcbiAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21Ob2RlVGVtcGxhdGUoKVwiIFxyXG4gICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntub2RlOm5vZGV9XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1AZWxzZXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiBvYmplY3QtaWNvblwiICpuZ0lmPVwic2hvd09iamVjdHNJY29uc1wiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cIm5vZGUtbGFiZWxcIlxyXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLW5vZGVdPVwiX2lzU2VsZWN0ZWQobm9kZSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tZHJhZy1wbGFjZWhvbGRlclwiICpjZGtEcmFnUGxhY2Vob2xkZXI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICB7e25vZGUubmFtZX19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIH1cclxuICAgICAgPGxpYi1iaW1wbHVzLWNvbnRleHQtbWVudVxyXG4gICAgICAgIFtpdGVtc109XCJjb250ZXh0TWVudXM/Lm9iamVjdENvbnRleHRNZW51aXRlbXNcIlxyXG4gICAgICAgIFtkYXRhXT1cIm5vZGVcIlxyXG4gICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVzPy5vYmplY3RDb250ZXh0TWVudWl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICh0cmlnZ2VyU2VsZWN0ZWQpPVwiX3RvZ2dsZU5vZGUoJGV2ZW50LCBub2RlKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9saWItYmltcGx1cy1jb250ZXh0LW1lbnU+XHJcbiAgICAgIEBpZihoYXNDaGVja0JveDEpe1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94MVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpY29uLWNoZWNrZWQnOiBfaXNDaGVja2VkMShub2RlKSwgJ2ljb24tdW5jaGVja2VkJzogIV9pc0NoZWNrZWQxKG5vZGUpIH1cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIl90b2dnbGVDaGVja0JveDEoJGV2ZW50LG5vZGUpXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJfdG9nZ2xlQ2hlY2tCb3gxKCRldmVudCxub2RlKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZihoYXNDaGVja0JveDIpe1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94MlwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpY29uLWNoZWNrZWQnOiBfaXNDaGVja2VkMihub2RlKSwgJ2ljb24tdW5jaGVja2VkJzogIV9pc0NoZWNrZWQyKG5vZGUpIH1cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIl90b2dnbGVDaGVja0JveDIoJGV2ZW50LG5vZGUpXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJfdG9nZ2xlQ2hlY2tCb3gyKCRldmVudCxub2RlKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Nkay10cmVlLW5vZGU+XHJcbiAgICA8IS0tIFRoaXMgaXMgdGhlIHRyZWUgbm9kZSB0ZW1wbGF0ZSBmb3IgZXhwYW5kYWJsZSBub2RlcyAtLT5cclxuICAgIDxjZGstdHJlZS1ub2RlIFttYXRUcmVlTm9kZVBhZGRpbmdJbmRlbnRdPVwicGFkZGluZ0luZGVudFwiXHJcbiAgICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlO3doZW46IF9pc0V4cGFuZGFibGVcIlxyXG4gICAgICBtYXRUcmVlTm9kZVBhZGRpbmdcclxuICAgICAgKGNsaWNrKT1cIl90b2dnbGVOb2RlKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwiX3RvZ2dsZU5vZGUoJGV2ZW50LCBub2RlKVwiXHJcbiAgICAgIGNsYXNzPVwiZm9sZGVyLW5vZGVcIlxyXG4gICAgICBbY2xhc3MuZHJhZ2FibGUtbm9kZV09XCJlbmFibGVEcmFnQW5kRHJvcCAmJiBub2RlLmxldmVsID4gMFwiXHJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZC1ub2RlXT1cIl9pc1NlbGVjdGVkKG5vZGUpXCJcclxuICAgICAgW2F0dHIuZGF0YS10ZXN0XT1cImRhdGFUZXN0UHJlZml4ICsgbm9kZS5pZFwiXHJcbiAgICAgIFt0aXRsZV09XCJub2RlLm5hbWVcIlxyXG4gICAgICBbYXR0ci5ub2RlLWlkXT1cIm5vZGUuaWRcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgbWF0VHJlZU5vZGVUb2dnbGVcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidUb2dnbGUgJyArIG5vZGUubmFtZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImljb24gZXhwYW5kLWNvbGxhcHNlLWljb25cIlxyXG4gICAgICAgICAgW2NsYXNzLmV4cGFuZC1tb3JlLWljb25dPVwiX2hhc0NoaWxkcmVuKG5vZGUpICYmICFfdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVwiXHJcbiAgICAgICAgICBbY2xhc3MuY29sbGFwc2UtaWNvbl09XCJfaGFzQ2hpbGRyZW4obm9kZSkgJiYgX3RyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+ICAgICAgXHJcbiAgICAgIEBpZiAoY3VzdG9tTm9kZVRlbXBsYXRlKCkgJiYgX2lzQ3VzdG9tTm9kZVR5cGUobm9kZSkpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyIFxyXG4gICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tTm9kZVRlbXBsYXRlKClcIiBcclxuICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7bm9kZTpub2RlfVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICB9QGVsc2V7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24gZm9sZGVyLWljb25cIiAqbmdJZj1cInNob3dGb2xkZXJzSWNvbnNcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGUtbGFiZWxcIlxyXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLW5vZGVdPVwiX2lzU2VsZWN0ZWQobm9kZSlcIlxyXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLWFsbC1kZXNjZW5kYW50cy1ub2Rlc109XCJfZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKSAmJiBfaXNTZWxlY3RlZChub2RlKSAmJiBlbmFibGVQYXJlbnRIaWdobGlnaHRpbmdcIlxyXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLXBhcnRpYWxseS1kZXNjZW5kYW50cy1ub2Rlc109XCJfZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlKSAmJiBlbmFibGVQYXJlbnRIaWdobGlnaHRpbmdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tZHJhZy1wbGFjZWhvbGRlclwiICpjZGtEcmFnUGxhY2Vob2xkZXI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZS1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7e25vZGUubmFtZX19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIH1cclxuICAgICAgPGxpYi1iaW1wbHVzLWNvbnRleHQtbWVudVxyXG4gICAgICAgIFtpdGVtc109XCJjb250ZXh0TWVudXM/LmZvbGRlckNvbnRleHRNZW51aXRlbXNcIlxyXG4gICAgICAgIFtkYXRhXT1cIm5vZGVcIlxyXG4gICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVzPy5mb2xkZXJDb250ZXh0TWVudWl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICh0cmlnZ2VyU2VsZWN0ZWQpPVwiX3RvZ2dsZU5vZGUoJGV2ZW50LCBub2RlKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9saWItYmltcGx1cy1jb250ZXh0LW1lbnU+XHJcblxyXG4gICAgICBAaWYoaGFzQ2hlY2tCb3gxKXtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImN1c3RvbS1jaGVja2JveDFcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAnaWNvbi11bmRldGVybWluZWQnOiBfaXNVbmRldGVybWluZWQxKG5vZGUpLFxyXG4gICAgICAgICAgICAnaWNvbi1jaGVja2VkJzogIV9pc1VuZGV0ZXJtaW5lZDEobm9kZSkgJiYgX2lzQ2hlY2tlZDEobm9kZSksXHJcbiAgICAgICAgICAgICdpY29uLXVuY2hlY2tlZCc6ICFfaXNVbmRldGVybWluZWQxKG5vZGUpICYmICFfaXNDaGVja2VkMShub2RlKVxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiX3RvZ2dsZUNoZWNrQm94MSgkZXZlbnQsbm9kZSlcIlxyXG4gICAgICAgICAgKGtleXByZXNzKT1cIl90b2dnbGVDaGVja0JveDEoJGV2ZW50LG5vZGUpXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmKGhhc0NoZWNrQm94Mil7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJjdXN0b20tY2hlY2tib3gyXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgJ2ljb24tdW5kZXRlcm1pbmVkJzogX2lzVW5kZXRlcm1pbmVkMihub2RlKSxcclxuICAgICAgICAgICAgJ2ljb24tY2hlY2tlZCc6ICFfaXNVbmRldGVybWluZWQyKG5vZGUpICYmIF9pc0NoZWNrZWQyKG5vZGUpLFxyXG4gICAgICAgICAgICAnaWNvbi11bmNoZWNrZWQnOiAhX2lzVW5kZXRlcm1pbmVkMihub2RlKSAmJiAhX2lzQ2hlY2tlZDIobm9kZSlcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIl90b2dnbGVDaGVja0JveDIoJGV2ZW50LG5vZGUpXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJfdG9nZ2xlQ2hlY2tCb3gyKCRldmVudCxub2RlKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Nkay10cmVlLW5vZGU+XHJcbiAgPC9jZGstdHJlZT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbGF0LXRyZWUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAgJy4uL2JpbXBsdXMtY29udGV4dC1tZW51L2JpbXBsdXMtY29udGV4dC1tZW51LmludGVyZmFjZSdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjaGlsZHJlbj86IEFycmF5PFRyZWVOb2RlPjtcclxuICBpZDogc3RyaW5nO1xyXG4gIHBhcmVudD86IHN0cmluZztcclxuICBub2RlVHlwZT86IHN0cmluZztcclxufVxyXG5cclxuLy8gRmxhdCBub2RlIHdpdGggZXhwYW5kYWJsZSBhbmQgbGV2ZWwgaW5mb3JtYXRpb25cclxuZXhwb3J0IGludGVyZmFjZSBGbGF0Tm9kZSB7XHJcbiAgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxuICBjaGlsZHJlbl9jb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsZXZlbDogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgcGFyZW50Pzogc3RyaW5nO1xyXG4gIG5vZGVUeXBlPzogc3RyaW5nO1xyXG59XHJcblxyXG4vLyBGbGF0IHRyZWUgY29udGV4dCBtZW51c1xyXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRUcmVlQ29udGV4dE1lbnVzIHtcclxuICBvYmplY3RDb250ZXh0TWVudWl0ZW1zPzogQXJyYXk8QmltcGx1c0NvbnRleHRNZW51SXRlbT47XHJcbiAgZm9sZGVyQ29udGV4dE1lbnVpdGVtcz86IEFycmF5PEJpbXBsdXNDb250ZXh0TWVudUl0ZW0+O1xyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbGF0LXRyZWUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbGF0LXRyZWUvYmltcGx1cy1mbGF0LXRyZWUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAgJy4uL2JpbXBsdXMtY29udGV4dC1tZW51L2JpbXBsdXMtY29udGV4dC1tZW51LmludGVyZmFjZSdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjaGlsZHJlbj86IEFycmF5PFRyZWVOb2RlPjtcclxuICBpZDogc3RyaW5nO1xyXG4gIHBhcmVudD86IHN0cmluZztcclxuICBub2RlVHlwZT86IHN0cmluZztcclxufVxyXG5cclxuLy8gRmxhdCBub2RlIHdpdGggZXhwYW5kYWJsZSBhbmQgbGV2ZWwgaW5mb3JtYXRpb25cclxuZXhwb3J0IGludGVyZmFjZSBGbGF0Tm9kZSB7XHJcbiAgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxuICBjaGlsZHJlbl9jb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsZXZlbDogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgcGFyZW50Pzogc3RyaW5nO1xyXG4gIG5vZGVUeXBlPzogc3RyaW5nO1xyXG4gIGlzQ2hlY2tlZDE6IGJvb2xlYW47XHJcbiAgaXNDaGVja2VkMjogYm9vbGVhbjtcclxuICBpc1VuZGV0ZXJtaW5lZDE6IGJvb2xlYW47XHJcbiAgaXNVbmRldGVybWluZWQyOiBib29sZWFuO1xyXG59XHJcblxyXG4vLyBGbGF0IHRyZWUgY29udGV4dCBtZW51c1xyXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRUcmVlQ29udGV4dE1lbnVzIHtcclxuICBvYmplY3RDb250ZXh0TWVudWl0ZW1zPzogQXJyYXk8QmltcGx1c0NvbnRleHRNZW51SXRlbT47XHJcbiAgZm9sZGVyQ29udGV4dE1lbnVpdGVtcz86IEFycmF5PEJpbXBsdXNDb250ZXh0TWVudUl0ZW0+O1xyXG59Il19
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
59
59
  }], title: [{
60
60
  type: Input
61
61
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7O0FBaUJqSCxNQUFNLE9BQU8scUNBQXVDLFNBQVEsK0JBQStCO0lBRXpGLFlBQVksZ0JBQWtDLEVBQzNCLG9CQUEwQztRQUUzRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUZOLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFNcEQsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRXRCLFVBQUssR0FBVyxFQUFFLENBQUM7SUFQNUIsQ0FBQztJQVNELFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBMEIsRUFBRSxFQUFFO1lBQ2xGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBdUI7UUFDckMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDckYsQ0FBQzsrR0FuQ1UscUNBQXFDO21HQUFyQyxxQ0FBcUMsa1BBTnJDO1lBQ1QsZ0JBQWdCO1NBQ2pCLGlEQ2pCSCxpVEFVQSw4a3RCRENJLFlBQVksNkhBQ1osa0JBQWtCLHVHQUNsQixlQUFlOzs0RkFRTixxQ0FBcUM7a0JBZGpELFNBQVM7K0JBQ0Usc0NBQXNDLGNBQ3BDLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZUFBZTtxQkFDaEIsYUFDVTt3QkFDVCxnQkFBZ0I7cUJBQ2pCO3dIQWFRLElBQUk7c0JBQVosS0FBSztnQkFFRyxXQUFXO3NCQURuQixXQUFXO3VCQUFDLG1CQUFtQjs7c0JBQy9CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLmRpcmVjdGl2ZSdcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dE1hbmFnZXJJdGVtLCBMYXlvdXRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRHJhZ2dhYmxlRGlyZWN0aXZlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItbG9nby5jb21wb25lbnQubGVzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJMb2dvQ29tcG9uZW50ICBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgcHJpdmF0ZSBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2VcclxuICApIHsgXHJcbiAgICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKVxyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZyA9IFwiXCI7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc0NvbGxhcHNlZCcpXHJcbiAgQElucHV0KCkgaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwYXJlbnRJZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3RlcmVkSXRlbXMkLnN1YnNjcmliZSgoaXRlbXM6IExheW91dE1hbmFnZXJJdGVtW10pID0+IHtcclxuICAgICAgY29uc3QgbGF5b3V0TWFuYWdlckl0ZW0gPSBpdGVtcy5maW5kKChpdGVtOiBMYXlvdXRNYW5hZ2VySXRlbSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5wYXJlbnRJZCk7ICBcclxuICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICEhKGxheW91dE1hbmFnZXJJdGVtPy5pc0NvbGxhcHNlZCk7ICAgICAgXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25Mb2dvQ2xpY2tlZCgpe1xyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS51cGRhdGVDb2xsYXBzZWQoIXRoaXMuaXNDb2xsYXBzZWQsdGhpcy5wYXJlbnRJZClcclxuICB9XHJcbiAgXHJcbiAgb25EcmFnRW5kKCl7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLmhhbmRsZURyYWdFbmQodGhpcy5wYXJlbnRJZCk7XHJcbiAgfVxyXG4gIFxyXG4gIGRyYWdCYXNlRWxlbWVudChldmVudDogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xyXG4gICAgY29uc3QgZGVsdGFYMSA9IGV2ZW50WzBdO1xyXG4gICAgY29uc3QgZGVsdGFZMSA9IGV2ZW50WzFdOyAgICAgICAgXHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLmNoZWNrUG9zaXRpb24odGhpcy5wYXJlbnRJZCxcIlwiLHVuZGVmaW5lZCxkZWx0YVgxLGRlbHRhWTEpICAgICAgICBcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiZmxvYXRpbmctcGFuZWxfX2hlYWRlci1sb2dvXCJcclxuICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJydcIlxyXG4gIFtjbGFzc05hbWVdPVwiaWNvblwiXHJcbiAgW3RpdGxlXT1cInRpdGxlIHwgdHJhbnNsYXRlXCJcclxuICBsaWJEcmFnZ2FibGVcclxuICAoY2xpY2tlZCk9XCJvbkxvZ29DbGlja2VkKClcIiAgXHJcbiAgKGRyYWdFbmQpPVwib25EcmFnRW5kKClcIlxyXG4gIChkcmFnZ2luZyk9XCJkcmFnQmFzZUVsZW1lbnQoJGV2ZW50KVwiXHJcbj48L2Rpdj5cclxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7O0FBaUJqSCxNQUFNLE9BQU8scUNBQXVDLFNBQVEsK0JBQStCO0lBRXpGLFlBQVksZ0JBQWtDLEVBQzNCLG9CQUEwQztRQUUzRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUZOLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFNcEQsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRXRCLFVBQUssR0FBVyxFQUFFLENBQUM7SUFQNUIsQ0FBQztJQVNELFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBMEIsRUFBRSxFQUFFO1lBQ2xGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBdUI7UUFDckMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDckYsQ0FBQzsrR0FuQ1UscUNBQXFDO21HQUFyQyxxQ0FBcUMsa1BBTnJDO1lBQ1QsZ0JBQWdCO1NBQ2pCLGlEQ2pCSCxpVEFVQSw4a3RCRENJLFlBQVksNkhBQ1osa0JBQWtCLHVHQUNsQixlQUFlOzs0RkFRTixxQ0FBcUM7a0JBZGpELFNBQVM7K0JBQ0Usc0NBQXNDLGNBQ3BDLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZUFBZTtxQkFDaEIsYUFDVTt3QkFDVCxnQkFBZ0I7cUJBQ2pCO3dIQWFRLElBQUk7c0JBQVosS0FBSztnQkFFRyxXQUFXO3NCQURuQixXQUFXO3VCQUFDLG1CQUFtQjs7c0JBQy9CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLmRpcmVjdGl2ZSdcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dE1hbmFnZXJJdGVtLCBMYXlvdXRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRHJhZ2dhYmxlRGlyZWN0aXZlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1mbG9hdGluZy1iYXItaGVhZGVyLWxvZ28uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iaW1wbHVzLWZsb2F0aW5nLWJhci1oZWFkZXItbG9nby5jb21wb25lbnQubGVzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzRmxvYXRpbmdCYXJIZWFkZXJMb2dvQ29tcG9uZW50ICBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2VcclxuICApIHsgXHJcbiAgICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKVxyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZyA9IFwiXCI7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc0NvbGxhcHNlZCcpXHJcbiAgQElucHV0KCkgaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwYXJlbnRJZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3RlcmVkSXRlbXMkLnN1YnNjcmliZSgoaXRlbXM6IExheW91dE1hbmFnZXJJdGVtW10pID0+IHtcclxuICAgICAgY29uc3QgbGF5b3V0TWFuYWdlckl0ZW0gPSBpdGVtcy5maW5kKChpdGVtOiBMYXlvdXRNYW5hZ2VySXRlbSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5wYXJlbnRJZCk7ICBcclxuICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICEhKGxheW91dE1hbmFnZXJJdGVtPy5pc0NvbGxhcHNlZCk7ICAgICAgXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25Mb2dvQ2xpY2tlZCgpe1xyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS51cGRhdGVDb2xsYXBzZWQoIXRoaXMuaXNDb2xsYXBzZWQsdGhpcy5wYXJlbnRJZClcclxuICB9XHJcbiAgXHJcbiAgb25EcmFnRW5kKCl7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLmhhbmRsZURyYWdFbmQodGhpcy5wYXJlbnRJZCk7XHJcbiAgfVxyXG4gIFxyXG4gIGRyYWdCYXNlRWxlbWVudChldmVudDogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xyXG4gICAgY29uc3QgZGVsdGFYMSA9IGV2ZW50WzBdO1xyXG4gICAgY29uc3QgZGVsdGFZMSA9IGV2ZW50WzFdOyAgICAgICAgXHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLmNoZWNrUG9zaXRpb24odGhpcy5wYXJlbnRJZCxcIlwiLHVuZGVmaW5lZCxkZWx0YVgxLGRlbHRhWTEpICAgICAgICBcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiZmxvYXRpbmctcGFuZWxfX2hlYWRlci1sb2dvXCJcclxuICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJydcIlxyXG4gIFtjbGFzc05hbWVdPVwiaWNvblwiXHJcbiAgW3RpdGxlXT1cInRpdGxlIHwgdHJhbnNsYXRlXCJcclxuICBsaWJEcmFnZ2FibGVcclxuICAoY2xpY2tlZCk9XCJvbkxvZ29DbGlja2VkKClcIiAgXHJcbiAgKGRyYWdFbmQpPVwib25EcmFnRW5kKClcIlxyXG4gIChkcmFnZ2luZyk9XCJkcmFnQmFzZUVsZW1lbnQoJGV2ZW50KVwiXHJcbj48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1nZW5lcmFsLWRpYWxvZy1jb25maWctc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cvYmltcGx1cy1nZW5lcmFsLWRpYWxvZy1jb25maWctc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgRGlhbG9nUG9zaXRpb24gPSAnbWlkZGxlJyB8ICd1bnNldCc7IC8vIG1pZGRsZSBtZWFucyBzZXQgYm90aCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkgaW4gbWlkZGxlIG9mIHBhZ2VcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURpYWxvZ09wdGlvbnMge1xyXG4gIHdpZHRoOiBzdHJpbmc7XHJcbiAgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgcG9zaXRpb246IERpYWxvZ1Bvc2l0aW9uO1xyXG4gIHBvc2l0aW9uT3B0aW9ucz86IERpYWxvZ1Bvc2l0aW9uT3B0aW9ucztcclxuICBvdmVybGF5Q2xpY2tFbmFibGVkPzogYm9vbGVhbjtcclxuICBvdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nUG9zaXRpb25PcHRpb25zIHtcclxuICB0b3A/OiBzdHJpbmc7XHJcbiAgYm90dG9tPzogc3RyaW5nO1xyXG4gIGxlZnQ/OiBzdHJpbmc7XHJcbiAgcmlnaHQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURpYWxvZ0lucHV0RGF0YSB7XHJcbiAgb3B0aW9uczogSURpYWxvZ09wdGlvbnM7XHJcbiAgZGF0YT86IHVua25vd247XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURpYWxvZ091dHB1dERhdGEge1xyXG4gIGRhdGE6IHVua25vd247XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1nZW5lcmFsLWRpYWxvZy1jb25maWctc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cvYmltcGx1cy1nZW5lcmFsLWRpYWxvZy1jb25maWctc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgRGlhbG9nUG9zaXRpb24gPSAnbWlkZGxlJyB8ICd1bnNldCc7IC8vIG1pZGRsZSBtZWFucyBzZXQgYm90aCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkgaW4gbWlkZGxlIG9mIHBhZ2VcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURpYWxvZ09wdGlvbnMge1xyXG4gIHdpZHRoPzogc3RyaW5nO1xyXG4gIGhlaWdodD86IHN0cmluZztcclxuICBwb3NpdGlvbj86IERpYWxvZ1Bvc2l0aW9uO1xyXG4gIHBvc2l0aW9uT3B0aW9ucz86IERpYWxvZ1Bvc2l0aW9uT3B0aW9ucztcclxuICBvdmVybGF5Q2xpY2tFbmFibGVkPzogYm9vbGVhbjtcclxuICBvdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nUG9zaXRpb25PcHRpb25zIHtcclxuICB0b3A/OiBzdHJpbmc7XHJcbiAgYm90dG9tPzogc3RyaW5nO1xyXG4gIGxlZnQ/OiBzdHJpbmc7XHJcbiAgcmlnaHQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURpYWxvZ0lucHV0RGF0YSB7XHJcbiAgb3B0aW9uczogSURpYWxvZ09wdGlvbnM7XHJcbiAgZGF0YT86IHVua25vd247XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURpYWxvZ091dHB1dERhdGEge1xyXG4gIGRhdGE6IHVua25vd247XHJcbn1cclxuIl19