@agorapulse/ui-components 18.0.23 → 18.0.25

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 (44) hide show
  1. package/agorapulse-ui-components-18.0.25.tgz +0 -0
  2. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +3 -3
  3. package/esm2022/nav-selector/nav-selector-category/nav-selector-category.component.mjs +40 -6
  4. package/esm2022/nav-selector/nav-selector-group/nav-selector-group.component.mjs +21 -14
  5. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.component.mjs +46 -20
  6. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.mjs +4 -1
  7. package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.mjs +5 -3
  8. package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.presenter.mjs +4 -2
  9. package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover-item.component.mjs +39 -10
  10. package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover.component.mjs +3 -4
  11. package/esm2022/nav-selector/nav-selector.component.mjs +20 -7
  12. package/esm2022/nav-selector/nav-selector.mjs +1 -1
  13. package/esm2022/nav-selector/nav-selector.state.mjs +17 -5
  14. package/esm2022/nav-selector/public_api.mjs +2 -1
  15. package/esm2022/nav-selector/utils/nav-selector.builder.mjs +6 -3
  16. package/esm2022/nav-selector/utils/nav-selector.filter.mjs +2 -1
  17. package/esm2022/nav-selector/utils/nav-selector.folding.mjs +106 -46
  18. package/esm2022/nav-selector/utils/nav-selector.minifying.mjs +6 -2
  19. package/esm2022/popmenu/popmenu.directive.mjs +1 -1
  20. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +2 -2
  21. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +2 -2
  22. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +2 -4
  23. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +2 -2
  24. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
  25. package/fesm2022/agorapulse-ui-components-nav-selector.mjs +504 -310
  26. package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
  27. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
  28. package/fesm2022/agorapulse-ui-components-select.mjs +3 -5
  29. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
  30. package/nav-selector/nav-selector-category/nav-selector-category.component.d.ts +10 -0
  31. package/nav-selector/nav-selector-group/nav-selector-group.component.d.ts +1 -0
  32. package/nav-selector/nav-selector-leaf/nav-selector-leaf.component.d.ts +5 -1
  33. package/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.d.ts +2 -1
  34. package/nav-selector/nav-selector-popover/nav-selector-popover-item.component.d.ts +7 -2
  35. package/nav-selector/nav-selector.component.d.ts +1 -0
  36. package/nav-selector/nav-selector.d.ts +2 -0
  37. package/nav-selector/nav-selector.state.d.ts +2 -0
  38. package/nav-selector/public_api.d.ts +1 -0
  39. package/nav-selector/utils/nav-selector.folding.d.ts +32 -9
  40. package/package.json +7 -7
  41. package/popmenu/popmenu.directive.d.ts +6 -4
  42. package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +1 -1
  43. package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +1 -1
  44. package/agorapulse-ui-components-18.0.23.tgz +0 -0
@@ -4,6 +4,15 @@ import { isInternalNavSelectorEntryALeafFocusable } from '../utils/leaf.utils';
4
4
  * Class to handle the folding and unfolding of nav selector entries.
5
5
  */
6
6
  export class NavSelectorFolding {
7
+ /**
8
+ * Unfolds all parents of the entry with the given uid until the root.
9
+ * @param entries nav selector entries
10
+ * @param entryUid the entry uid to unfold parents for
11
+ * @param options options for folding operations
12
+ */
13
+ static unfoldParents(entries, entryUid, options) {
14
+ return this.unfoldParentsOfEntry(entries, entryUid, options).entries;
15
+ }
7
16
  /**
8
17
  * Toggle the folding state of an entry.
9
18
  *
@@ -11,11 +20,10 @@ export class NavSelectorFolding {
11
20
  *
12
21
  * @param entries nav selector entries
13
22
  * @param entryUid the entry uid to toggle
14
- * @param multipleMode to update the focusable state of leaves and details correctly.
15
- * @param minified true if the nav selector is minified. Needed for leaf as they are not foldable in minified mode
23
+ * @param options options for folding operations
16
24
  */
17
- static toggleFolding(entries, entryUid, multipleMode, minified) {
18
- return this.toggleEntryFolding(entries, entryUid, multipleMode, minified);
25
+ static toggleFolding(entries, entryUid, options) {
26
+ return this.toggleEntryFolding(entries, entryUid, options);
19
27
  }
20
28
  /**
21
29
  * Fold an entry.
@@ -25,11 +33,10 @@ export class NavSelectorFolding {
25
33
  *
26
34
  * @param entries nav selector entries
27
35
  * @param entryUid the entry uid to fold
28
- * @param multipleMode to update the focusable state of leaves and details correctly.
29
- * @param minified true if the nav selector is minified. Needed for leaf as they are not foldable in minified mode
36
+ * @param options options for folding operations
30
37
  */
31
- static fold(entries, entryUid, multipleMode, minified) {
32
- return this.foldEntry(entries, entryUid, multipleMode, minified);
38
+ static fold(entries, entryUid, options) {
39
+ return this.foldEntry(entries, entryUid, options);
33
40
  }
34
41
  /**
35
42
  * Unfold an entry.
@@ -39,156 +46,155 @@ export class NavSelectorFolding {
39
46
  *
40
47
  * @param entries nav selector entries
41
48
  * @param entryUid the entry uid to unfold
42
- * @param multipleMode to update the focusable state of leaves and details correctly.
43
- * @param minified true if the nav selector is minified. Needed for leaf as they are not foldable in minified mode
49
+ * @param options options for folding operations
44
50
  */
45
- static unfold(entries, entryUid, multipleMode, minified) {
46
- return this.unfoldEntry(entries, entryUid, multipleMode, minified);
51
+ static unfold(entries, entryUid, options) {
52
+ return this.unfoldEntry(entries, entryUid, options);
47
53
  }
48
- static toggleEntryFolding(entries, entryUid, multipleMode, minified, parentFolded = false) {
54
+ static toggleEntryFolding(entries, entryUid, options, parentFolded = false) {
49
55
  return entries.map(entry => {
50
56
  if (isInternalNavSelectorEntryACategory(entry)) {
51
57
  if (entry.uid === entryUid) {
52
58
  const folded = !entry.folded;
53
59
  if (folded) {
54
- return this.foldCategory(entry, minified);
60
+ return this.foldCategory(entry, options);
55
61
  }
56
62
  else {
57
- return this.unfoldCategory(entry, minified);
63
+ return this.unfoldCategory(entry, options);
58
64
  }
59
65
  }
60
66
  return {
61
67
  ...entry,
62
- children: this.toggleEntryFolding(entry.children, entryUid, minified, entry.folded),
68
+ children: this.toggleEntryFolding(entry.children, entryUid, options, entry.folded),
63
69
  };
64
70
  }
65
71
  if (isInternalNavSelectorEntryAGroup(entry)) {
66
72
  if (entry.uid === entryUid) {
67
73
  const folded = !entry.folded;
68
74
  if (folded) {
69
- return this.foldGroup(entry, multipleMode, minified);
75
+ return this.foldGroup(entry, options);
70
76
  }
71
77
  else {
72
- return this.unfoldGroup(entry, multipleMode, minified);
78
+ return this.unfoldGroup(entry, options);
73
79
  }
74
80
  }
75
81
  return {
76
82
  ...entry,
77
- children: this.toggleEntryFolding(entry.children, entryUid, multipleMode, minified, parentFolded || entry.folded),
83
+ children: this.toggleEntryFolding(entry.children, entryUid, options, parentFolded || entry.folded),
78
84
  };
79
85
  }
80
86
  if (isInternalNavSelectorEntryALeaf(entry)) {
81
87
  if (entry.uid === entryUid) {
82
88
  const folded = !entry.folded;
83
89
  if (folded) {
84
- return this.foldLeaf(entry, minified);
90
+ return this.foldLeaf(entry, options.minified);
85
91
  }
86
92
  else {
87
- return this.unfoldLeaf(entry, minified);
93
+ return this.unfoldLeaf(entry, options.minified);
88
94
  }
89
95
  }
90
96
  return {
91
97
  ...entry,
92
- focusable: isInternalNavSelectorEntryALeafFocusable(entry, { parentFolded, multipleMode }),
98
+ focusable: isInternalNavSelectorEntryALeafFocusable(entry, { parentFolded, multipleMode: options.multipleMode }),
93
99
  };
94
100
  }
95
101
  return { ...entry, focusable: !parentFolded };
96
102
  });
97
103
  }
98
- static foldEntry(entries, entryUid, multipleMode, minified, parentFolded = false) {
104
+ static foldEntry(entries, entryUid, options, parentFolded = false) {
99
105
  return entries.map(entry => {
100
106
  if (isInternalNavSelectorEntryACategory(entry)) {
101
107
  if (entry.uid === entryUid) {
102
- return this.foldCategory(entry, minified);
108
+ return this.foldCategory(entry, options);
103
109
  }
104
110
  return {
105
111
  ...entry,
106
- children: this.foldEntry(entry.children, entryUid, minified, entry.folded),
112
+ children: this.foldEntry(entry.children, entryUid, options, entry.folded),
107
113
  };
108
114
  }
109
115
  if (isInternalNavSelectorEntryAGroup(entry)) {
110
116
  if (entry.uid === entryUid) {
111
- return this.foldGroup(entry, multipleMode, minified);
117
+ return this.foldGroup(entry, options);
112
118
  }
113
119
  return {
114
120
  ...entry,
115
121
  focusable: !parentFolded,
116
- children: this.foldEntry(entry.children, entryUid, minified, parentFolded || entry.folded),
122
+ children: this.foldEntry(entry.children, entryUid, options, parentFolded || entry.folded),
117
123
  };
118
124
  }
119
125
  if (isInternalNavSelectorEntryALeaf(entry)) {
120
126
  if (entry.uid === entryUid) {
121
- return this.foldLeaf(entry, minified);
127
+ return this.foldLeaf(entry, options.minified);
122
128
  }
123
129
  return {
124
130
  ...entry,
125
- focusable: isInternalNavSelectorEntryALeafFocusable(entry, { parentFolded, multipleMode }),
131
+ focusable: isInternalNavSelectorEntryALeafFocusable(entry, { parentFolded, multipleMode: options.multipleMode }),
126
132
  };
127
133
  }
128
134
  return { ...entry, focusable: !parentFolded };
129
135
  });
130
136
  }
131
- static unfoldEntry(entries, entryUid, multipleMode, minified, parentFolded = false) {
137
+ static unfoldEntry(entries, entryUid, options, parentFolded = false) {
132
138
  return entries.map(entry => {
133
139
  if (isInternalNavSelectorEntryACategory(entry)) {
134
140
  if (entry.uid === entryUid) {
135
- return this.unfoldCategory(entry, minified);
141
+ return this.unfoldCategory(entry, options);
136
142
  }
137
143
  return {
138
144
  ...entry,
139
- children: this.unfoldEntry(entry.children, entryUid, multipleMode, minified, entry.folded),
145
+ children: this.unfoldEntry(entry.children, entryUid, options, entry.folded),
140
146
  };
141
147
  }
142
148
  if (isInternalNavSelectorEntryAGroup(entry)) {
143
149
  if (entry.uid === entryUid) {
144
- return this.unfoldGroup(entry, multipleMode, minified);
150
+ return this.unfoldGroup(entry, options);
145
151
  }
146
152
  return {
147
153
  ...entry,
148
- children: this.unfoldEntry(entry.children, entryUid, multipleMode, minified, parentFolded || entry.folded),
154
+ children: this.unfoldEntry(entry.children, entryUid, options, parentFolded || entry.folded),
149
155
  focusable: !parentFolded,
150
156
  };
151
157
  }
152
158
  if (isInternalNavSelectorEntryALeaf(entry)) {
153
159
  if (entry.uid === entryUid) {
154
- return this.unfoldLeaf(entry, minified);
160
+ return this.unfoldLeaf(entry, options.minified);
155
161
  }
156
162
  return {
157
163
  ...entry,
158
- focusable: isInternalNavSelectorEntryALeafFocusable(entry, { parentFolded, multipleMode }),
164
+ focusable: isInternalNavSelectorEntryALeafFocusable(entry, { parentFolded, multipleMode: options.multipleMode }),
159
165
  };
160
166
  }
161
167
  return { ...entry, focusable: !parentFolded };
162
168
  });
163
169
  }
164
- static foldCategory(category, minified) {
170
+ static foldCategory(category, options) {
165
171
  return {
166
172
  ...category,
167
173
  folded: true,
168
- children: this.foldEntry(category.children, category.uid, minified, true),
174
+ children: this.foldEntry(category.children, category.uid, options, true),
169
175
  };
170
176
  }
171
- static unfoldCategory(category, minified) {
177
+ static unfoldCategory(category, options) {
172
178
  return {
173
179
  ...category,
174
180
  folded: false,
175
- children: this.unfoldEntry(category.children, category.uid, minified, false),
181
+ children: this.unfoldEntry(category.children, category.uid, options, false),
176
182
  };
177
183
  }
178
- static foldGroup(group, multipleMode, minified) {
184
+ static foldGroup(group, options) {
179
185
  return {
180
186
  ...group,
181
187
  folded: true,
182
- children: this.foldEntry(group.children, group.uid, multipleMode, minified, true),
188
+ children: this.foldEntry(group.children, group.uid, options, true),
183
189
  displayCounter: !!group.counter,
184
190
  displayTokenInvalid: group.children.some(({ displayTokenInvalid }) => displayTokenInvalid),
185
191
  };
186
192
  }
187
- static unfoldGroup(group, multipleMode, minified) {
193
+ static unfoldGroup(group, options) {
188
194
  return {
189
195
  ...group,
190
196
  folded: false,
191
- children: this.unfoldEntry(group.children, group.uid, multipleMode, minified, false),
197
+ children: this.unfoldEntry(group.children, group.uid, options, false),
192
198
  displayCounter: false,
193
199
  displayTokenInvalid: false,
194
200
  };
@@ -214,9 +220,63 @@ export class NavSelectorFolding {
214
220
  folded: false,
215
221
  details: leaf.details.map((detail, idx) => ({
216
222
  ...detail,
217
- focusable: idx < leaf.viewMoreDetailsDisplayedLimit,
223
+ focusable: idx < leaf.viewMoreDetailsDisplayedLimit && !detail.displayError,
218
224
  })),
219
225
  };
220
226
  }
227
+ /**
228
+ * Unfolds all parents of the entry with the given uid until the root.
229
+ * @param entries nav selector entries
230
+ * @param entryUid the entry uid to unfold parents for
231
+ * @param options options for folding operations
232
+ */
233
+ static unfoldParentsOfEntry(entries, entryUid, options) {
234
+ let found = false;
235
+ const newEntries = entries.map(entry => {
236
+ if (isInternalNavSelectorEntryACategory(entry)) {
237
+ const entryFound = entry.children.some(({ uid }) => uid === entryUid);
238
+ if (entryFound) {
239
+ found = true;
240
+ return this.unfoldCategory(entry, options);
241
+ }
242
+ const result = this.unfoldParentsOfEntry(entry.children, entryUid, options);
243
+ found ||= result.found;
244
+ if (found) {
245
+ return {
246
+ ...entry,
247
+ children: result.entries,
248
+ folded: false,
249
+ focusable: true,
250
+ };
251
+ }
252
+ }
253
+ else if (isInternalNavSelectorEntryAGroup(entry)) {
254
+ const entryFound = entry.children.some(({ uid }) => uid === entryUid);
255
+ if (entryFound) {
256
+ found = true;
257
+ return { ...this.unfoldGroup(entry, options), focusable: true };
258
+ }
259
+ const result = this.unfoldParentsOfEntry(entry.children, entryUid, options);
260
+ found ||= result.found;
261
+ if (found) {
262
+ return {
263
+ ...entry,
264
+ children: result.entries,
265
+ folded: false,
266
+ focusable: true,
267
+ };
268
+ }
269
+ }
270
+ else if (isInternalNavSelectorEntryALeaf(entry)) {
271
+ const entryFound = entry.details.some(({ uid }) => uid === entryUid);
272
+ if (entryFound) {
273
+ found = true;
274
+ return { ...this.unfoldLeaf(entry, options.minified), focusable: true };
275
+ }
276
+ }
277
+ return entry;
278
+ });
279
+ return { found, entries: newEntries };
280
+ }
221
281
  }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmZvbGRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy91dGlscy9uYXYtc2VsZWN0b3IuZm9sZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0gsbUNBQW1DLEVBQ25DLGdDQUFnQyxFQUNoQywrQkFBK0IsR0FDbEMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0I7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FDaEIsT0FBWSxFQUNaLFFBQWdCLEVBQ2hCLFlBQXFCLEVBQ3JCLFFBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FDUCxPQUFZLEVBQ1osUUFBZ0IsRUFDaEIsWUFBcUIsRUFDckIsUUFBaUI7UUFFakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FDVCxPQUFZLEVBQ1osUUFBZ0IsRUFDaEIsWUFBcUIsRUFDckIsUUFBaUI7UUFFakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCLENBQzdCLE9BQVksRUFDWixRQUFnQixFQUNoQixZQUFx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QU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPO1lBQ0gsR0FBRyxJQUFJO1lBQ1AsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxHQUFHLE1BQU07Z0JBQ1QsU0FBUyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsNkJBQTZCO2FBQ3RELENBQUMsQ0FBQztTQUNOLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwLFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JMZWFmLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5LFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUdyb3VwLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYsXG59IGZyb20gJy4uL25hdi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRm9jdXNhYmxlIH0gZnJvbSAnLi4vdXRpbHMvbGVhZi51dGlscyc7XG5cbi8qKlxuICogQ2xhc3MgdG8gaGFuZGxlIHRoZSBmb2xkaW5nIGFuZCB1bmZvbGRpbmcgb2YgbmF2IHNlbGVjdG9yIGVudHJpZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvckZvbGRpbmcge1xuICAgIC8qKlxuICAgICAqIFRvZ2dsZSB0aGUgZm9sZGluZyBzdGF0ZSBvZiBhbiBlbnRyeS5cbiAgICAgKlxuICAgICAqIEBzZWUge0BsaW5rIE5hdlNlbGVjdG9yRm9sZGluZy5mb2xkfSBhbmQge0BsaW5rIE5hdlNlbGVjdG9yRm9sZGluZy51bmZvbGR9IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGZvbGRpbmcgYW5kIHVuZm9sZGluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnRyaWVzIG5hdiBzZWxlY3RvciBlbnRyaWVzXG4gICAgICogQHBhcmFtIGVudHJ5VWlkIHRoZSBlbnRyeSB1aWQgdG8gdG9nZ2xlXG4gICAgICogQHBhcmFtIG11bHRpcGxlTW9kZSB0byB1cGRhdGUgdGhlIGZvY3VzYWJsZSBzdGF0ZSBvZiBsZWF2ZXMgYW5kIGRldGFpbHMgY29ycmVjdGx5LlxuICAgICAqIEBwYXJhbSBtaW5pZmllZCB0cnVlIGlmIHRoZSBuYXYgc2VsZWN0b3IgaXMgbWluaWZpZWQuIE5lZWRlZCBmb3IgbGVhZiBhcyB0aGV5IGFyZSBub3QgZm9sZGFibGUgaW4gbWluaWZpZWQgbW9kZVxuICAgICAqL1xuICAgIHN0YXRpYyB0b2dnbGVGb2xkaW5nPFQgZXh0ZW5kcyBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnk+KFxuICAgICAgICBlbnRyaWVzOiBUW10sXG4gICAgICAgIGVudHJ5VWlkOiBzdHJpbmcsXG4gICAgICAgIG11bHRpcGxlTW9kZTogYm9vbGVhbixcbiAgICAgICAgbWluaWZpZWQ6IGJvb2xlYW5cbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvZ2dsZUVudHJ5Rm9sZGluZyhlbnRyaWVzLCBlbnRyeVVpZCwgbXVsdGlwbGVNb2RlLCBtaW5pZmllZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9sZCBhbiBlbnRyeS5cbiAgICAgKlxuICAgICAqIFNldCB1bmZvY3VzYWJsZSBvbiBhbGwgY2hpbGRyZW4gb2YgdGhlIGZvbGRlZCBlbnRyeS5cbiAgICAgKiBDb21wdXRlIHdoZW5ldmVyIHRoZSBjb3VudGVyIGFuZCB0b2tlbiBpbnZhbGlkIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gZ3JvdXBzIGFuZCBsZWF2ZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqIEBwYXJhbSBlbnRyeVVpZCB0aGUgZW50cnkgdWlkIHRvIGZvbGRcbiAgICAgKiBAcGFyYW0gbXVsdGlwbGVNb2RlIHRvIHVwZGF0ZSB0aGUgZm9jdXNhYmxlIHN0YXRlIG9mIGxlYXZlcyBhbmQgZGV0YWlscyBjb3JyZWN0bHkuXG4gICAgICogQHBhcmFtIG1pbmlmaWVkIHRydWUgaWYgdGhlIG5hdiBzZWxlY3RvciBpcyBtaW5pZmllZC4gTmVlZGVkIGZvciBsZWFmIGFzIHRoZXkgYXJlIG5vdCBmb2xkYWJsZSBpbiBtaW5pZmllZCBtb2RlXG4gICAgICovXG4gICAgc3RhdGljIGZvbGQ8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgZW50cnlVaWQ6IHN0cmluZyxcbiAgICAgICAgbXVsdGlwbGVNb2RlOiBib29sZWFuLFxuICAgICAgICBtaW5pZmllZDogYm9vbGVhblxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9sZEVudHJ5KGVudHJpZXMsIGVudHJ5VWlkLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbmZvbGQgYW4gZW50cnkuXG4gICAgICpcbiAgICAgKiBTZXQgZm9jdXNhYmxlIG9uIGFsbCBjaGlsZHJlbiBvZiB0aGUgZm9sZGVkIGVudHJ5LlxuICAgICAqIENvbXB1dGUgd2hlbmV2ZXIgdGhlIGNvdW50ZXIgYW5kIHRva2VuIGludmFsaWQgc2hvdWxkIGJlIGRpc3BsYXllZCBvbiBncm91cHMgYW5kIGxlYXZlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnRyaWVzIG5hdiBzZWxlY3RvciBlbnRyaWVzXG4gICAgICogQHBhcmFtIGVudHJ5VWlkIHRoZSBlbnRyeSB1aWQgdG8gdW5mb2xkXG4gICAgICogQHBhcmFtIG11bHRpcGxlTW9kZSB0byB1cGRhdGUgdGhlIGZvY3VzYWJsZSBzdGF0ZSBvZiBsZWF2ZXMgYW5kIGRldGFpbHMgY29ycmVjdGx5LlxuICAgICAqIEBwYXJhbSBtaW5pZmllZCB0cnVlIGlmIHRoZSBuYXYgc2VsZWN0b3IgaXMgbWluaWZpZWQuIE5lZWRlZCBmb3IgbGVhZiBhcyB0aGV5IGFyZSBub3QgZm9sZGFibGUgaW4gbWluaWZpZWQgbW9kZVxuICAgICAqL1xuICAgIHN0YXRpYyB1bmZvbGQ8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgZW50cnlVaWQ6IHN0cmluZyxcbiAgICAgICAgbXVsdGlwbGVNb2RlOiBib29sZWFuLFxuICAgICAgICBtaW5pZmllZDogYm9vbGVhblxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5mb2xkRW50cnkoZW50cmllcywgZW50cnlVaWQsIG11bHRpcGxlTW9kZSwgbWluaWZpZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRvZ2dsZUVudHJ5Rm9sZGluZzxUIGV4dGVuZHMgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5PihcbiAgICAgICAgZW50cmllczogVFtdLFxuICAgICAgICBlbnRyeVVpZDogc3RyaW5nLFxuICAgICAgICBtdWx0aXBsZU1vZGU6IGJvb2xlYW4sXG4gICAgICAgIG1pbmlmaWVkOiBib29sZWFuLFxuICAgICAgICBwYXJlbnRGb2xkZWQgPSBmYWxzZVxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFDYXRlZ29yeShlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkudWlkID09PSBlbnRyeVVpZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb2xkZWQgPSAhZW50cnkuZm9sZGVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9sZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb2xkQ2F0ZWdvcnkoZW50cnksIG1pbmlmaWVkKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVuZm9sZENhdGVnb3J5KGVudHJ5LCBtaW5pZmllZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLnRvZ2dsZUVudHJ5Rm9sZGluZyhlbnRyeS5jaGlsZHJlbiwgZW50cnlVaWQsIG1pbmlmaWVkLCBlbnRyeS5mb2xkZWQpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9sZGVkID0gIWVudHJ5LmZvbGRlZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvbGRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9sZEdyb3VwKGVudHJ5LCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVuZm9sZEdyb3VwKGVudHJ5LCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMudG9nZ2xlRW50cnlGb2xkaW5nKGVudHJ5LmNoaWxkcmVuLCBlbnRyeVVpZCwgbXVsdGlwbGVNb2RlLCBtaW5pZmllZCwgcGFyZW50Rm9sZGVkIHx8IGVudHJ5LmZvbGRlZCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS51aWQgPT09IGVudHJ5VWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlZCA9ICFlbnRyeS5mb2xkZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb2xkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvbGRMZWFmKGVudHJ5LCBtaW5pZmllZCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51bmZvbGRMZWFmKGVudHJ5LCBtaW5pZmllZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkZvY3VzYWJsZShlbnRyeSwgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZSB9KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgLi4uZW50cnksIGZvY3VzYWJsZTogIXBhcmVudEZvbGRlZCB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBmb2xkRW50cnk8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgZW50cnlVaWQ6IHN0cmluZyxcbiAgICAgICAgbXVsdGlwbGVNb2RlOiBib29sZWFuLFxuICAgICAgICBtaW5pZmllZDogYm9vbGVhbixcbiAgICAgICAgcGFyZW50Rm9sZGVkID0gZmFsc2VcbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIHJldHVybiBlbnRyaWVzLm1hcChlbnRyeSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9sZENhdGVnb3J5KGVudHJ5LCBtaW5pZmllZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5mb2xkRW50cnkoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBtaW5pZmllZCwgZW50cnkuZm9sZGVkKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUdyb3VwKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS51aWQgPT09IGVudHJ5VWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvbGRHcm91cChlbnRyeSwgbXVsdGlwbGVNb2RlLCBtaW5pZmllZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU6ICFwYXJlbnRGb2xkZWQsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLmZvbGRFbnRyeShlbnRyeS5jaGlsZHJlbiwgZW50cnlVaWQsIG1pbmlmaWVkLCBwYXJlbnRGb2xkZWQgfHwgZW50cnkuZm9sZGVkKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9sZExlYWYoZW50cnksIG1pbmlmaWVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkZvY3VzYWJsZShlbnRyeSwgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZSB9KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgLi4uZW50cnksIGZvY3VzYWJsZTogIXBhcmVudEZvbGRlZCB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB1bmZvbGRFbnRyeTxUIGV4dGVuZHMgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5PihcbiAgICAgICAgZW50cmllczogVFtdLFxuICAgICAgICBlbnRyeVVpZDogc3RyaW5nLFxuICAgICAgICBtdWx0aXBsZU1vZGU6IGJvb2xlYW4sXG4gICAgICAgIG1pbmlmaWVkOiBib29sZWFuLFxuICAgICAgICBwYXJlbnRGb2xkZWQgPSBmYWxzZVxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFDYXRlZ29yeShlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkudWlkID09PSBlbnRyeVVpZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51bmZvbGRDYXRlZ29yeShlbnRyeSwgbWluaWZpZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMudW5mb2xkRW50cnkoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkLCBlbnRyeS5mb2xkZWQpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudW5mb2xkR3JvdXAoZW50cnksIG11bHRpcGxlTW9kZSwgbWluaWZpZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMudW5mb2xkRW50cnkoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkLCBwYXJlbnRGb2xkZWQgfHwgZW50cnkuZm9sZGVkKSxcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlOiAhcGFyZW50Rm9sZGVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkudWlkID09PSBlbnRyeVVpZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51bmZvbGRMZWFmKGVudHJ5LCBtaW5pZmllZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU6IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZGb2N1c2FibGUoZW50cnksIHsgcGFyZW50Rm9sZGVkLCBtdWx0aXBsZU1vZGUgfSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IC4uLmVudHJ5LCBmb2N1c2FibGU6ICFwYXJlbnRGb2xkZWQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9sZENhdGVnb3J5KGNhdGVnb3J5OiBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnksIG1pbmlmaWVkOiBib29sZWFuKTogSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmNhdGVnb3J5LFxuICAgICAgICAgICAgZm9sZGVkOiB0cnVlLFxuICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMuZm9sZEVudHJ5KGNhdGVnb3J5LmNoaWxkcmVuLCBjYXRlZ29yeS51aWQsIG1pbmlmaWVkLCB0cnVlKSBhcyAoXG4gICAgICAgICAgICAgICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZlxuICAgICAgICAgICAgICAgIHwgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwXG4gICAgICAgICAgICApW10sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdW5mb2xkQ2F0ZWdvcnkoY2F0ZWdvcnk6IEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSwgbWluaWZpZWQ6IGJvb2xlYW4pOiBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICAgICAgICBmb2xkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMudW5mb2xkRW50cnkoY2F0ZWdvcnkuY2hpbGRyZW4sIGNhdGVnb3J5LnVpZCwgbWluaWZpZWQsIGZhbHNlKSBhcyAoXG4gICAgICAgICAgICAgICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZlxuICAgICAgICAgICAgICAgIHwgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwXG4gICAgICAgICAgICApW10sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9sZEdyb3VwKGdyb3VwOiBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAsIG11bHRpcGxlTW9kZTogYm9vbGVhbiwgbWluaWZpZWQ6IGJvb2xlYW4pOiBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBmb2xkZWQ6IHRydWUsXG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5mb2xkRW50cnkoZ3JvdXAuY2hpbGRyZW4sIGdyb3VwLnVpZCwgbXVsdGlwbGVNb2RlLCBtaW5pZmllZCwgdHJ1ZSkgYXMgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZbXSxcbiAgICAgICAgICAgIGRpc3BsYXlDb3VudGVyOiAhIWdyb3VwLmNvdW50ZXIsXG4gICAgICAgICAgICBkaXNwbGF5VG9rZW5JbnZhbGlkOiBncm91cC5jaGlsZHJlbi5zb21lKCh7IGRpc3BsYXlUb2tlbkludmFsaWQgfSkgPT4gZGlzcGxheVRva2VuSW52YWxpZCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdW5mb2xkR3JvdXAoZ3JvdXA6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCwgbXVsdGlwbGVNb2RlOiBib29sZWFuLCBtaW5pZmllZDogYm9vbGVhbik6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5ncm91cCxcbiAgICAgICAgICAgIGZvbGRlZDogZmFsc2UsXG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy51bmZvbGRFbnRyeShncm91cC5jaGlsZHJlbiwgZ3JvdXAudWlkLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkLCBmYWxzZSkgYXMgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZbXSxcbiAgICAgICAgICAgIGRpc3BsYXlDb3VudGVyOiBmYWxzZSxcbiAgICAgICAgICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGZvbGRMZWFmKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmLCBtaW5pZmllZDogYm9vbGVhbik6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmIHtcbiAgICAgICAgaWYgKCFsZWFmLmZvbGRhYmxlIHx8IG1pbmlmaWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVhZjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubGVhZixcbiAgICAgICAgICAgIGRpc3BsYXlDb3VudGVyOiBsZWFmLmNvdW50ZXJEaXNwbGF5YWJsZSxcbiAgICAgICAgICAgIGZvbGRlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRldGFpbHM6IGxlYWYuZGV0YWlscy5tYXAoZGV0YWlsID0+ICh7IC4uLmRldGFpbCwgZm9jdXNhYmxlOiBmYWxzZSB9KSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdW5mb2xkTGVhZihsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiwgbWluaWZpZWQ6IGJvb2xlYW4pOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiB7XG4gICAgICAgIGlmICghbGVhZi5mb2xkYWJsZSB8fCBtaW5pZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIGxlYWY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmxlYWYsXG4gICAgICAgICAgICBkaXNwbGF5Q291bnRlcjogZmFsc2UsXG4gICAgICAgICAgICBmb2xkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsczogbGVhZi5kZXRhaWxzLm1hcCgoZGV0YWlsLCBpZHgpID0+ICh7XG4gICAgICAgICAgICAgICAgLi4uZGV0YWlsLFxuICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogaWR4IDwgbGVhZi52aWV3TW9yZURldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmZvbGRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy91dGlscy9uYXYtc2VsZWN0b3IuZm9sZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0gsbUNBQW1DLEVBQ25DLGdDQUFnQyxFQUNoQywrQkFBK0IsR0FDbEMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVkvRTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0I7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUNoQixPQUFZLEVBQ1osUUFBZ0IsRUFDaEIsT0FBa0M7UUFFbEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FDaEIsT0FBWSxFQUNaLFFBQWdCLEVBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQ1AsT0FBWSxFQUNaLFFBQWdCLEVBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUNULE9BQVksRUFDWixRQUFnQixFQUNoQixPQUFrQztRQUVsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFFB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QyxDQUFDO2dCQUNyRSxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNiLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2IsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUUsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnksXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZixcbn0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yJztcbmltcG9ydCB7IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZGb2N1c2FibGUgfSBmcm9tICcuLi91dGlscy9sZWFmLnV0aWxzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBmb2xkaW5nIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zIHtcbiAgICAvKiogVG8gdXBkYXRlIHRoZSBmb2N1c2FibGUgc3RhdGUgb2YgbGVhdmVzIGFuZCBkZXRhaWxzIGNvcnJlY3RseSAqL1xuICAgIG11bHRpcGxlTW9kZTogYm9vbGVhbjtcbiAgICAvKiogVHJ1ZSBpZiB0aGUgbmF2IHNlbGVjdG9yIGlzIG1pbmlmaWVkLiBOZWVkZWQgZm9yIGxlYWYgYXMgdGhleSBhcmUgbm90IGZvbGRhYmxlIGluIG1pbmlmaWVkIG1vZGUgKi9cbiAgICBtaW5pZmllZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDbGFzcyB0byBoYW5kbGUgdGhlIGZvbGRpbmcgYW5kIHVuZm9sZGluZyBvZiBuYXYgc2VsZWN0b3IgZW50cmllcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5hdlNlbGVjdG9yRm9sZGluZyB7XG4gICAgLyoqXG4gICAgICogVW5mb2xkcyBhbGwgcGFyZW50cyBvZiB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gdWlkIHVudGlsIHRoZSByb290LlxuICAgICAqIEBwYXJhbSBlbnRyaWVzIG5hdiBzZWxlY3RvciBlbnRyaWVzXG4gICAgICogQHBhcmFtIGVudHJ5VWlkIHRoZSBlbnRyeSB1aWQgdG8gdW5mb2xkIHBhcmVudHMgZm9yXG4gICAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBmb3IgZm9sZGluZyBvcGVyYXRpb25zXG4gICAgICovXG4gICAgc3RhdGljIHVuZm9sZFBhcmVudHM8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgZW50cnlVaWQ6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczogTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9uc1xuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5mb2xkUGFyZW50c09mRW50cnkoZW50cmllcywgZW50cnlVaWQsIG9wdGlvbnMpLmVudHJpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIHRoZSBmb2xkaW5nIHN0YXRlIG9mIGFuIGVudHJ5LlxuICAgICAqXG4gICAgICogQHNlZSB7QGxpbmsgTmF2U2VsZWN0b3JGb2xkaW5nLmZvbGR9IGFuZCB7QGxpbmsgTmF2U2VsZWN0b3JGb2xkaW5nLnVuZm9sZH0gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gZm9sZGluZyBhbmQgdW5mb2xkaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVudHJpZXMgbmF2IHNlbGVjdG9yIGVudHJpZXNcbiAgICAgKiBAcGFyYW0gZW50cnlVaWQgdGhlIGVudHJ5IHVpZCB0byB0b2dnbGVcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zIGZvciBmb2xkaW5nIG9wZXJhdGlvbnNcbiAgICAgKi9cbiAgICBzdGF0aWMgdG9nZ2xlRm9sZGluZzxUIGV4dGVuZHMgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5PihcbiAgICAgICAgZW50cmllczogVFtdLFxuICAgICAgICBlbnRyeVVpZDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zXG4gICAgKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2dnbGVFbnRyeUZvbGRpbmcoZW50cmllcywgZW50cnlVaWQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvbGQgYW4gZW50cnkuXG4gICAgICpcbiAgICAgKiBTZXQgdW5mb2N1c2FibGUgb24gYWxsIGNoaWxkcmVuIG9mIHRoZSBmb2xkZWQgZW50cnkuXG4gICAgICogQ29tcHV0ZSB3aGVuZXZlciB0aGUgY291bnRlciBhbmQgdG9rZW4gaW52YWxpZCBzaG91bGQgYmUgZGlzcGxheWVkIG9uIGdyb3VwcyBhbmQgbGVhdmVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVudHJpZXMgbmF2IHNlbGVjdG9yIGVudHJpZXNcbiAgICAgKiBAcGFyYW0gZW50cnlVaWQgdGhlIGVudHJ5IHVpZCB0byBmb2xkXG4gICAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBmb3IgZm9sZGluZyBvcGVyYXRpb25zXG4gICAgICovXG4gICAgc3RhdGljIGZvbGQ8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgZW50cnlVaWQ6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczogTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9uc1xuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9sZEVudHJ5KGVudHJpZXMsIGVudHJ5VWlkLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbmZvbGQgYW4gZW50cnkuXG4gICAgICpcbiAgICAgKiBTZXQgZm9jdXNhYmxlIG9uIGFsbCBjaGlsZHJlbiBvZiB0aGUgZm9sZGVkIGVudHJ5LlxuICAgICAqIENvbXB1dGUgd2hlbmV2ZXIgdGhlIGNvdW50ZXIgYW5kIHRva2VuIGludmFsaWQgc2hvdWxkIGJlIGRpc3BsYXllZCBvbiBncm91cHMgYW5kIGxlYXZlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnRyaWVzIG5hdiBzZWxlY3RvciBlbnRyaWVzXG4gICAgICogQHBhcmFtIGVudHJ5VWlkIHRoZSBlbnRyeSB1aWQgdG8gdW5mb2xkXG4gICAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBmb3IgZm9sZGluZyBvcGVyYXRpb25zXG4gICAgICovXG4gICAgc3RhdGljIHVuZm9sZDxUIGV4dGVuZHMgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5PihcbiAgICAgICAgZW50cmllczogVFtdLFxuICAgICAgICBlbnRyeVVpZDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zXG4gICAgKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICByZXR1cm4gdGhpcy51bmZvbGRFbnRyeShlbnRyaWVzLCBlbnRyeVVpZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdG9nZ2xlRW50cnlGb2xkaW5nPFQgZXh0ZW5kcyBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnk+KFxuICAgICAgICBlbnRyaWVzOiBUW10sXG4gICAgICAgIGVudHJ5VWlkOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IE5hdlNlbGVjdG9yRm9sZGluZ09wdGlvbnMsXG4gICAgICAgIHBhcmVudEZvbGRlZCA9IGZhbHNlXG4gICAgKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICByZXR1cm4gZW50cmllcy5tYXAoZW50cnkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5KGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS51aWQgPT09IGVudHJ5VWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlZCA9ICFlbnRyeS5mb2xkZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb2xkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvbGRDYXRlZ29yeShlbnRyeSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51bmZvbGRDYXRlZ29yeShlbnRyeSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLnRvZ2dsZUVudHJ5Rm9sZGluZyhlbnRyeS5jaGlsZHJlbiwgZW50cnlVaWQsIG9wdGlvbnMsIGVudHJ5LmZvbGRlZCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cChlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkudWlkID09PSBlbnRyeVVpZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb2xkZWQgPSAhZW50cnkuZm9sZGVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9sZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb2xkR3JvdXAoZW50cnksIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudW5mb2xkR3JvdXAoZW50cnksIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy50b2dnbGVFbnRyeUZvbGRpbmcoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBvcHRpb25zLCBwYXJlbnRGb2xkZWQgfHwgZW50cnkuZm9sZGVkKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9sZGVkID0gIWVudHJ5LmZvbGRlZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvbGRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9sZExlYWYoZW50cnksIG9wdGlvbnMubWluaWZpZWQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudW5mb2xkTGVhZihlbnRyeSwgb3B0aW9ucy5taW5pZmllZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkZvY3VzYWJsZShlbnRyeSwgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZTogb3B0aW9ucy5tdWx0aXBsZU1vZGUgfSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IC4uLmVudHJ5LCBmb2N1c2FibGU6ICFwYXJlbnRGb2xkZWQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9sZEVudHJ5PFQgZXh0ZW5kcyBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnk+KFxuICAgICAgICBlbnRyaWVzOiBUW10sXG4gICAgICAgIGVudHJ5VWlkOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IE5hdlNlbGVjdG9yRm9sZGluZ09wdGlvbnMsXG4gICAgICAgIHBhcmVudEZvbGRlZCA9IGZhbHNlXG4gICAgKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICByZXR1cm4gZW50cmllcy5tYXAoZW50cnkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5KGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS51aWQgPT09IGVudHJ5VWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvbGRDYXRlZ29yeShlbnRyeSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5mb2xkRW50cnkoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBvcHRpb25zLCBlbnRyeS5mb2xkZWQpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9sZEdyb3VwKGVudHJ5LCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogIXBhcmVudEZvbGRlZCxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMuZm9sZEVudHJ5KGVudHJ5LmNoaWxkcmVuLCBlbnRyeVVpZCwgb3B0aW9ucywgcGFyZW50Rm9sZGVkIHx8IGVudHJ5LmZvbGRlZCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS51aWQgPT09IGVudHJ5VWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvbGRMZWFmKGVudHJ5LCBvcHRpb25zLm1pbmlmaWVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkZvY3VzYWJsZShlbnRyeSwgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZTogb3B0aW9ucy5tdWx0aXBsZU1vZGUgfSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IC4uLmVudHJ5LCBmb2N1c2FibGU6ICFwYXJlbnRGb2xkZWQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdW5mb2xkRW50cnk8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgZW50cnlVaWQ6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczogTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9ucyxcbiAgICAgICAgcGFyZW50Rm9sZGVkID0gZmFsc2VcbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIHJldHVybiBlbnRyaWVzLm1hcChlbnRyeSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudW5mb2xkQ2F0ZWdvcnkoZW50cnksIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMudW5mb2xkRW50cnkoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBvcHRpb25zLCBlbnRyeS5mb2xkZWQpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnVpZCA9PT0gZW50cnlVaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudW5mb2xkR3JvdXAoZW50cnksIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMudW5mb2xkRW50cnkoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBvcHRpb25zLCBwYXJlbnRGb2xkZWQgfHwgZW50cnkuZm9sZGVkKSxcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlOiAhcGFyZW50Rm9sZGVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkudWlkID09PSBlbnRyeVVpZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51bmZvbGRMZWFmKGVudHJ5LCBvcHRpb25zLm1pbmlmaWVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkZvY3VzYWJsZShlbnRyeSwgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZTogb3B0aW9ucy5tdWx0aXBsZU1vZGUgfSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IC4uLmVudHJ5LCBmb2N1c2FibGU6ICFwYXJlbnRGb2xkZWQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9sZENhdGVnb3J5KGNhdGVnb3J5OiBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnksIG9wdGlvbnM6IE5hdlNlbGVjdG9yRm9sZGluZ09wdGlvbnMpOiBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICAgICAgICBmb2xkZWQ6IHRydWUsXG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5mb2xkRW50cnkoY2F0ZWdvcnkuY2hpbGRyZW4sIGNhdGVnb3J5LnVpZCwgb3B0aW9ucywgdHJ1ZSkgYXMgKFxuICAgICAgICAgICAgICAgIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZcbiAgICAgICAgICAgICAgICB8IEludGVybmFsTmF2U2VsZWN0b3JHcm91cFxuICAgICAgICAgICAgKVtdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHVuZm9sZENhdGVnb3J5KGNhdGVnb3J5OiBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnksIG9wdGlvbnM6IE5hdlNlbGVjdG9yRm9sZGluZ09wdGlvbnMpOiBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICAgICAgICBmb2xkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMudW5mb2xkRW50cnkoY2F0ZWdvcnkuY2hpbGRyZW4sIGNhdGVnb3J5LnVpZCwgb3B0aW9ucywgZmFsc2UpIGFzIChcbiAgICAgICAgICAgICAgICB8IEludGVybmFsTmF2U2VsZWN0b3JMZWFmXG4gICAgICAgICAgICAgICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXBcbiAgICAgICAgICAgIClbXSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBmb2xkR3JvdXAoZ3JvdXA6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCwgb3B0aW9uczogTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9ucyk6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5ncm91cCxcbiAgICAgICAgICAgIGZvbGRlZDogdHJ1ZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLmZvbGRFbnRyeShncm91cC5jaGlsZHJlbiwgZ3JvdXAudWlkLCBvcHRpb25zLCB0cnVlKSBhcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZltdLFxuICAgICAgICAgICAgZGlzcGxheUNvdW50ZXI6ICEhZ3JvdXAuY291bnRlcixcbiAgICAgICAgICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGdyb3VwLmNoaWxkcmVuLnNvbWUoKHsgZGlzcGxheVRva2VuSW52YWxpZCB9KSA9PiBkaXNwbGF5VG9rZW5JbnZhbGlkKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB1bmZvbGRHcm91cChncm91cDogSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwLCBvcHRpb25zOiBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zKTogSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmdyb3VwLFxuICAgICAgICAgICAgZm9sZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLnVuZm9sZEVudHJ5KGdyb3VwLmNoaWxkcmVuLCBncm91cC51aWQsIG9wdGlvbnMsIGZhbHNlKSBhcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZltdLFxuICAgICAgICAgICAgZGlzcGxheUNvdW50ZXI6IGZhbHNlLFxuICAgICAgICAgICAgZGlzcGxheVRva2VuSW52YWxpZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9sZExlYWYobGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsIG1pbmlmaWVkOiBib29sZWFuKTogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYge1xuICAgICAgICBpZiAoIWxlYWYuZm9sZGFibGUgfHwgbWluaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBsZWFmO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sZWFmLFxuICAgICAgICAgICAgZGlzcGxheUNvdW50ZXI6IGxlYWYuY291bnRlckRpc3BsYXlhYmxlLFxuICAgICAgICAgICAgZm9sZGVkOiB0cnVlLFxuICAgICAgICAgICAgZGV0YWlsczogbGVhZi5kZXRhaWxzLm1hcChkZXRhaWwgPT4gKHsgLi4uZGV0YWlsLCBmb2N1c2FibGU6IGZhbHNlIH0pKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB1bmZvbGRMZWFmKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmLCBtaW5pZmllZDogYm9vbGVhbik6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmIHtcbiAgICAgICAgaWYgKCFsZWFmLmZvbGRhYmxlIHx8IG1pbmlmaWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVhZjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubGVhZixcbiAgICAgICAgICAgIGRpc3BsYXlDb3VudGVyOiBmYWxzZSxcbiAgICAgICAgICAgIGZvbGRlZDogZmFsc2UsXG4gICAgICAgICAgICBkZXRhaWxzOiBsZWFmLmRldGFpbHMubWFwKChkZXRhaWwsIGlkeCkgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5kZXRhaWwsXG4gICAgICAgICAgICAgICAgZm9jdXNhYmxlOiBpZHggPCBsZWFmLnZpZXdNb3JlRGV0YWlsc0Rpc3BsYXllZExpbWl0ICYmICFkZXRhaWwuZGlzcGxheUVycm9yLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVuZm9sZHMgYWxsIHBhcmVudHMgb2YgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIHVpZCB1bnRpbCB0aGUgcm9vdC5cbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqIEBwYXJhbSBlbnRyeVVpZCB0aGUgZW50cnkgdWlkIHRvIHVuZm9sZCBwYXJlbnRzIGZvclxuICAgICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgZm9yIGZvbGRpbmcgb3BlcmF0aW9uc1xuICAgICAqL1xuICAgIHN0YXRpYyB1bmZvbGRQYXJlbnRzT2ZFbnRyeTxUIGV4dGVuZHMgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5PihcbiAgICAgICAgZW50cmllczogVFtdLFxuICAgICAgICBlbnRyeVVpZDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zXG4gICAgKTogeyBmb3VuZDogYm9vbGVhbjsgZW50cmllczogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10gfSB7XG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBuZXdFbnRyaWVzID0gZW50cmllcy5tYXAoZW50cnkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5KGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5Rm91bmQgPSBlbnRyeS5jaGlsZHJlbi5zb21lKCh7IHVpZCB9KSA9PiB1aWQgPT09IGVudHJ5VWlkKTtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnlGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVuZm9sZENhdGVnb3J5KGVudHJ5LCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy51bmZvbGRQYXJlbnRzT2ZFbnRyeShlbnRyeS5jaGlsZHJlbiwgZW50cnlVaWQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGZvdW5kIHx8PSByZXN1bHQuZm91bmQ7XG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQuZW50cmllcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cChlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeUZvdW5kID0gZW50cnkuY2hpbGRyZW4uc29tZSgoeyB1aWQgfSkgPT4gdWlkID09PSBlbnRyeVVpZCk7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi50aGlzLnVuZm9sZEdyb3VwKGVudHJ5LCBvcHRpb25zKSwgZm9jdXNhYmxlOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudW5mb2xkUGFyZW50c09mRW50cnkoZW50cnkuY2hpbGRyZW4sIGVudHJ5VWlkLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBmb3VuZCB8fD0gcmVzdWx0LmZvdW5kO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogcmVzdWx0LmVudHJpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb2xkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeUZvdW5kID0gZW50cnkuZGV0YWlscy5zb21lKCh7IHVpZCB9KSA9PiB1aWQgPT09IGVudHJ5VWlkKTtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnlGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLnRoaXMudW5mb2xkTGVhZihlbnRyeSwgb3B0aW9ucy5taW5pZmllZCksIGZvY3VzYWJsZTogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlbnRyeTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IGZvdW5kLCBlbnRyaWVzOiBuZXdFbnRyaWVzIH07XG4gICAgfVxufVxuIl19
@@ -33,7 +33,11 @@ export class NavSelectorMinifying {
33
33
  static compute(entries, multipleMode, minified, parent = null) {
34
34
  return entries.map(entry => {
35
35
  if (isInternalNavSelectorEntryALeafDetails(entry)) {
36
- return { ...entry, focusable: !minified };
36
+ return {
37
+ ...entry,
38
+ focusable: !minified,
39
+ accessibility: { ...entry.accessibility, tabIndex: minified ? -1 : entry.accessibility.tabIndex },
40
+ };
37
41
  }
38
42
  if (isInternalNavSelectorEntryANode(entry)) {
39
43
  return {
@@ -52,4 +56,4 @@ export class NavSelectorMinifying {
52
56
  });
53
57
  }
54
58
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLm1pbmlmeWluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL3V0aWxzL25hdi1zZWxlY3Rvci5taW5pZnlpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILHNDQUFzQyxFQUN0QywrQkFBK0IsR0FDbEMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRTs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFDN0I7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBcUMsT0FBWSxFQUFFLFlBQXFCO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFxQyxPQUFZLEVBQUUsWUFBcUI7UUFDakYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUFPLENBQ2xCLE9BQVksRUFDWixZQUFxQixFQUNyQixRQUFpQixFQUNqQixTQUF3RSxJQUFJO1FBRTVFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixJQUFJLHNDQUFzQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsSUFBSSwrQkFBK0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxPQUFPO29CQUNILEdBQUcsS0FBSztvQkFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDO2lCQUN4RSxDQUFDO1lBQ04sQ0FBQztZQUVELE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLFNBQVMsRUFBRSx3Q0FBd0MsQ0FBQyxLQUFLLEVBQUU7b0JBQ3ZELFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQUk7b0JBQ3JDLFlBQVk7aUJBQ2YsQ0FBQztnQkFDRixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7YUFDL0QsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JHcm91cCxcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRGV0YWlscyxcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlLFxufSBmcm9tICcuLi9uYXYtc2VsZWN0b3InO1xuaW1wb3J0IHsgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkZvY3VzYWJsZSB9IGZyb20gJy4uL3V0aWxzL2xlYWYudXRpbHMnO1xuXG4vKipcbiAqIE5hdlNlbGVjdG9yTWluaWZ5aW5nIGlzIGEgdXRpbGl0eSBjbGFzcyB0aGF0IHByb3ZpZGVzIG1ldGhvZHMgdG8gYXBwbHkgcnVsZXMgb24gZW50cmllcyB3aGVuIG1pbmlmeWluZyBvciBleHBhbmRlZCBuYXYgc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3Rvck1pbmlmeWluZyB7XG4gICAgLyoqXG4gICAgICogV2hlbiBtaW5pZnlpbmcgdGhlIG5hdiBzZWxlY3RvciwgY29tcHV0ZSB0aGUgZm9jdXNhYmxlIHN0YXRlIG9mIHRoZSBlbnRyaWVzLlxuICAgICAqXG4gICAgICogTGVhZiBhcmUgbm90IGZvY3VzYWJsZSBpbiBhbnkgZXJyb3Igc3RhdGUgd2hlbiBtaW5pZmllZC5cbiAgICAgKiBEZXRhaWwgYXJlIG5vdCBmb2N1c2FibGUgd2hlbiBtaW5pZmllZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnRyaWVzIFRoZSBlbnRyaWVzIHRvIG1pbmlmeS5cbiAgICAgKiBAcGFyYW0gbXVsdGlwbGVNb2RlIHRvIHVwZGF0ZSB0aGUgZm9jdXNhYmxlIHN0YXRlIG9mIGxlYXZlcyBjb3JyZWN0bHkuXG4gICAgICogQHJldHVybnMgVGhlIG1vZGlmaWVkIGVudHJpZXMuXG4gICAgICovXG4gICAgc3RhdGljIG1pbmlmeTxUIGV4dGVuZHMgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5PihlbnRyaWVzOiBUW10sIG11bHRpcGxlTW9kZTogYm9vbGVhbik6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZShlbnRyaWVzLCBtdWx0aXBsZU1vZGUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZW4gZXhwYW5kaW5nIHRoZSBuYXYgc2VsZWN0b3IsIGNvbXB1dGUgdGhlIGZvY3VzYWJsZSBzdGF0ZSBvZiB0aGUgZW50cmllcy5cbiAgICAgKlxuICAgICAqIExlYWYgYXJlIG5vdCBmb2N1c2FibGUgaW4gZGlzYWJsZWQgc3RhdGUgd2hlbiBleHBhbmRlZC5cbiAgICAgKiBEZXRhaWwgYXJlIGZvY3VzYWJsZSB3aGVuIGV4cGFuZGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVudHJpZXMgVGhlIGVudHJpZXMgdG8gbWluaWZ5LlxuICAgICAqIEBwYXJhbSBtdWx0aXBsZU1vZGUgdG8gdXBkYXRlIHRoZSBmb2N1c2FibGUgc3RhdGUgb2YgbGVhdmVzIGFuZCBkZXRhaWxzIGNvcnJlY3RseS5cbiAgICAgKiBAcmV0dXJucyBUaGUgbW9kaWZpZWQgZW50cmllcy5cbiAgICAgKi9cbiAgICBzdGF0aWMgZXhwYW5kPFQgZXh0ZW5kcyBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnk+KGVudHJpZXM6IFRbXSwgbXVsdGlwbGVNb2RlOiBib29sZWFuKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlKGVudHJpZXMsIG11bHRpcGxlTW9kZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNvbXB1dGU8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgbXVsdGlwbGVNb2RlOiBib29sZWFuLFxuICAgICAgICBtaW5pZmllZDogYm9vbGVhbixcbiAgICAgICAgcGFyZW50OiBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnkgfCBudWxsID0gbnVsbFxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRGV0YWlscyhlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5lbnRyeSwgZm9jdXNhYmxlOiAhbWluaWZpZWQgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5jb21wdXRlKGVudHJ5LmNoaWxkcmVuLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkLCBlbnRyeSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICBmb2N1c2FibGU6IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZGb2N1c2FibGUoZW50cnksIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Rm9sZGVkOiBwYXJlbnQ/LmZvbGRlZCA9PT0gdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVNb2RlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGRldGFpbHM6IHRoaXMuY29tcHV0ZShlbnRyeS5kZXRhaWxzLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLm1pbmlmeWluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL3V0aWxzL25hdi1zZWxlY3Rvci5taW5pZnlpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILHNDQUFzQyxFQUN0QywrQkFBK0IsR0FDbEMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRTs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFDN0I7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBcUMsT0FBWSxFQUFFLFlBQXFCO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFxQyxPQUFZLEVBQUUsWUFBcUI7UUFDakYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUFPLENBQ2xCLE9BQVksRUFDWixZQUFxQixFQUNyQixRQUFpQixFQUNqQixTQUF3RSxJQUFJO1FBRTVFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixJQUFJLHNDQUFzQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE9BQU87b0JBQ0gsR0FBRyxLQUFLO29CQUNSLFNBQVMsRUFBRSxDQUFDLFFBQVE7b0JBQ3BCLGFBQWEsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7aUJBQ3BHLENBQUM7WUFDTixDQUFDO1lBQ0QsSUFBSSwrQkFBK0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxPQUFPO29CQUNILEdBQUcsS0FBSztvQkFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDO2lCQUN4RSxDQUFDO1lBQ04sQ0FBQztZQUVELE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLFNBQVMsRUFBRSx3Q0FBd0MsQ0FBQyxLQUFLLEVBQUU7b0JBQ3ZELFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQUk7b0JBQ3JDLFlBQVk7aUJBQ2YsQ0FBQztnQkFDRixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7YUFDL0QsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JHcm91cCxcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRGV0YWlscyxcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlLFxufSBmcm9tICcuLi9uYXYtc2VsZWN0b3InO1xuaW1wb3J0IHsgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkZvY3VzYWJsZSB9IGZyb20gJy4uL3V0aWxzL2xlYWYudXRpbHMnO1xuXG4vKipcbiAqIE5hdlNlbGVjdG9yTWluaWZ5aW5nIGlzIGEgdXRpbGl0eSBjbGFzcyB0aGF0IHByb3ZpZGVzIG1ldGhvZHMgdG8gYXBwbHkgcnVsZXMgb24gZW50cmllcyB3aGVuIG1pbmlmeWluZyBvciBleHBhbmRlZCBuYXYgc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3Rvck1pbmlmeWluZyB7XG4gICAgLyoqXG4gICAgICogV2hlbiBtaW5pZnlpbmcgdGhlIG5hdiBzZWxlY3RvciwgY29tcHV0ZSB0aGUgZm9jdXNhYmxlIHN0YXRlIG9mIHRoZSBlbnRyaWVzLlxuICAgICAqXG4gICAgICogTGVhZiBhcmUgbm90IGZvY3VzYWJsZSBpbiBhbnkgZXJyb3Igc3RhdGUgd2hlbiBtaW5pZmllZC5cbiAgICAgKiBEZXRhaWwgYXJlIG5vdCBmb2N1c2FibGUgd2hlbiBtaW5pZmllZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnRyaWVzIFRoZSBlbnRyaWVzIHRvIG1pbmlmeS5cbiAgICAgKiBAcGFyYW0gbXVsdGlwbGVNb2RlIHRvIHVwZGF0ZSB0aGUgZm9jdXNhYmxlIHN0YXRlIG9mIGxlYXZlcyBjb3JyZWN0bHkuXG4gICAgICogQHJldHVybnMgVGhlIG1vZGlmaWVkIGVudHJpZXMuXG4gICAgICovXG4gICAgc3RhdGljIG1pbmlmeTxUIGV4dGVuZHMgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5PihlbnRyaWVzOiBUW10sIG11bHRpcGxlTW9kZTogYm9vbGVhbik6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZShlbnRyaWVzLCBtdWx0aXBsZU1vZGUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZW4gZXhwYW5kaW5nIHRoZSBuYXYgc2VsZWN0b3IsIGNvbXB1dGUgdGhlIGZvY3VzYWJsZSBzdGF0ZSBvZiB0aGUgZW50cmllcy5cbiAgICAgKlxuICAgICAqIExlYWYgYXJlIG5vdCBmb2N1c2FibGUgaW4gZGlzYWJsZWQgc3RhdGUgd2hlbiBleHBhbmRlZC5cbiAgICAgKiBEZXRhaWwgYXJlIGZvY3VzYWJsZSB3aGVuIGV4cGFuZGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVudHJpZXMgVGhlIGVudHJpZXMgdG8gbWluaWZ5LlxuICAgICAqIEBwYXJhbSBtdWx0aXBsZU1vZGUgdG8gdXBkYXRlIHRoZSBmb2N1c2FibGUgc3RhdGUgb2YgbGVhdmVzIGFuZCBkZXRhaWxzIGNvcnJlY3RseS5cbiAgICAgKiBAcmV0dXJucyBUaGUgbW9kaWZpZWQgZW50cmllcy5cbiAgICAgKi9cbiAgICBzdGF0aWMgZXhwYW5kPFQgZXh0ZW5kcyBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnk+KGVudHJpZXM6IFRbXSwgbXVsdGlwbGVNb2RlOiBib29sZWFuKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlKGVudHJpZXMsIG11bHRpcGxlTW9kZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNvbXB1dGU8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oXG4gICAgICAgIGVudHJpZXM6IFRbXSxcbiAgICAgICAgbXVsdGlwbGVNb2RlOiBib29sZWFuLFxuICAgICAgICBtaW5pZmllZDogYm9vbGVhbixcbiAgICAgICAgcGFyZW50OiBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnkgfCBudWxsID0gbnVsbFxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRGV0YWlscyhlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlOiAhbWluaWZpZWQsXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHk6IHsgLi4uZW50cnkuYWNjZXNzaWJpbGl0eSwgdGFiSW5kZXg6IG1pbmlmaWVkID8gLTEgOiBlbnRyeS5hY2Nlc3NpYmlsaXR5LnRhYkluZGV4IH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5jb21wdXRlKGVudHJ5LmNoaWxkcmVuLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkLCBlbnRyeSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICBmb2N1c2FibGU6IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZGb2N1c2FibGUoZW50cnksIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Rm9sZGVkOiBwYXJlbnQ/LmZvbGRlZCA9PT0gdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVNb2RlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGRldGFpbHM6IHRoaXMuY29tcHV0ZShlbnRyeS5kZXRhaWxzLCBtdWx0aXBsZU1vZGUsIG1pbmlmaWVkKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -289,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
289
289
  type: HostListener,
290
290
  args: ['click']
291
291
  }] } });
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcG9wbWVudS9zcmMvcG9wbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFHVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FJVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWV2RCxNQUFNLE9BQU8sZ0JBQWdCO0lBNkU4QjtJQUM1QztJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBakZILGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUMzQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsV0FBVyxDQUFxQjtJQUNoQyxhQUFhLENBQXFCO0lBQ2xDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxXQUFXLEdBQVksSUFBSSxDQUFDO0lBQzVCLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsVUFBVSxDQUFxQjtJQUMvQixNQUFNLENBQXFCO0lBQzNCLE9BQU8sQ0FBdUQ7SUFDOUQsU0FBUyxHQUFXLFFBQVEsQ0FBQztJQUM3QixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ0osWUFBWSxDQUFvQjtJQUMzQyxRQUFRLENBQTRDO0lBQ3BELE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNkLFVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN4RCxVQUFV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USxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjtxTEE1RXBDLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNjLFlBQVk7c0JBQS9CLEtBQUs7dUJBQUMsV0FBVztnQkFDVCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQWtCTSxPQUFPO3NCQUFuQixLQUFLO2dCQXNFTixjQUFjO3NCQURiLE1BQU07Z0JBS0gsUUFBUTtzQkFEWCxLQUFLO2dCQTRHTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXBwbGljYXRpb25SZWYsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgUG9wbWVudU9wdGlvbnMgfSBmcm9tICcuL3BvcG1lbnUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9wbWVudU9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wb3BtZW51LW9wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQb3BtZW51Q29tcG9uZW50IH0gZnJvbSAnLi9wb3BtZW51LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRDb21wb25lbnQge1xuICAgIGRhdGE6IGFueTtcbiAgICBzaG93OiBib29sZWFuO1xuICAgIGNsb3NlOiBib29sZWFuO1xuICAgIG1lbnVDbG9zZWQ6IGFueTtcbiAgICBtZW51T3BlbmVkOiBhbnk7XG4gICAgbWVudU9wZW46IGJvb2xlYW47XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwUG9wbWVudV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFBvcG1lbnVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYXBQb3BtZW51Qm9yZGVyID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXBQb3BtZW51RGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhcFBvcG1lbnVCYWNrZ3JvdW5kID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBhcnJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFycm93T2Zmc2V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgYXJyb3dQb3NpdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGNsb3NlID0gZmFsc2U7XG4gICAgQElucHV0KCkgaGFzQmFja2Ryb3A6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGJhY2tkcm9wQ2xhc3MgPSAnJztcbiAgICBASW5wdXQoKSBwYW5lbENsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgb2Zmc2V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgb2Zmc2V0czogeyBkaXN0YW5jZT86IG51bWJlcjsgc2tpZGRpbmc/OiBudW1iZXIgfSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwbGFjZW1lbnQ6IHN0cmluZyA9ICdib3R0b20nO1xuICAgIEBJbnB1dCgpIHBvaW50ZXIgPSB0cnVlO1xuICAgIEBJbnB1dCgnYXBQb3BtZW51JykgcG9wTWVudVZhbHVlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogeyB0b3A6IG51bWJlcjsgbGVmdDogbnVtYmVyIH0gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcm91bmRlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNoYWRvdyA9IGZhbHNlO1xuICAgIEBPdXRwdXQoKSBtZW51Q2xvc2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBtZW51T3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY29tcG9uZW50RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICAgIGhpZGVUaW1lb3V0SWQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBkZXN0cm95VGltZW91dElkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgY3JlYXRlVGltZW91dElkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgc2hvd1RpbWVvdXRJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxhbnk+O1xuICAgIGVsZW1lbnRQb3NpdGlvbjogYW55O1xuICAgIGNvbXBvbmVudFN1YnNjcmliZTogYW55O1xuICAgIF9kZWZhdWx0T3B0aW9uczogYW55O1xuXG4gICAgX29wdGlvbnM6IFBvcG1lbnVPcHRpb25zID0ge307XG5cbiAgICBnZXQgb3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG9wdGlvbnModmFsdWU6IFBvcG1lbnVPcHRpb25zKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGRlc3Ryb3lEZWxheSgpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmdldEhpZGVEZWxheSgpKSArIE51bWJlcih0aGlzLm9wdGlvbnNbJ2FuaW1hdGlvbkR1cmF0aW9uJ10pO1xuICAgIH1cblxuICAgIGdldCBpc0Rpc3BsYXlPbkhvdmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnNbJ3RyaWdnZXInXSAhPT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzVG9vbHRpcERlc3Ryb3llZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmICYmIHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3LmRlc3Ryb3llZDtcbiAgICB9XG5cbiAgICBnZXQgdG9vbHRpcFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zWydwb3NpdGlvbiddKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zWydwb3NpdGlvbiddO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUG9wbWVudU9wdGlvbnNTZXJ2aWNlKSBwcml2YXRlIGluaXRPcHRpb25zOiBQb3BtZW51T3B0aW9ucyxcbiAgICAgICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge31cblxuICAgIGFwcGVuZENvbXBvbmVudFRvQm9keShjb21wb25lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmRhdGEgPSB7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wb3BNZW51VmFsdWUsXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnRQb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb24sXG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudEVsZW1lbnQgPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbXBvbmVudEVsZW1lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmliZSA9ICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLm1lbnVDbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMubWVudU9wZW4gPSAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5tZW51T3BlbjtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaWJlID0gKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkubWVudU9wZW5lZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVPcGVuKCk7XG4gICAgICAgICAgICB0aGlzLm1lbnVPcGVuID0gKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkubWVudU9wZW47XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgI21lbnVPcGVuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBtZW51T3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI21lbnVPcGVuO1xuICAgIH1cblxuICAgIHNldCBtZW51T3BlbihtZW51T3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm1lbnVPcGVuQ2hhbmdlLmVtaXQobWVudU9wZW4pO1xuICAgICAgICB0aGlzLiNtZW51T3BlbiA9IG1lbnVPcGVuO1xuICAgICAgICBpZiAodGhpcy4jbWVudU9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BvcG1lbnUtb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncG9wbWVudS1jbG9zZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncG9wbWVudS1vcGVuJyk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwb3BtZW51LWNsb3NlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDbG9zZSgpIHtcbiAgICAgICAgdGhpcy5tZW51Q2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcGVuKCkge1xuICAgICAgICB0aGlzLm1lbnVPcGVuZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIGFwcGx5T3B0aW9uc0RlZmF1bHQoZGVmYXVsdE9wdGlvbnM6IFBvcG1lbnVPcHRpb25zLCBvcHRpb25zOiBQb3BtZW51T3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgdGhpcy5pbml0T3B0aW9ucyB8fCB7fSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2xlYXJUaW1lb3V0cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3JlYXRlVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jcmVhdGVUaW1lb3V0SWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWVvdXRJZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc3Ryb3lUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRlc3Ryb3lUaW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlUG9wTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFwcGVuZENvbXBvbmVudFRvQm9keShQb3BtZW51Q29tcG9uZW50KTtcbiAgICAgICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG5cbiAgICAgICAgdGhpcy5zaG93VGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcEVsZW0oKTtcbiAgICAgICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG4gICAgfVxuXG4gICAgZ2V0RWxlbWVudFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIGdldEhpZGVEZWxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1snaGlkZURlbGF5J107XG4gICAgfVxuXG4gICAgZ2V0UHJvcGVydGllcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGxldCBwcm9wZXJ0aWVzOiBhbnkgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgaWYgKHByb3AgIT09ICdvcHRpb25zJyAmJiBwcm9wICE9PSAndG9vbHRpcFZhbHVlJykge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbcHJvcF0gPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnb3B0aW9ucycpIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgZ2V0U2hvd0RlbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zWydzaG93RGVsYXknXTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnBvaW50ZXIpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wb2ludGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5jbG9zZSAmJiBjaGFuZ2VzLmNsb3NlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5oaWRlVG9vbHRpcEVsZW0oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGFuZ2VkT3B0aW9ucyA9IHRoaXMuZ2V0UHJvcGVydGllcyhjaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5hcHBseU9wdGlvbnNEZWZhdWx0KHRoaXMub3B0aW9ucyAmJiBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMpLmxlbmd0aCA+IDAgPyB0aGlzLm9wdGlvbnMgOiBkZWZhdWx0T3B0aW9ucywgY2hhbmdlZE9wdGlvbnMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb2ludGVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmFwUG9wbWVudURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgIHRoaXMuY2xvc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdygpIHtcbiAgICAgICAgdGhpcy5nZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVQb3BNZW51KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb29sdGlwRWxlbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1Rvb2x0aXBFbGVtKCk6IHZvaWQge1xuICAgICAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5kYXRhID0ge1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMucG9wTWVudVZhbHVlLFxuICAgICAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50UG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uLFxuICAgICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcbiAgICAgICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc2hvdyA9IHRydWU7XG4gICAgfVxuXG4gICAgaGlkZVRvb2x0aXBFbGVtKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmNsb3NlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcG9wbWVudS9zcmMvcG9wbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFHVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FJVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQStCdkQsTUFBTSxPQUFPLGdCQUFnQjtJQThFOEI7SUFDNUM7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQWxGSCxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUMxQixtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDM0IsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLFdBQVcsQ0FBcUI7SUFDaEMsYUFBYSxDQUFtQztJQUNoRCxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsV0FBVyxHQUFZLElBQUksQ0FBQztJQUM1QixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ25CLFVBQVUsQ0FBcUI7SUFDL0IsTUFBTSxDQUFxQjtJQUMzQixPQUFPLENBQXVEO0lBQzlELFNBQVMsR0FBcUIsUUFBUSxDQUFDO0lBRXZDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDSixZQUFZLENBQW9CO0lBQzNDLFFBQVEsQ0FBNEM7SUFDcEQsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2QsVUFBVSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBQzFELFVB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K0VRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCO3FMQTdFcEMsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2MsWUFBWTtzQkFBL0IsS0FBSzt1QkFBQyxXQUFXO2dCQUNULFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBa0JNLE9BQU87c0JBQW5CLEtBQUs7Z0JBc0VOLGNBQWM7c0JBRGIsTUFBTTtnQkFLSCxRQUFRO3NCQURYLEtBQUs7Z0JBNEdOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZhdWx0T3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBQb3BtZW51T3B0aW9ucyB9IGZyb20gJy4vcG9wbWVudS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb3BtZW51T3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3BvcG1lbnUtb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFBvcG1lbnVDb21wb25lbnQgfSBmcm9tICcuL3BvcG1lbnUuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBBZENvbXBvbmVudCB7XG4gICAgZGF0YTogYW55O1xuICAgIHNob3c6IGJvb2xlYW47XG4gICAgY2xvc2U6IGJvb2xlYW47XG4gICAgbWVudUNsb3NlZDogYW55O1xuICAgIG1lbnVPcGVuZWQ6IGFueTtcbiAgICBtZW51T3BlbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUG9wbWVudVBsYWNlbWVudCA9XG4gICAgfCAnYm90dG9tJ1xuICAgIHwgJ3RvcCdcbiAgICB8ICdsZWZ0J1xuICAgIHwgJ3JpZ2h0J1xuICAgIHwgJ2JvdHRvbSByaWdodCdcbiAgICB8ICdib3R0b20gbGVmdCdcbiAgICB8ICdyaWdodCBib3R0b20nXG4gICAgfCAnbGVmdCBib3R0b20nXG4gICAgfCAndG9wIHJpZ2h0J1xuICAgIHwgJ3RvcCBsZWZ0J1xuICAgIHwgJ3JpZ2h0IHRvcCdcbiAgICB8ICdsZWZ0IHRvcCc7XG5cbmV4cG9ydCB0eXBlIFBvcG1lbnVBcnJvd1Bvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwUG9wbWVudV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFBvcG1lbnVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYXBQb3BtZW51Qm9yZGVyID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXBQb3BtZW51RGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhcFBvcG1lbnVCYWNrZ3JvdW5kID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBhcnJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFycm93T2Zmc2V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgYXJyb3dQb3NpdGlvbjogUG9wbWVudUFycm93UG9zaXRpb24gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgY2xvc2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBoYXNCYWNrZHJvcDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgYmFja2Ryb3BDbGFzcyA9ICcnO1xuICAgIEBJbnB1dCgpIHBhbmVsQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBvZmZzZXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBvZmZzZXRzOiB7IGRpc3RhbmNlPzogbnVtYmVyOyBza2lkZGluZz86IG51bWJlciB9IHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogUG9wbWVudVBsYWNlbWVudCA9ICdib3R0b20nO1xuXG4gICAgQElucHV0KCkgcG9pbnRlciA9IHRydWU7XG4gICAgQElucHV0KCdhcFBvcG1lbnUnKSBwb3BNZW51VmFsdWUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSByb3VuZGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hhZG93ID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIG1lbnVDbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudU9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgY29tcG9uZW50RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICAgIGhpZGVUaW1lb3V0SWQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBkZXN0cm95VGltZW91dElkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgY3JlYXRlVGltZW91dElkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgc2hvd1RpbWVvdXRJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxhbnk+O1xuICAgIGVsZW1lbnRQb3NpdGlvbjogYW55O1xuICAgIGNvbXBvbmVudFN1YnNjcmliZTogYW55O1xuICAgIF9kZWZhdWx0T3B0aW9uczogYW55O1xuXG4gICAgX29wdGlvbnM6IFBvcG1lbnVPcHRpb25zID0ge307XG5cbiAgICBnZXQgb3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG9wdGlvbnModmFsdWU6IFBvcG1lbnVPcHRpb25zKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGRlc3Ryb3lEZWxheSgpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmdldEhpZGVEZWxheSgpKSArIE51bWJlcih0aGlzLm9wdGlvbnNbJ2FuaW1hdGlvbkR1cmF0aW9uJ10pO1xuICAgIH1cblxuICAgIGdldCBpc0Rpc3BsYXlPbkhvdmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnNbJ3RyaWdnZXInXSAhPT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzVG9vbHRpcERlc3Ryb3llZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmICYmIHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3LmRlc3Ryb3llZDtcbiAgICB9XG5cbiAgICBnZXQgdG9vbHRpcFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zWydwb3NpdGlvbiddKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zWydwb3NpdGlvbiddO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUG9wbWVudU9wdGlvbnNTZXJ2aWNlKSBwcml2YXRlIGluaXRPcHRpb25zOiBQb3BtZW51T3B0aW9ucyxcbiAgICAgICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge31cblxuICAgIGFwcGVuZENvbXBvbmVudFRvQm9keShjb21wb25lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmRhdGEgPSB7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wb3BNZW51VmFsdWUsXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnRQb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb24sXG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudEVsZW1lbnQgPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbXBvbmVudEVsZW1lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmliZSA9ICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLm1lbnVDbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMubWVudU9wZW4gPSAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5tZW51T3BlbjtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaWJlID0gKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkubWVudU9wZW5lZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVPcGVuKCk7XG4gICAgICAgICAgICB0aGlzLm1lbnVPcGVuID0gKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkubWVudU9wZW47XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIG1lbnVPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgI21lbnVPcGVuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBtZW51T3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI21lbnVPcGVuO1xuICAgIH1cblxuICAgIHNldCBtZW51T3BlbihtZW51T3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm1lbnVPcGVuQ2hhbmdlLmVtaXQobWVudU9wZW4pO1xuICAgICAgICB0aGlzLiNtZW51T3BlbiA9IG1lbnVPcGVuO1xuICAgICAgICBpZiAodGhpcy4jbWVudU9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BvcG1lbnUtb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncG9wbWVudS1jbG9zZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncG9wbWVudS1vcGVuJyk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwb3BtZW51LWNsb3NlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDbG9zZSgpIHtcbiAgICAgICAgdGhpcy5tZW51Q2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcGVuKCkge1xuICAgICAgICB0aGlzLm1lbnVPcGVuZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIGFwcGx5T3B0aW9uc0RlZmF1bHQoZGVmYXVsdE9wdGlvbnM6IFBvcG1lbnVPcHRpb25zLCBvcHRpb25zOiBQb3BtZW51T3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgdGhpcy5pbml0T3B0aW9ucyB8fCB7fSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2xlYXJUaW1lb3V0cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3JlYXRlVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jcmVhdGVUaW1lb3V0SWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWVvdXRJZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc3Ryb3lUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRlc3Ryb3lUaW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlUG9wTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFwcGVuZENvbXBvbmVudFRvQm9keShQb3BtZW51Q29tcG9uZW50KTtcbiAgICAgICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG5cbiAgICAgICAgdGhpcy5zaG93VGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcEVsZW0oKTtcbiAgICAgICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG4gICAgfVxuXG4gICAgZ2V0RWxlbWVudFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIGdldEhpZGVEZWxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1snaGlkZURlbGF5J107XG4gICAgfVxuXG4gICAgZ2V0UHJvcGVydGllcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGxldCBwcm9wZXJ0aWVzOiBhbnkgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgaWYgKHByb3AgIT09ICdvcHRpb25zJyAmJiBwcm9wICE9PSAndG9vbHRpcFZhbHVlJykge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbcHJvcF0gPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnb3B0aW9ucycpIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgZ2V0U2hvd0RlbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zWydzaG93RGVsYXknXTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnBvaW50ZXIpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wb2ludGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5jbG9zZSAmJiBjaGFuZ2VzLmNsb3NlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5oaWRlVG9vbHRpcEVsZW0oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGFuZ2VkT3B0aW9ucyA9IHRoaXMuZ2V0UHJvcGVydGllcyhjaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5hcHBseU9wdGlvbnNEZWZhdWx0KHRoaXMub3B0aW9ucyAmJiBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMpLmxlbmd0aCA+IDAgPyB0aGlzLm9wdGlvbnMgOiBkZWZhdWx0T3B0aW9ucywgY2hhbmdlZE9wdGlvbnMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb2ludGVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lbnVPcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmFwUG9wbWVudURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgIHRoaXMuY2xvc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdygpIHtcbiAgICAgICAgdGhpcy5nZXRFbGVtZW50UG9zaXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVQb3BNZW51KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb29sdGlwRWxlbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1Rvb2x0aXBFbGVtKCk6IHZvaWQge1xuICAgICAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5kYXRhID0ge1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMucG9wTWVudVZhbHVlLFxuICAgICAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50UG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uLFxuICAgICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcbiAgICAgICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc2hvdyA9IHRydWU7XG4gICAgfVxuXG4gICAgaGlkZVRvb2x0aXBFbGVtKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmNsb3NlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -16,7 +16,7 @@ export class DropdownItemMultipleOneLineComponent {
16
16
  badgeText;
17
17
  dividerEnabled = false;
18
18
  onlyEnabled = false;
19
- onlyText;
19
+ onlyText = 'Only';
20
20
  isFeatureLocked = input(false);
21
21
  roundedAvatar = input(true);
22
22
  selectOnly = new EventEmitter();
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
72
72
  type: HostListener,
73
73
  args: ['click', ['$event']]
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS1tdWx0aXBsZS1vbmUtbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc2VsZWN0L3NyYy9kcm9wZG93bi1pdGVtLW11bHRpcGxlLW9uZS1saW5lL2Ryb3Bkb3duLWl0ZW0tbXVsdGlwbGUtb25lLWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NlbGVjdC9zcmMvZHJvcGRvd24taXRlbS1tdWx0aXBsZS1vbmUtbGluZS9kcm9wZG93bi1pdGVtLW11bHRpcGxlLW9uZS1saW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM1QyxLQUFLLEVBQUUsTUFBTSxFQUNiLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDOztBQVd2QixNQUFNLE9BQU8sb0NBQW9DO0lBQ2xCLElBQUksQ0FBVTtJQUNkLFFBQVEsQ0FBVztJQUNuQixNQUFNLENBQVU7SUFDbEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFVO0lBQ2xCLGVBQWUsQ0FBVTtJQUN6QixTQUFTLENBQVU7SUFDbkIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLFFBQVEsQ0FBVTtJQUMzQixlQUFlLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbEIsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDaEQsb0JBQW9CLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFRixRQUFRLENBQXFCO0lBRXhCLE9BQU8sQ0FBQyxNQUFrQjtRQUN6RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7dUdBOUJRLG9DQUFvQzsyRkFBcEMsb0NBQW9DLDIvREFrQmxDLGlCQUFpQixnREMxQ2hDLG1yREF3REEsa1VEbENjLGVBQWUsc0hBQUUsaUJBQWlCLHdNQUFFLGVBQWUsNk1BQUUsY0FBYyx3RUFBRSxnQkFBZ0I7OzJGQUV0RixvQ0FBb0M7a0JBVGhELFNBQVM7K0JBQ0ksb0NBQW9DLGNBR2xDLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7OEJBR3ZHLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFFBQVE7c0JBQWxDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLE1BQU07c0JBQWhDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUksVUFBVTtzQkFBbkIsTUFBTTtnQkFHdUIsUUFBUTtzQkFBckMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRU8sT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2NoZWNrYm94JztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3ltYm9sQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcblxuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCxcbiAgICBpbnB1dCwgT3V0cHV0LFxuICAgIG91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLWRyb3Bkb3duLWl0ZW0tbXVsdGlwbGUtb25lLWxpbmUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1pdGVtLW11bHRpcGxlLW9uZS1saW5lLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1pdGVtLW11bHRpcGxlLW9uZS1saW5lLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtTeW1ib2xDb21wb25lbnQsIENoZWNrYm94Q29tcG9uZW50LCBBdmF0YXJDb21wb25lbnQsIEJhZGdlQ29tcG9uZW50LCBUb29sdGlwRGlyZWN0aXZlLCBTeW1ib2xDb21wb25lbnQsIFN5bWJvbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duSXRlbU11bHRpcGxlT25lTGluZUNvbXBvbmVudCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGV4dCE6IHN0cmluZztcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZWxlY3RlZCE6IGJvb2xlYW47XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaHRtbElkITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXZhdGFyVXJsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN5bWJvbElkPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkVG9vbHRpcD86IHN0cmluZztcbiAgICBASW5wdXQoKSBiYWRnZVRleHQ/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGl2aWRlckVuYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBvbmx5RW5hYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG9ubHlUZXh0Pzogc3RyaW5nO1xuICAgIGlzRmVhdHVyZUxvY2tlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByb3VuZGVkQXZhdGFyID0gaW5wdXQodHJ1ZSk7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0T25seSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBsb2NrZWRGZWF0dXJlQ2xpY2tlZCA9IG91dHB1dCgpO1xuXG4gICAgQFZpZXdDaGlsZChDaGVja2JveENvbXBvbmVudCkgY2hlY2tib3ghOiBDaGVja2JveENvbXBvbmVudDtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGZWF0dXJlTG9ja2VkKCkpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMubG9ja2VkRmVhdHVyZUNsaWNrZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3RPbmx5KCkge1xuICAgICAgICB0aGlzLnNlbGVjdE9ubHkuZW1pdCgpO1xuICAgICAgICB0aGlzLmNoZWNrYm94LmZvY3VzKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZGlzYWJsZWQtb3BhcXVlXCJcbiAgICBbYXBUb29sdGlwXT1cImRpc2FibGVkVG9vbHRpcFwiXG4gICAgW2FwVG9vbHRpcERpc2FibGVkXT1cIiFkaXNhYmxlZFwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cIm9wdGlvbiBtdWx0aXBsZVwiIFtjbGFzcy5mZWF0dXJlLWxvY2tlZC1vcHRpb25dPVwiaXNGZWF0dXJlTG9ja2VkKClcIj5cbiAgICA8YXAtY2hlY2tib3hcbiAgICAgICAgI2NoZWNrYm94XG4gICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzRmVhdHVyZUxvY2tlZCgpXCJcbiAgICAgICAgW25hbWVdPVwiJ29wdGlvbi1zZWxlY3Rpb24tJyArIGh0bWxJZFwiPlxuICAgICAgICBAaWYgKGF2YXRhclVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICA8YXAtYXZhdGFyXG4gICAgICAgICAgICAgICAgW3JvdW5kZWRdPVwicm91bmRlZEF2YXRhcigpXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIyNFwiXG4gICAgICAgICAgICAgICAgW3Byb2ZpbGVQaWN0dXJlXT1cImF2YXRhclVybFwiXG4gICAgICAgICAgICAgICAgW3VzZXJuYW1lXT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFtzaG93SW5pdGlhbHNdPVwidHJ1ZVwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzeW1ib2xJZCkge1xuICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgW3N5bWJvbElkXT1cInN5bWJvbElkXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24taXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MuZmVhdHVyZS1sb2NrZWQtbGFiZWxdPVwiaXNGZWF0dXJlTG9ja2VkKClcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInRleHRcIj5cbiAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICBAaWYgKGJhZGdlVGV4dCkge1xuICAgICAgICAgICAgPGFwLWJhZGdlIGNvbG9yPVwiYmx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IGJhZGdlVGV4dCB9fVxuICAgICAgICAgICAgPC9hcC1iYWRnZT5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoaXNGZWF0dXJlTG9ja2VkKCkpIHtcbiAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImZlYXR1cmUtbG9ja1wiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwdXJwbGVcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiLz5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAob25seUVuYWJsZWQgJiYgIWRpc2FibGVkICYmICFpc0ZlYXR1cmVMb2NrZWQoKSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhbmRhbG9uZS1saW5rXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgb25TZWxlY3RPbmx5KClcIj5cbiAgICAgICAgICAgICAgICB7eyBvbmx5VGV4dCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgIDwvYXAtY2hlY2tib3g+XG48L2Rpdj5cbkBpZiAoZGl2aWRlckVuYWJsZWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS1tdWx0aXBsZS1vbmUtbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc2VsZWN0L3NyYy9kcm9wZG93bi1pdGVtLW11bHRpcGxlLW9uZS1saW5lL2Ryb3Bkb3duLWl0ZW0tbXVsdGlwbGUtb25lLWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NlbGVjdC9zcmMvZHJvcGRvd24taXRlbS1tdWx0aXBsZS1vbmUtbGluZS9kcm9wZG93bi1pdGVtLW11bHRpcGxlLW9uZS1saW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM1QyxLQUFLLEVBQUUsTUFBTSxFQUNiLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDOztBQVd2QixNQUFNLE9BQU8sb0NBQW9DO0lBQ2xCLElBQUksQ0FBVTtJQUNkLFFBQVEsQ0FBVztJQUNuQixNQUFNLENBQVU7SUFDbEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFVO0lBQ2xCLGVBQWUsQ0FBVTtJQUN6QixTQUFTLENBQVU7SUFDbkIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDM0IsZUFBZSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUN4QyxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxCLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ2hELG9CQUFvQixHQUFHLE1BQU0sRUFBRSxDQUFDO0lBRUYsUUFBUSxDQUFxQjtJQUV4QixPQUFPLENBQUMsTUFBa0I7UUFDekQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQTlCUSxvQ0FBb0M7MkZBQXBDLG9DQUFvQywyL0RBa0JsQyxpQkFBaUIsZ0RDMUNoQyxtckRBd0RBLGtVRGxDYyxlQUFlLHNIQUFFLGlCQUFpQix3TUFBRSxlQUFlLDZNQUFFLGNBQWMsd0VBQUUsZ0JBQWdCOzsyRkFFdEYsb0NBQW9DO2tCQVRoRCxTQUFTOytCQUNJLG9DQUFvQyxjQUdsQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDOzhCQUd2RyxJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxRQUFRO3NCQUFsQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlJLFVBQVU7c0JBQW5CLE1BQU07Z0JBR3VCLFFBQVE7c0JBQXJDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUVPLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9jaGVja2JveCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IFN5bWJvbENvbXBvbmVudCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsXG4gICAgaW5wdXQsIE91dHB1dCxcbiAgICBvdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1kcm9wZG93bi1pdGVtLW11bHRpcGxlLW9uZS1saW5lJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24taXRlbS1tdWx0aXBsZS1vbmUtbGluZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24taXRlbS1tdWx0aXBsZS1vbmUtbGluZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbXBvcnRzOiBbU3ltYm9sQ29tcG9uZW50LCBDaGVja2JveENvbXBvbmVudCwgQXZhdGFyQ29tcG9uZW50LCBCYWRnZUNvbXBvbmVudCwgVG9vbHRpcERpcmVjdGl2ZSwgU3ltYm9sQ29tcG9uZW50LCBTeW1ib2xDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkl0ZW1NdWx0aXBsZU9uZUxpbmVDb21wb25lbnQge1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRleHQhOiBzdHJpbmc7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc2VsZWN0ZWQhOiBib29sZWFuO1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGh0bWxJZCE6IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGF2YXRhclVybD86IHN0cmluZztcbiAgICBASW5wdXQoKSBzeW1ib2xJZD86IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlZFRvb2x0aXA/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgYmFkZ2VUZXh0Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpdmlkZXJFbmFibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgb25seUVuYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBvbmx5VGV4dCA9ICdPbmx5JztcbiAgICBpc0ZlYXR1cmVMb2NrZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gICAgcm91bmRlZEF2YXRhciA9IGlucHV0KHRydWUpO1xuXG4gICAgQE91dHB1dCgpIHNlbGVjdE9ubHkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgbG9ja2VkRmVhdHVyZUNsaWNrZWQgPSBvdXRwdXQoKTtcblxuICAgIEBWaWV3Q2hpbGQoQ2hlY2tib3hDb21wb25lbnQpIGNoZWNrYm94ITogQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRmVhdHVyZUxvY2tlZCgpKSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmxvY2tlZEZlYXR1cmVDbGlja2VkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0T25seSgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RPbmx5LmVtaXQoKTtcbiAgICAgICAgdGhpcy5jaGVja2JveC5mb2N1cygpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImRpc2FibGVkLW9wYXF1ZVwiXG4gICAgW2FwVG9vbHRpcF09XCJkaXNhYmxlZFRvb2x0aXBcIlxuICAgIFthcFRvb2x0aXBEaXNhYmxlZF09XCIhZGlzYWJsZWRcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJvcHRpb24gbXVsdGlwbGVcIiBbY2xhc3MuZmVhdHVyZS1sb2NrZWQtb3B0aW9uXT1cImlzRmVhdHVyZUxvY2tlZCgpXCI+XG4gICAgPGFwLWNoZWNrYm94XG4gICAgICAgICNjaGVja2JveFxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpc0ZlYXR1cmVMb2NrZWQoKVwiXG4gICAgICAgIFtuYW1lXT1cIidvcHRpb24tc2VsZWN0aW9uLScgKyBodG1sSWRcIj5cbiAgICAgICAgQGlmIChhdmF0YXJVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgPGFwLWF2YXRhclxuICAgICAgICAgICAgICAgIFtyb3VuZGVkXT1cInJvdW5kZWRBdmF0YXIoKVwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICAgICAgICAgIFtwcm9maWxlUGljdHVyZV09XCJhdmF0YXJVcmxcIlxuICAgICAgICAgICAgICAgIFt1c2VybmFtZV09XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbc2hvd0luaXRpYWxzXT1cInRydWVcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc3ltYm9sSWQpIHtcbiAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgIFtzeW1ib2xJZF09XCJzeW1ib2xJZFwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgW2NsYXNzLmZlYXR1cmUtbG9ja2VkLWxhYmVsXT1cImlzRmVhdHVyZUxvY2tlZCgpXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0ZXh0XCI+XG4gICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgQGlmIChiYWRnZVRleHQpIHtcbiAgICAgICAgICAgIDxhcC1iYWRnZSBjb2xvcj1cImJsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyBiYWRnZVRleHQgfX1cbiAgICAgICAgICAgIDwvYXAtYmFkZ2U+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGlzRmVhdHVyZUxvY2tlZCgpKSB7XG4gICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgc3ltYm9sSWQ9XCJmZWF0dXJlLWxvY2tcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHVycGxlXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIi8+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKG9ubHlFbmFibGVkICYmICFkaXNhYmxlZCAmJiAhaXNGZWF0dXJlTG9ja2VkKCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInN0YW5kYWxvbmUtbGlua1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IG9uU2VsZWN0T25seSgpXCI+XG4gICAgICAgICAgICAgICAge3sgb25seVRleHQgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICA8L2FwLWNoZWNrYm94PlxuPC9kaXY+XG5AaWYgKGRpdmlkZXJFbmFibGVkKSB7XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbn1cbiJdfQ==