@1money/component-ui 0.0.46 → 0.0.47
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.
- package/es/components/Table/Table.d.ts +2 -2
- package/es/components/Table/Table.js +25 -148
- package/es/components/Table/VirtualTable.d.ts +2 -2
- package/es/components/Table/VirtualTable.js +30 -143
- package/es/components/Table/core/useTableColumns.d.ts +21 -7
- package/es/components/Table/core/useTableColumns.js +65 -13
- package/es/components/Table/core/useTableDataPipeline.d.ts +13 -6
- package/es/components/Table/core/useTableDataPipeline.js +193 -27
- package/es/components/Table/core/useTableExpand.d.ts +2 -2
- package/es/components/Table/core/useTableSelection.d.ts +3 -5
- package/es/components/Table/core/useTableSelection.js +1 -1
- package/es/components/Table/core/useTableSetup.d.ts +42 -0
- package/es/components/Table/core/useTableSetup.js +175 -0
- package/es/components/Table/features/ExpandTrigger.js +2 -1
- package/es/components/Table/features/FilterTrigger.d.ts +9 -0
- package/es/components/Table/features/FilterTrigger.js +157 -0
- package/es/components/Table/features/SelectionColumn.d.ts +3 -2
- package/es/components/Table/features/SelectionColumn.js +19 -6
- package/es/components/Table/interface.d.ts +102 -21
- package/es/components/Table/renderers/BodyCell.d.ts +4 -4
- package/es/components/Table/renderers/BodyCell.js +1 -1
- package/es/components/Table/renderers/HeaderCell.d.ts +8 -4
- package/es/components/Table/renderers/HeaderCell.js +13 -3
- package/es/components/Table/style/Table.css +1 -1
- package/es/index.css +1 -1
- package/lib/components/Table/Table.d.ts +2 -2
- package/lib/components/Table/Table.js +24 -150
- package/lib/components/Table/VirtualTable.d.ts +2 -2
- package/lib/components/Table/VirtualTable.js +28 -144
- package/lib/components/Table/core/useTableColumns.d.ts +21 -7
- package/lib/components/Table/core/useTableColumns.js +65 -13
- package/lib/components/Table/core/useTableDataPipeline.d.ts +13 -6
- package/lib/components/Table/core/useTableDataPipeline.js +192 -26
- package/lib/components/Table/core/useTableExpand.d.ts +2 -2
- package/lib/components/Table/core/useTableSelection.d.ts +3 -5
- package/lib/components/Table/core/useTableSelection.js +1 -1
- package/lib/components/Table/core/useTableSetup.d.ts +42 -0
- package/lib/components/Table/core/useTableSetup.js +184 -0
- package/lib/components/Table/features/ExpandTrigger.js +2 -1
- package/lib/components/Table/features/FilterTrigger.d.ts +9 -0
- package/lib/components/Table/features/FilterTrigger.js +164 -0
- package/lib/components/Table/features/SelectionColumn.d.ts +3 -2
- package/lib/components/Table/features/SelectionColumn.js +19 -6
- package/lib/components/Table/interface.d.ts +102 -21
- package/lib/components/Table/renderers/BodyCell.d.ts +4 -4
- package/lib/components/Table/renderers/BodyCell.js +1 -1
- package/lib/components/Table/renderers/HeaderCell.d.ts +8 -4
- package/lib/components/Table/renderers/HeaderCell.js +13 -3
- package/lib/components/Table/style/Table.css +1 -1
- package/lib/index.css +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +120 -0
- package/scripts/mcp-server/index.generated.json +336 -14
|
@@ -4,7 +4,7 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
|
4
4
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
5
5
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
6
6
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7
|
-
import { useMemo } from 'react';
|
|
7
|
+
import { useMemo, useRef } from 'react';
|
|
8
8
|
import { useControlledState, useMemoizedFn } from '@1money/hooks';
|
|
9
9
|
function isColumnGroup(col) {
|
|
10
10
|
return 'children' in col && Array.isArray(col.children);
|
|
@@ -86,17 +86,46 @@ function applySortToData(data, columns, sorterStates) {
|
|
|
86
86
|
});
|
|
87
87
|
return sorted;
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
function applyFiltersToData(data, columns, filters) {
|
|
90
|
+
// Resolve which columns have an active filter selection AND a predicate.
|
|
91
|
+
var activeFilters = columns.map(function (col) {
|
|
92
|
+
if (col.key == null) return null;
|
|
93
|
+
var selected = filters[String(col.key)];
|
|
94
|
+
if (!selected || selected.length === 0) return null;
|
|
95
|
+
if (!col.onFilter) return null;
|
|
96
|
+
return {
|
|
97
|
+
onFilter: col.onFilter,
|
|
98
|
+
selected: selected
|
|
99
|
+
};
|
|
100
|
+
}).filter(Boolean);
|
|
101
|
+
if (activeFilters.length === 0) return data;
|
|
102
|
+
return data.filter(function (record) {
|
|
103
|
+
return (
|
|
104
|
+
// Row passes only if EVERY active column has at least one matching selected value.
|
|
105
|
+
activeFilters.every(function (_ref) {
|
|
106
|
+
var onFilter = _ref.onFilter,
|
|
107
|
+
selected = _ref.selected;
|
|
108
|
+
return selected.some(function (value) {
|
|
109
|
+
return onFilter(value, record);
|
|
110
|
+
});
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
export var applyTablePipeline = function applyTablePipeline(_ref2) {
|
|
116
|
+
var columns = _ref2.columns,
|
|
117
|
+
dataSource = _ref2.dataSource,
|
|
118
|
+
sorter = _ref2.sorter,
|
|
119
|
+
_ref2$filters = _ref2.filters,
|
|
120
|
+
filters = _ref2$filters === void 0 ? {} : _ref2$filters,
|
|
121
|
+
pagination = _ref2.pagination;
|
|
94
122
|
var sorterStates = sorter.columnKey != null && sorter.order ? [{
|
|
95
123
|
columnKey: sorter.columnKey,
|
|
96
124
|
order: sorter.order
|
|
97
125
|
}] : [];
|
|
98
126
|
var leafColumns = flattenColumns(columns);
|
|
99
|
-
var
|
|
127
|
+
var filtered = applyFiltersToData(dataSource, leafColumns, filters);
|
|
128
|
+
var sorted = applySortToData(filtered, leafColumns, sorterStates);
|
|
100
129
|
if (!pagination) {
|
|
101
130
|
return {
|
|
102
131
|
currentDataSource: sorted,
|
|
@@ -156,24 +185,119 @@ var getControlledSorter = function getControlledSorter(columns) {
|
|
|
156
185
|
order: (_a = controlledColumn.sortOrder) !== null && _a !== void 0 ? _a : null
|
|
157
186
|
};
|
|
158
187
|
};
|
|
159
|
-
|
|
160
|
-
var
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
188
|
+
var getInitialFilters = function getInitialFilters(columns) {
|
|
189
|
+
var _a;
|
|
190
|
+
var leaves = flattenColumns(columns);
|
|
191
|
+
var state = {};
|
|
192
|
+
var _iterator4 = _createForOfIteratorHelper(leaves),
|
|
193
|
+
_step4;
|
|
194
|
+
try {
|
|
195
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
196
|
+
var col = _step4.value;
|
|
197
|
+
if (col.key == null) continue;
|
|
198
|
+
var initial = (_a = col.defaultFilteredValue) !== null && _a !== void 0 ? _a : col.filteredValue;
|
|
199
|
+
if (initial !== undefined) {
|
|
200
|
+
state[String(col.key)] = initial !== null && initial !== void 0 ? initial : null;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
} catch (err) {
|
|
204
|
+
_iterator4.e(err);
|
|
205
|
+
} finally {
|
|
206
|
+
_iterator4.f();
|
|
207
|
+
}
|
|
208
|
+
return state;
|
|
209
|
+
};
|
|
210
|
+
var getControlledFilters = function getControlledFilters(columns) {
|
|
211
|
+
var leaves = flattenColumns(columns);
|
|
212
|
+
var hasControlled = false;
|
|
213
|
+
var state = {};
|
|
214
|
+
var _iterator5 = _createForOfIteratorHelper(leaves),
|
|
215
|
+
_step5;
|
|
216
|
+
try {
|
|
217
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
218
|
+
var col = _step5.value;
|
|
219
|
+
if (col.key == null) continue;
|
|
220
|
+
if (col.filteredValue !== undefined) {
|
|
221
|
+
hasControlled = true;
|
|
222
|
+
state[String(col.key)] = col.filteredValue;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
} catch (err) {
|
|
226
|
+
_iterator5.e(err);
|
|
227
|
+
} finally {
|
|
228
|
+
_iterator5.f();
|
|
229
|
+
}
|
|
230
|
+
return hasControlled ? state : undefined;
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Returns a value whose reference is preserved across renders as long as the
|
|
234
|
+
* shallow contents are unchanged (per `equal`). Used to stabilise the derived
|
|
235
|
+
* controlled candidates fed to `useControlledState` — they would otherwise be
|
|
236
|
+
* fresh objects every render and thrash the hook's internal `useLayoutEffect`.
|
|
237
|
+
*/
|
|
238
|
+
function useStableRef(value, equal) {
|
|
239
|
+
var ref = useRef(value);
|
|
240
|
+
if (!equal(ref.current, value)) {
|
|
241
|
+
ref.current = value;
|
|
242
|
+
}
|
|
243
|
+
return ref.current;
|
|
244
|
+
}
|
|
245
|
+
function sorterEqual(a, b) {
|
|
246
|
+
if (a === b) return true;
|
|
247
|
+
if (!a || !b) return false;
|
|
248
|
+
return a.columnKey === b.columnKey && a.order === b.order;
|
|
249
|
+
}
|
|
250
|
+
function filterValueEqual(a, b) {
|
|
251
|
+
if (a === b) return true;
|
|
252
|
+
if (!a || !b) return false;
|
|
253
|
+
if (a.length !== b.length) return false;
|
|
254
|
+
for (var i = 0; i < a.length; i++) {
|
|
255
|
+
if (a[i] !== b[i]) return false;
|
|
256
|
+
}
|
|
257
|
+
return true;
|
|
258
|
+
}
|
|
259
|
+
function filtersEqual(a, b) {
|
|
260
|
+
if (a === b) return true;
|
|
261
|
+
if (!a || !b) return false;
|
|
262
|
+
var keysA = Object.keys(a);
|
|
263
|
+
var keysB = Object.keys(b);
|
|
264
|
+
if (keysA.length !== keysB.length) return false;
|
|
265
|
+
for (var _i = 0, _keysA = keysA; _i < _keysA.length; _i++) {
|
|
266
|
+
var key = _keysA[_i];
|
|
267
|
+
if (!filterValueEqual(a[key], b[key])) return false;
|
|
268
|
+
}
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
export var useTableDataPipeline = function useTableDataPipeline(_ref3) {
|
|
272
|
+
var columns = _ref3.columns,
|
|
273
|
+
dataSource = _ref3.dataSource,
|
|
274
|
+
pagination = _ref3.pagination,
|
|
275
|
+
onChange = _ref3.onChange;
|
|
164
276
|
var _a, _b, _c, _d;
|
|
165
|
-
|
|
277
|
+
// Sorter / filters are "derived controlled" — the controlled value is built
|
|
278
|
+
// by scanning column props (`sortOrder` / `filteredValue`), so `getControlled*`
|
|
279
|
+
// returns a fresh object every render even when the underlying inputs are
|
|
280
|
+
// unchanged. Without stabilisation, `useControlledState`'s internal
|
|
281
|
+
// `useLayoutEffect([value])` would re-sync on every render → infinite loop.
|
|
282
|
+
// Pin the reference via a shallow-equal ref.
|
|
283
|
+
var controlledSorter = useStableRef(getControlledSorter(columns), sorterEqual);
|
|
284
|
+
var controlledFilters = useStableRef(getControlledFilters(columns), filtersEqual);
|
|
285
|
+
var _useControlledState = useControlledState(getInitialSorter(columns), controlledSorter),
|
|
166
286
|
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
167
287
|
sorter = _useControlledState2[0],
|
|
168
288
|
setSorter = _useControlledState2[1];
|
|
169
|
-
var _useControlledState3 = useControlledState(
|
|
289
|
+
var _useControlledState3 = useControlledState(getInitialFilters(columns), controlledFilters),
|
|
170
290
|
_useControlledState4 = _slicedToArray(_useControlledState3, 2),
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
var _useControlledState5 = useControlledState(pagination === false ?
|
|
291
|
+
filters = _useControlledState4[0],
|
|
292
|
+
setFilters = _useControlledState4[1];
|
|
293
|
+
var _useControlledState5 = useControlledState(pagination === false ? 1 : (_b = (_a = pagination === null || pagination === void 0 ? void 0 : pagination.defaultCurrent) !== null && _a !== void 0 ? _a : pagination === null || pagination === void 0 ? void 0 : pagination.current) !== null && _b !== void 0 ? _b : 1, pagination === false ? undefined : pagination === null || pagination === void 0 ? void 0 : pagination.current),
|
|
174
294
|
_useControlledState6 = _slicedToArray(_useControlledState5, 2),
|
|
175
|
-
|
|
176
|
-
|
|
295
|
+
current = _useControlledState6[0],
|
|
296
|
+
setCurrent = _useControlledState6[1];
|
|
297
|
+
var _useControlledState7 = useControlledState(pagination === false ? 10 : (_d = (_c = pagination === null || pagination === void 0 ? void 0 : pagination.defaultPageSize) !== null && _c !== void 0 ? _c : pagination === null || pagination === void 0 ? void 0 : pagination.pageSize) !== null && _d !== void 0 ? _d : 10, pagination === false ? undefined : pagination === null || pagination === void 0 ? void 0 : pagination.pageSize),
|
|
298
|
+
_useControlledState8 = _slicedToArray(_useControlledState7, 2),
|
|
299
|
+
pageSize = _useControlledState8[0],
|
|
300
|
+
setPageSize = _useControlledState8[1];
|
|
177
301
|
var mergedPagination = pagination === false ? false : {
|
|
178
302
|
current: current,
|
|
179
303
|
pageSize: pageSize
|
|
@@ -201,9 +325,19 @@ export var useTableDataPipeline = function useTableDataPipeline(_ref2) {
|
|
|
201
325
|
columns: columns,
|
|
202
326
|
dataSource: dataSource,
|
|
203
327
|
sorter: sorter,
|
|
328
|
+
filters: filters,
|
|
204
329
|
pagination: mergedPagination
|
|
205
330
|
});
|
|
206
|
-
}, [columns, dataSource, sorter, mergedPagination]);
|
|
331
|
+
}, [columns, dataSource, sorter, filters, mergedPagination]);
|
|
332
|
+
var emitChange = useMemoizedFn(function (nextDataSource, action, nextState) {
|
|
333
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
334
|
+
currentDataSource: nextDataSource,
|
|
335
|
+
action: action,
|
|
336
|
+
sorter: nextState.sorter,
|
|
337
|
+
filters: nextState.filters,
|
|
338
|
+
pagination: nextState.pagination
|
|
339
|
+
});
|
|
340
|
+
});
|
|
207
341
|
// useMemoizedFn: stable ref, always calls latest closure — no stale deps risk
|
|
208
342
|
var wrappedSetSorter = useMemoizedFn(function (updater) {
|
|
209
343
|
var nextSorter = typeof updater === 'function' ? updater(sorter) : updater;
|
|
@@ -221,11 +355,39 @@ export var useTableDataPipeline = function useTableDataPipeline(_ref2) {
|
|
|
221
355
|
columns: columns,
|
|
222
356
|
dataSource: dataSource,
|
|
223
357
|
sorter: nextSorter,
|
|
358
|
+
filters: filters,
|
|
224
359
|
pagination: resetPagination
|
|
225
360
|
});
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
361
|
+
emitChange(nextResult.currentDataSource, 'sort', {
|
|
362
|
+
sorter: nextSorter,
|
|
363
|
+
filters: filters,
|
|
364
|
+
pagination: resetPagination
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
var wrappedSetFilters = useMemoizedFn(function (updater) {
|
|
369
|
+
var nextFilters = typeof updater === 'function' ? updater(filters) : updater;
|
|
370
|
+
setFilters(nextFilters);
|
|
371
|
+
// Reset pagination to page 1 when filters change
|
|
372
|
+
if (mergedPagination !== false) {
|
|
373
|
+
setCurrent(1);
|
|
374
|
+
}
|
|
375
|
+
if (onChange) {
|
|
376
|
+
var resetPagination = mergedPagination === false ? false : {
|
|
377
|
+
current: 1,
|
|
378
|
+
pageSize: pageSize
|
|
379
|
+
};
|
|
380
|
+
var nextResult = applyTablePipeline({
|
|
381
|
+
columns: columns,
|
|
382
|
+
dataSource: dataSource,
|
|
383
|
+
sorter: sorter,
|
|
384
|
+
filters: nextFilters,
|
|
385
|
+
pagination: resetPagination
|
|
386
|
+
});
|
|
387
|
+
emitChange(nextResult.currentDataSource, 'filter', {
|
|
388
|
+
sorter: sorter,
|
|
389
|
+
filters: nextFilters,
|
|
390
|
+
pagination: resetPagination
|
|
229
391
|
});
|
|
230
392
|
}
|
|
231
393
|
});
|
|
@@ -243,20 +405,24 @@ export var useTableDataPipeline = function useTableDataPipeline(_ref2) {
|
|
|
243
405
|
columns: columns,
|
|
244
406
|
dataSource: dataSource,
|
|
245
407
|
sorter: sorter,
|
|
408
|
+
filters: filters,
|
|
246
409
|
pagination: nextValue
|
|
247
410
|
});
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
411
|
+
emitChange(nextResult.currentDataSource, 'paginate', {
|
|
412
|
+
sorter: sorter,
|
|
413
|
+
filters: filters,
|
|
414
|
+
pagination: nextValue
|
|
251
415
|
});
|
|
252
416
|
}
|
|
253
417
|
});
|
|
254
418
|
return Object.assign(Object.assign({}, result), {
|
|
255
419
|
sorter: sorter,
|
|
256
420
|
sorterStates: sorterStates,
|
|
421
|
+
filters: filters,
|
|
257
422
|
pagination: mergedPagination,
|
|
258
423
|
setSorter: wrappedSetSorter,
|
|
424
|
+
setFilters: wrappedSetFilters,
|
|
259
425
|
setPagination: wrappedSetPagination
|
|
260
426
|
});
|
|
261
427
|
};
|
|
262
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvc3JjL2NvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZURhdGFQaXBlbGluZS50cyIsImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZURhdGFQaXBlbGluZS5qcyJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsImlzQ29sdW1uR3JvdXAiLCJjb2wiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZHJlbiIsImZsYXR0ZW5Db2x1bW5zIiwiY29sdW1ucyIsInJlc3VsdCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsInB1c2giLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsImVyciIsImUiLCJmIiwiZ2V0U29ydEZ1bmN0aW9uIiwic29ydGVyIiwiX3R5cGVvZiIsImNvbXBhcmUiLCJnZXRNdWx0aXBsZVByaW9yaXR5IiwiY29sdW1uIiwibXVsdGlwbGUiLCJhcHBseVNvcnRUb0RhdGEiLCJkYXRhIiwic29ydGVyU3RhdGVzIiwibGVuZ3RoIiwic29ydGVkIiwicnVubmluZ1NvcnRlcnMiLCJtYXAiLCJzdGF0ZSIsImZpbmQiLCJrZXkiLCJjb2x1bW5LZXkiLCJjb21wYXJlRm4iLCJwcmlvcml0eSIsIm9yZGVyIiwiZmlsdGVyIiwiQm9vbGVhbiIsInNvcnQiLCJhIiwiYiIsImFwIiwiYnAiLCJyZWNvcmQxIiwicmVjb3JkMiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfc3RlcDIkdmFsdWUiLCJhcHBseVRhYmxlUGlwZWxpbmUiLCJfcmVmIiwiZGF0YVNvdXJjZSIsInBhZ2luYXRpb24iLCJsZWFmQ29sdW1ucyIsImN1cnJlbnREYXRhU291cmNlIiwidG90YWwiLCJzdGFydCIsImN1cnJlbnQiLCJwYWdlU2l6ZSIsImVuZCIsInNsaWNlIiwiY29sbGVjdFNvcnRlclN0YXRlcyIsIl9hIiwibGVhdmVzIiwic3RhdGVzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsInNvcnRPcmRlciIsImRlZmF1bHRTb3J0T3JkZXIiLCJnZXRJbml0aWFsU29ydGVyIiwiZ2V0Q29udHJvbGxlZFNvcnRlciIsImNvbnRyb2xsZWRDb2x1bW4iLCJ1bmRlZmluZWQiLCJ1c2VUYWJsZURhdGFQaXBlbGluZSIsIl9yZWYyIiwib25DaGFuZ2UiLCJfYiIsIl9jIiwiX2QiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldFNvcnRlciIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiZGVmYXVsdEN1cnJlbnQiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsInNldEN1cnJlbnQiLCJfdXNlQ29udHJvbGxlZFN0YXRlNSIsImRlZmF1bHRQYWdlU2l6ZSIsIl91c2VDb250cm9sbGVkU3RhdGU2Iiwic2V0UGFnZVNpemUiLCJtZXJnZWRQYWdpbmF0aW9uIiwicHJpbWFyeSIsImFkZGl0aW9uYWwiLCJjb25jYXQiLCJ3cmFwcGVkU2V0U29ydGVyIiwidXBkYXRlciIsIm5leHRTb3J0ZXIiLCJyZXNldFBhZ2luYXRpb24iLCJuZXh0UmVzdWx0IiwiYWN0aW9uIiwid3JhcHBlZFNldFBhZ2luYXRpb24iLCJjdXJyZW50VmFsdWUiLCJuZXh0VmFsdWUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRQYWdpbmF0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxPQUFPLFFBQVEsT0FBTztBQUMvQixTQUFTQyxrQkFBa0IsRUFBRUMsYUFBYSxRQUFRLGVBQWU7QUFJakUsU0FBU0MsYUFBYUEsQ0FBSUMsR0FBdUIsRUFBQTtFQUMvQyxPQUFPLFVBQVUsSUFBSUEsR0FBRyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBRUYsR0FBMkIsQ0FBQ0csUUFBUSxDQUFDO0FBQ2xGO0FBRUEsU0FBU0MsY0FBY0EsQ0FBSUMsT0FBNkIsRUFBQTtFQUN0RCxJQUFNQyxNQUFNLEdBQXFCLEVBQUU7RUFBQyxJQUFBQyxTQUFBLEdBQUFDLDBCQUFBLENBQ2xCSCxPQUFPO0lBQUFJLEtBQUE7RUFBQTtJQUF6QixLQUFBRixTQUFBLENBQUFHLENBQUEsTUFBQUQsS0FBQSxHQUFBRixTQUFBLENBQUFJLENBQUEsSUFBQUMsSUFBQSxHQUEyQjtNQUFBLElBQWhCWixHQUFHLEdBQUFTLEtBQUEsQ0FBQUksS0FBQTtNQUNaLElBQUlkLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDLEVBQUU7UUFDdEJNLE1BQU0sQ0FBQ1EsSUFBSSxDQUFBQyxLQUFBLENBQVhULE1BQU0sRUFBQVUsa0JBQUEsQ0FBU1osY0FBYyxDQUFDSixHQUFHLENBQUNHLFFBQVEsQ0FBQyxFQUFDO01BQzlDLENBQUMsTUFBTTtRQUNMRyxNQUFNLENBQUNRLElBQUksQ0FBQ2QsR0FBRyxDQUFDO01BQ2xCO0lBQ0Y7RUFBQyxTQUFBaUIsR0FBQTtJQUFBVixTQUFBLENBQUFXLENBQUEsQ0FBQUQsR0FBQTtFQUFBO0lBQUFWLFNBQUEsQ0FBQVksQ0FBQTtFQUFBO0VBQ0QsT0FBT2IsTUFBTTtBQUNmO0FBNkNBLFNBQVNjLGVBQWVBLENBQ3RCQyxNQUFnQyxFQUFBO0VBRWhDLElBQUksT0FBT0EsTUFBTSxLQUFLLFVBQVUsRUFBRSxPQUFPQSxNQUFNO0VBQy9DLElBQUlBLE1BQU0sSUFBSUMsT0FBQSxDQUFPRCxNQUFNLE1BQUssUUFBUSxJQUFJLFNBQVMsSUFBSUEsTUFBTSxFQUFFLE9BQU9BLE1BQU0sQ0FBQ0UsT0FBTztFQUN0RixPQUFPLEtBQUs7QUFDZDtBQUVBLFNBQVNDLG1CQUFtQkEsQ0FBSUMsTUFBc0IsRUFBQTtFQUNwRCxJQUFJQSxNQUFNLENBQUNKLE1BQU0sSUFBSUMsT0FBQSxDQUFPRyxNQUFNLENBQUNKLE1BQU0sTUFBSyxRQUFRLElBQUksVUFBVSxJQUFJSSxNQUFNLENBQUNKLE1BQU0sRUFBRTtJQUNyRixPQUFRSSxNQUFNLENBQUNKLE1BQXFDLENBQUNLLFFBQVE7RUFDL0Q7RUFDQSxPQUFPLEtBQUs7QUFDZDtBQUVBLFNBQVNDLGVBQWVBLENBQ3RCQyxJQUFTLEVBQ1R2QixPQUF5QixFQUN6QndCLFlBQXFDLEVBQUE7RUFFckMsSUFBSUEsWUFBWSxDQUFDQyxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU9GLElBQUk7RUFFMUMsSUFBTUcsTUFBTSxHQUFBZixrQkFBQSxDQUFPWSxJQUFJLENBQUM7RUFFeEIsSUFBTUksY0FBYyxHQUFHSCxZQUFZLENBQ2hDSSxHQUFHLENBQUMsVUFBQ0MsS0FBSyxFQUFJO0lBQ2IsSUFBTVQsTUFBTSxHQUFHcEIsT0FBTyxDQUFDOEIsSUFBSSxDQUFDLFVBQUNuQyxHQUFHO01BQUEsT0FBS0EsR0FBRyxDQUFDb0MsR0FBRyxLQUFLRixLQUFLLENBQUNHLFNBQVM7SUFBQSxFQUFDO0lBQ2pFLElBQUksQ0FBQ1osTUFBTSxFQUFFLE9BQU8sSUFBSTtJQUN4QixJQUFNYSxTQUFTLEdBQUdsQixlQUFlLENBQUNLLE1BQU0sQ0FBQ0osTUFBTSxDQUFDO0lBQ2hELElBQUksQ0FBQ2lCLFNBQVMsRUFBRSxPQUFPLElBQUk7SUFDM0IsSUFBTUMsUUFBUSxHQUFHZixtQkFBbUIsQ0FBQ0MsTUFBTSxDQUFDO0lBQzVDLE9BQU87TUFBRWEsU0FBUyxFQUFUQSxTQUFTO01BQUVFLEtBQUssRUFBRU4sS0FBSyxDQUFDTSxLQUFLO01BQUVELFFBQVEsRUFBUkE7SUFBUSxDQUFFO0VBQ3BELENBQUMsQ0FBQyxDQUNERSxNQUFNLENBQUNDLE9BQU8sQ0FBbUc7RUFFcEgsSUFBSVYsY0FBYyxDQUFDRixNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU9GLElBQUk7RUFFNUM7RUFDQUksY0FBYyxDQUFDVyxJQUFJLENBQUMsVUFBQ0MsQ0FBQyxFQUFFQyxDQUFDLEVBQUk7SUFDM0IsSUFBTUMsRUFBRSxHQUFHLE9BQU9GLENBQUMsQ0FBQ0wsUUFBUSxLQUFLLFFBQVEsR0FBR0ssQ0FBQyxDQUFDTCxRQUFRLEdBQUcsQ0FBQztJQUMxRCxJQUFNUSxFQUFFLEdBQUcsT0FBT0YsQ0FBQyxDQUFDTixRQUFRLEtBQUssUUFBUSxHQUFHTSxDQUFDLENBQUNOLFFBQVEsR0FBRyxDQUFDO0lBQzFELE9BQU9RLEVBQUUsR0FBR0QsRUFBRTtFQUNoQixDQUFDLENBQUM7RUFFRmYsTUFBTSxDQUFDWSxJQUFJLENBQUMsVUFBQ0ssT0FBTyxFQUFFQyxPQUFPLEVBQUk7SUFBQSxJQUFBQyxVQUFBLEdBQUExQywwQkFBQSxDQUNJd0IsY0FBYztNQUFBbUIsTUFBQTtJQUFBO01BQWpELEtBQUFELFVBQUEsQ0FBQXhDLENBQUEsTUFBQXlDLE1BQUEsR0FBQUQsVUFBQSxDQUFBdkMsQ0FBQSxJQUFBQyxJQUFBLEdBQW1EO1FBQUEsSUFBQXdDLFlBQUEsR0FBQUQsTUFBQSxDQUFBdEMsS0FBQTtVQUF0Q3lCLFNBQVMsR0FBQWMsWUFBQSxDQUFUZCxTQUFTO1VBQUVFLEtBQUssR0FBQVksWUFBQSxDQUFMWixLQUFLO1FBQzNCLElBQU1sQyxNQUFNLEdBQUdnQyxTQUFTLENBQUNVLE9BQU8sRUFBRUMsT0FBTyxDQUFDO1FBQzFDLElBQUkzQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1VBQ2hCLE9BQU9rQyxLQUFLLEtBQUssUUFBUSxHQUFHbEMsTUFBTSxHQUFHLENBQUNBLE1BQU07UUFDOUM7TUFDRjtJQUFDLFNBQUFXLEdBQUE7TUFBQWlDLFVBQUEsQ0FBQWhDLENBQUEsQ0FBQUQsR0FBQTtJQUFBO01BQUFpQyxVQUFBLENBQUEvQixDQUFBO0lBQUE7SUFDRCxPQUFPLENBQUM7RUFDVixDQUFDLENBQUM7RUFFRixPQUFPWSxNQUFNO0FBQ2Y7QUFFQSxPQUFPLElBQU1zQixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBQyxJQUFBLEVBS0U7RUFBQSxJQUovQmpELE9BQU8sR0FBQWlELElBQUEsQ0FBUGpELE9BQU87SUFDUGtELFVBQVUsR0FBQUQsSUFBQSxDQUFWQyxVQUFVO0lBQ1ZsQyxNQUFNLEdBQUFpQyxJQUFBLENBQU5qQyxNQUFNO0lBQ05tQyxVQUFVLEdBQUFGLElBQUEsQ0FBVkUsVUFBVTtFQUVWLElBQU0zQixZQUFZLEdBQ2hCUixNQUFNLENBQUNnQixTQUFTLElBQUksSUFBSSxJQUFJaEIsTUFBTSxDQUFDbUIsS0FBSyxHQUNwQyxDQUFDO0lBQUVILFNBQVMsRUFBRWhCLE1BQU0sQ0FBQ2dCLFNBQVM7SUFBRUcsS0FBSyxFQUFFbkIsTUFBTSxDQUFDbUI7RUFBSyxDQUFFLENBQUMsR0FDdEQsRUFBRTtFQUVSLElBQU1pQixXQUFXLEdBQUdyRCxjQUFjLENBQUNDLE9BQU8sQ0FBQztFQUMzQyxJQUFNMEIsTUFBTSxHQUFHSixlQUFlLENBQUM0QixVQUFVLEVBQUVFLFdBQVcsRUFBRTVCLFlBQVksQ0FBQztFQUVyRSxJQUFJLENBQUMyQixVQUFVLEVBQUU7SUFDZixPQUFPO01BQUVFLGlCQUFpQixFQUFFM0IsTUFBTTtNQUFFNEIsS0FBSyxFQUFFNUIsTUFBTSxDQUFDRDtJQUFNLENBQUU7RUFDNUQ7RUFFQSxJQUFNOEIsS0FBSyxHQUFHLENBQUNKLFVBQVUsQ0FBQ0ssT0FBTyxHQUFHLENBQUMsSUFBSUwsVUFBVSxDQUFDTSxRQUFRO0VBQzVELElBQU1DLEdBQUcsR0FBR0gsS0FBSyxHQUFHSixVQUFVLENBQUNNLFFBQVE7RUFFdkMsT0FBTztJQUNMSixpQkFBaUIsRUFBRTNCLE1BQU0sQ0FBQ2lDLEtBQUssQ0FBQ0osS0FBSyxFQUFFRyxHQUFHLENBQUM7SUFDM0NKLEtBQUssRUFBRTVCLE1BQU0sQ0FBQ0Q7RUNqRWQsQ0RrRUQ7QUFDSCxDQUFDO0FBRUQsU0FBU21DLG1CQUFtQkEsQ0FBSTVELE9BQTZCLEVBQUE7RUNsRXpELElBQUk2RCxFQUFFO0VEbUVSLElBQU1DLE1BQU0sR0FBRy9ELGNBQWMsQ0FBQ0MsT0FBTyxDQUFDO0VBQ3RDLElBQU0rRCxNQUFNLEdBQTRCLEVBQUU7RUFBQyxJQUFBQyxVQUFBLEdBQUE3RCwwQkFBQSxDQUN6QjJELE1BQU07SUFBQUcsTUFBQTtFQUFBO0lBQXhCLEtBQUFELFVBQUEsQ0FBQTNELENBQUEsTUFBQTRELE1BQUEsR0FBQUQsVUFBQSxDQUFBMUQsQ0FBQSxJQUFBQyxJQUFBLEdBQTBCO01BQUEsSUFBZlosR0FBRyxHQUFBc0UsTUFBQSxDQUFBekQsS0FBQTtNQUNaLElBQU0yQixLQUFLLEdBQUcsQ0FBQTBCLEVBQUEsR0FBQWxFLEdBQUcsQ0FBQ3VFLFNBQVMsTUFBQSxJQUFBLElBQUFMLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJbEUsR0FBRyxDQUFDd0UsZ0JBQWdCO01BQ25ELElBQUl4RSxHQUFHLENBQUNvQyxHQUFHLElBQUksSUFBSSxJQUFJSSxLQUFLLEVBQUU7UUFDNUI0QixNQUFNLENBQUN0RCxJQUFJLENBQUM7VUFBRXVCLFNBQVMsRUFBRXJDLEdBQUcsQ0FBQ29DLEdBQUc7VUFBRUksS0FBSyxFQUFMQTtRQUFLLENBQUUsQ0FBQztNQUM1QztJQUNGO0VBQUMsU0FBQXZCLEdBQUE7SUFBQW9ELFVBQUEsQ0FBQW5ELENBQUEsQ0FBQUQsR0FBQTtFQUFBO0lBQUFvRCxVQUFBLENBQUFsRCxDQUFBO0VBQUE7RUFDRCxPQUFPaUQsTUFBTTtBQUNmO0FBRUEsSUFBTUssZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBUXBFLE9BQTZCLEVBQXNCO0VBQy9FLElBQU0rRCxNQUFNLEdBQUdILG1CQUFtQixDQUFDNUQsT0FBTyxDQUFDO0VBQzNDLElBQUkrRCxNQUFNLENBQUN0QyxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQSxDQUFFO0VBQ2xDLE9BQU87SUFBRU8sU0FBUyxFQUFFK0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDL0IsU0FBUztJQUFFRyxLQUFLLEVBQUU0QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM1QjtFQUFLLENBQUU7QUFDbkUsQ0FBQztBQUVELElBQU1rQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFRckUsT0FBNkIsRUFBa0M7RUNsRTVGLElBQUk2RCxFQUFFO0VEbUVSLElBQU1DLE1BQU0sR0FBRy9ELGNBQWMsQ0FBQ0MsT0FBTyxDQUFDO0VBQ3RDLElBQU1zRSxnQkFBZ0IsR0FBR1IsTUFBTSxDQUFDaEMsSUFBSSxDQUFDLFVBQUNWLE1BQU07SUFBQSxPQUFLQSxNQUFNLENBQUM4QyxTQUFTLEtBQUtLLFNBQVM7RUFBQSxFQUFDO0VBRWhGLElBQUksQ0FBQ0QsZ0JBQWdCLEVBQUU7SUFDckIsT0FBT0MsU0FBUztFQUNsQjtFQUVBLE9BQU87SUFDTHZDLFNBQVMsRUFBRXNDLGdCQUFnQixDQUFDdkMsR0FBRztJQUMvQkksS0FBSyxFQUFFLENBQUEwQixFQUFBLEdBQUFTLGdCQUFnQixDQUFDSixTQUFTLE1BQUEsSUFBQSxJQUFBTCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSTtFQ25FckMsQ0RvRUQ7QUFDSCxDQUFDO0FBRUQsT0FBTyxJQUFNVyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBQyxLQUFBLEVBS2lDO0VBQUEsSUFKaEV6RSxPQUFPLEdBQUF5RSxLQUFBLENBQVB6RSxPQUFPO0lBQ1BrRCxVQUFVLEdBQUF1QixLQUFBLENBQVZ2QixVQUFVO0lBQ1ZDLFVBQVUsR0FBQXNCLEtBQUEsQ0FBVnRCLFVBQVU7SUFDVnVCLFFBQVEsR0FBQUQsS0FBQSxDQUFSQyxRQUFRO0VDeEVOLElBQUliLEVBQUUsRUFBRWMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUU7RUQwRXBCLElBQUFDLG1CQUFBLEdBQTRCdEYsa0JBQWtCLENBQzVDNEUsZ0JBQWdCLENBQUNwRSxPQUFPLENBQUMsRUFDekJxRSxtQkFBbUIsQ0FBQ3JFLE9BQU8sQ0FBQyxDQUM3QjtJQUFBK0Usb0JBQUEsR0FBQUMsY0FBQSxDQUFBRixtQkFBQTtJQUhNOUQsTUFBTSxHQUFBK0Qsb0JBQUE7SUFBRUUsU0FBUyxHQUFBRixvQkFBQTtFQUl4QixJQUFBRyxvQkFBQSxHQUE4QjFGLGtCQUFrQixDQUM5QzJELFVBQVUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxHQUFJLENBQUF3QixFQUFBLEdBQUEsQ0FBQWQsRUFBQSxHQUFBVixVQUFVLEtBQUEsSUFBQSxJQUFWQSxVQUFVLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVZBLFVBQVUsQ0FBRWdDLGNBQWMsTUFBQSxJQUFBLElBQUF0QixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSVYsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUVLLE9BQU8sTUFBQSxJQUFBLElBQUFtQixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFFLEVBQ25GeEIsVUFBVSxLQUFLLEtBQUssR0FBR29CLFNBQVMsR0FBR3BCLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFSyxPQUFPLENBQ3ZEO0lBQUE0QixvQkFBQSxHQUFBSixjQUFBLENBQUFFLG9CQUFBO0lBSE0xQixPQUFPLEdBQUE0QixvQkFBQTtJQUFFQyxVQUFVLEdBQUFELG9CQUFBO0VBSTFCLElBQUFFLG9CQUFBLEdBQWdDOUYsa0JBQWtCLENBQ2hEMkQsVUFBVSxLQUFLLEtBQUssR0FBRyxFQUFFLEdBQUksQ0FBQTBCLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUF6QixVQUFVLEtBQUEsSUFBQSxJQUFWQSxVQUFVLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVZBLFVBQVUsQ0FBRW9DLGVBQWUsTUFBQSxJQUFBLElBQUFYLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJekIsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUVNLFFBQVEsTUFBQSxJQUFBLElBQUFvQixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxFQUFHLEVBQ3ZGMUIsVUFBVSxLQUFLLEtBQUssR0FBR29CLFNBQVMsR0FBR3BCLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFTSxRQUFRLENBQ3hEO0lBQUErQixvQkFBQSxHQUFBUixjQUFBLENBQUFNLG9CQUFBO0lBSE03QixRQUFRLEdBQUErQixvQkFBQTtJQUFFQyxXQUFXLEdBQUFELG9CQUFBO0VBSzVCLElBQU1FLGdCQUFnQixHQUFHdkMsVUFBVSxLQUFLLEtBQUssR0FDekMsS0FBSyxHQUNMO0lBQUVLLE9BQU8sRUFBUEEsT0FBTztJQUFFQyxRQUFRLEVBQVJBO0VBQVEsQ0FBRTtFQUV6QixJQUFNakMsWUFBWSxHQUE0QmpDLE9BQU8sQ0FBQyxZQUFLO0lBQ3pEO0lBQ0EsSUFBTW9HLE9BQU8sR0FDWDNFLE1BQU0sQ0FBQ2dCLFNBQVMsSUFBSSxJQUFJLElBQUloQixNQUFNLENBQUNtQixLQUFLLEdBQ3BDLENBQUM7TUFBRUgsU0FBUyxFQUFFaEIsTUFBTSxDQUFDZ0IsU0FBUztNQUFFRyxLQUFLLEVBQUVuQixNQUFNLENBQUNtQjtJQUFLLENBQUUsQ0FBQyxHQUN0RCxFQUFFO0lBRVI7SUFDQSxJQUFNaUIsV0FBVyxHQUFHckQsY0FBYyxDQUFDQyxPQUFPLENBQUM7SUFDM0MsSUFBTTRGLFVBQVUsR0FBR3hDLFdBQVcsQ0FDM0JoQixNQUFNLENBQUMsVUFBQ3pDLEdBQUc7TUFBQSxPQUFLQSxHQUFHLENBQUNvQyxHQUFHLElBQUksSUFBSSxJQUFJcEMsR0FBRyxDQUFDdUUsU0FBUyxJQUFJdkUsR0FBRyxDQUFDb0MsR0FBRyxLQUFLZixNQUFNLENBQUNnQixTQUFTO0lBQUEsRUFBQyxDQUNqRkosR0FBRyxDQUFDLFVBQUNqQyxHQUFHO01BQUEsT0FBTTtRQUFFcUMsU0FBUyxFQUFFckMsR0FBRyxDQUFDb0MsR0FBSTtRQUFFSSxLQUFLLEVBQUV4QyxHQUFHLENBQUN1RTtNQUEyQyxDQUFFO0lBQUEsQ0FBQyxDQUFDO0lBRWxHLFVBQUEyQixNQUFBLENBQVdGLE9BQU8sRUFBQWhGLGtCQUFBLENBQUtpRixVQUFVO0VBQ25DLENBQUMsRUFBRSxDQUFDNUUsTUFBTSxFQUFFaEIsT0FBTyxDQUFDLENBQUM7RUFFckIsSUFBTUMsTUFBTSxHQUFHVixPQUFPLENBQ3BCO0lBQUEsT0FBTXlELGtCQUFrQixDQUFDO01BQ3ZCaEQsT0FBTyxFQUFQQSxPQUFPO01BQ1BrRCxVQUFVLEVBQVZBLFVBQVU7TUFDVmxDLE1BQU0sRUFBTkEsTUFBTTtNQUNObUMsVUFBVSxFQUFFdUM7SUN4RmQsQ0R5RkMsQ0FBQztFQUFBLEdBQ0YsQ0FBQzFGLE9BQU8sRUFBRWtELFVBQVUsRUFBRWxDLE1BQU0sRUFBRTBFLGdCQUFnQixDQUFDLENBQ2hEO0VBRUQ7RUFDQSxJQUFNSSxnQkFBZ0IsR0FBR3JHLGFBQWEsQ0FDcEMsVUFBQ3NHLE9BQTZFLEVBQUk7SUFDaEYsSUFBTUMsVUFBVSxHQUFHLE9BQU9ELE9BQU8sS0FBSyxVQUFVLEdBQUdBLE9BQU8sQ0FBQy9FLE1BQU0sQ0FBQyxHQUFHK0UsT0FBTztJQUM1RWQsU0FBUyxDQUFDZSxVQUFVLENBQUM7SUFFckI7SUFDQSxJQUFJTixnQkFBZ0IsS0FBSyxLQUFLLEVBQUU7TUFDOUJMLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDZjtJQUVBLElBQUlYLFFBQVEsRUFBRTtNQUNaLElBQU11QixlQUFlLEdBQUdQLGdCQUFnQixLQUFLLEtBQUssR0FDOUMsS0FBSyxHQUNMO1FBQUVsQyxPQUFPLEVBQUUsQ0FBQztRQUFFQyxRQUFRLEVBQVJBO01BQVEsQ0FBRTtNQUM1QixJQUFNeUMsVUFBVSxHQUFHbEQsa0JBQWtCLENBQUM7UUFDcENoRCxPQUFPLEVBQVBBLE9BQU87UUFDUGtELFVBQVUsRUFBVkEsVUFBVTtRQUNWbEMsTUFBTSxFQUFFZ0YsVUFBVTtRQUNsQjdDLFVBQVUsRUFBRThDO01DOUZWLENEK0ZILENBQUM7TUFDRnZCLFFBQVEsQ0FBQztRQUFFckIsaUJBQWlCLEVBQUU2QyxVQUFVLENBQUM3QyxpQkFBaUI7UUFBRThDLE1BQU0sRUFBRTtNQUFNLENBQUUsQ0FBQztJQUMvRTtFQUNGLENBQUMsQ0FDRjtFQUVELElBQU1DLG9CQUFvQixHQUFHM0csYUFBYSxDQUN4QyxVQUNFc0csT0FDa0csRUFDaEc7SUFDRixJQUFJNUMsVUFBVSxLQUFLLEtBQUssRUFBRTtJQUUxQixJQUFNa0QsWUFBWSxHQUFHO01BQUU3QyxPQUFPLEVBQVBBLE9BQU87TUFBRUMsUUFBUSxFQUFSQTtJQUFRLENBQUU7SUFDMUMsSUFBTTZDLFNBQVMsR0FBRyxPQUFPUCxPQUFPLEtBQUssVUFBVSxHQUFHQSxPQUFPLENBQUNNLFlBQVksQ0FBQyxHQUFHTixPQUFPO0lBRWpGVixVQUFVLENBQUNpQixTQUFTLENBQUM5QyxPQUFPLENBQUM7SUFDN0JpQyxXQUFXLENBQUNhLFNBQVMsQ0FBQzdDLFFBQVEsQ0FBQztJQUUvQixJQUFJaUIsUUFBUSxFQUFFO01BQ1osSUFBTXdCLFVBQVUsR0FBR2xELGtCQUFrQixDQUFDO1FBQ3BDaEQsT0FBTyxFQUFQQSxPQUFPO1FBQ1BrRCxVQUFVLEVBQVZBLFVBQVU7UUFDVmxDLE1BQU0sRUFBTkEsTUFBTTtRQUNObUMsVUFBVSxFQUFFbUQ7TUN0R1YsQ0R1R0gsQ0FBQztNQUNGNUIsUUFBUSxDQUFDO1FBQUVyQixpQkFBaUIsRUFBRTZDLFVBQVUsQ0FBQzdDLGlCQUFpQjtRQUFFOEMsTUFBTSxFQUFFO01BQVUsQ0FBRSxDQUFDO0lBQ25GO0VBQ0YsQ0FBQyxDQUNGO0VBRUQsT0FBQUksTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNLdkcsTUFBTSxDQUFBLEVBQUE7SUFDVGUsTUFBTSxFQUFOQSxNQUFNO0lBQ05RLFlBQVksRUFBWkEsWUFBWTtJQUNaMkIsVUFBVSxFQUFFdUMsZ0JBQWdCO0lBQzVCVCxTQUFTLEVBQUVhLGdCQUFnQjtJQUMzQlcsYUFBYSxFQUFFTDtFQUFvQixDQUFBLENBQUE7QUFFdkMsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVEYXRhUGlwZWxpbmUuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZU1lbW9pemVkRm4gfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmZ1bmN0aW9uIGlzQ29sdW1uR3JvdXAoY29sKSB7XG4gICAgcmV0dXJuICdjaGlsZHJlbicgaW4gY29sICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKTtcbn1cbmZ1bmN0aW9uIGZsYXR0ZW5Db2x1bW5zKGNvbHVtbnMpIHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICAgIGlmIChpc0NvbHVtbkdyb3VwKGNvbCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLmZsYXR0ZW5Db2x1bW5zKGNvbC5jaGlsZHJlbikpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goY29sKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gZ2V0U29ydEZ1bmN0aW9uKHNvcnRlcikge1xuICAgIGlmICh0eXBlb2Ygc29ydGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gc29ydGVyO1xuICAgIGlmIChzb3J0ZXIgJiYgdHlwZW9mIHNvcnRlciA9PT0gJ29iamVjdCcgJiYgJ2NvbXBhcmUnIGluIHNvcnRlcilcbiAgICAgICAgcmV0dXJuIHNvcnRlci5jb21wYXJlO1xuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdldE11bHRpcGxlUHJpb3JpdHkoY29sdW1uKSB7XG4gICAgaWYgKGNvbHVtbi5zb3J0ZXIgJiYgdHlwZW9mIGNvbHVtbi5zb3J0ZXIgPT09ICdvYmplY3QnICYmICdtdWx0aXBsZScgaW4gY29sdW1uLnNvcnRlcikge1xuICAgICAgICByZXR1cm4gY29sdW1uLnNvcnRlci5tdWx0aXBsZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gYXBwbHlTb3J0VG9EYXRhKGRhdGEsIGNvbHVtbnMsIHNvcnRlclN0YXRlcykge1xuICAgIGlmIChzb3J0ZXJTdGF0ZXMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICBjb25zdCBzb3J0ZWQgPSBbLi4uZGF0YV07XG4gICAgY29uc3QgcnVubmluZ1NvcnRlcnMgPSBzb3J0ZXJTdGF0ZXNcbiAgICAgICAgLm1hcCgoc3RhdGUpID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKChjb2wpID0+IGNvbC5rZXkgPT09IHN0YXRlLmNvbHVtbktleSk7XG4gICAgICAgIGlmICghY29sdW1uKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IGNvbXBhcmVGbiA9IGdldFNvcnRGdW5jdGlvbihjb2x1bW4uc29ydGVyKTtcbiAgICAgICAgaWYgKCFjb21wYXJlRm4pXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3QgcHJpb3JpdHkgPSBnZXRNdWx0aXBsZVByaW9yaXR5KGNvbHVtbik7XG4gICAgICAgIHJldHVybiB7IGNvbXBhcmVGbiwgb3JkZXI6IHN0YXRlLm9yZGVyLCBwcmlvcml0eSB9O1xuICAgIH0pXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gICAgaWYgKHJ1bm5pbmdTb3J0ZXJzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgLy8gSGlnaGVyIHByaW9yaXR5IG51bWJlciA9IGNvbXBhcmVkIGZpcnN0XG4gICAgcnVubmluZ1NvcnRlcnMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICBjb25zdCBhcCA9IHR5cGVvZiBhLnByaW9yaXR5ID09PSAnbnVtYmVyJyA/IGEucHJpb3JpdHkgOiAwO1xuICAgICAgICBjb25zdCBicCA9IHR5cGVvZiBiLnByaW9yaXR5ID09PSAnbnVtYmVyJyA/IGIucHJpb3JpdHkgOiAwO1xuICAgICAgICByZXR1cm4gYnAgLSBhcDtcbiAgICB9KTtcbiAgICBzb3J0ZWQuc29ydCgocmVjb3JkMSwgcmVjb3JkMikgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IHsgY29tcGFyZUZuLCBvcmRlciB9IG9mIHJ1bm5pbmdTb3J0ZXJzKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBjb21wYXJlRm4ocmVjb3JkMSwgcmVjb3JkMik7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yZGVyID09PSAnYXNjZW5kJyA/IHJlc3VsdCA6IC1yZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNvcnRlZDtcbn1cbmV4cG9ydCBjb25zdCBhcHBseVRhYmxlUGlwZWxpbmUgPSAoeyBjb2x1bW5zLCBkYXRhU291cmNlLCBzb3J0ZXIsIHBhZ2luYXRpb24sIH0pID0+IHtcbiAgICBjb25zdCBzb3J0ZXJTdGF0ZXMgPSBzb3J0ZXIuY29sdW1uS2V5ICE9IG51bGwgJiYgc29ydGVyLm9yZGVyXG4gICAgICAgID8gW3sgY29sdW1uS2V5OiBzb3J0ZXIuY29sdW1uS2V5LCBvcmRlcjogc29ydGVyLm9yZGVyIH1dXG4gICAgICAgIDogW107XG4gICAgY29uc3QgbGVhZkNvbHVtbnMgPSBmbGF0dGVuQ29sdW1ucyhjb2x1bW5zKTtcbiAgICBjb25zdCBzb3J0ZWQgPSBhcHBseVNvcnRUb0RhdGEoZGF0YVNvdXJjZSwgbGVhZkNvbHVtbnMsIHNvcnRlclN0YXRlcyk7XG4gICAgaWYgKCFwYWdpbmF0aW9uKSB7XG4gICAgICAgIHJldHVybiB7IGN1cnJlbnREYXRhU291cmNlOiBzb3J0ZWQsIHRvdGFsOiBzb3J0ZWQubGVuZ3RoIH07XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0ID0gKHBhZ2luYXRpb24uY3VycmVudCAtIDEpICogcGFnaW5hdGlvbi5wYWdlU2l6ZTtcbiAgICBjb25zdCBlbmQgPSBzdGFydCArIHBhZ2luYXRpb24ucGFnZVNpemU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IHNvcnRlZC5zbGljZShzdGFydCwgZW5kKSxcbiAgICAgICAgdG90YWw6IHNvcnRlZC5sZW5ndGgsXG4gICAgfTtcbn07XG5mdW5jdGlvbiBjb2xsZWN0U29ydGVyU3RhdGVzKGNvbHVtbnMpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgbGVhdmVzID0gZmxhdHRlbkNvbHVtbnMoY29sdW1ucyk7XG4gICAgY29uc3Qgc3RhdGVzID0gW107XG4gICAgZm9yIChjb25zdCBjb2wgb2YgbGVhdmVzKSB7XG4gICAgICAgIGNvbnN0IG9yZGVyID0gKF9hID0gY29sLnNvcnRPcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogY29sLmRlZmF1bHRTb3J0T3JkZXI7XG4gICAgICAgIGlmIChjb2wua2V5ICE9IG51bGwgJiYgb3JkZXIpIHtcbiAgICAgICAgICAgIHN0YXRlcy5wdXNoKHsgY29sdW1uS2V5OiBjb2wua2V5LCBvcmRlciB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RhdGVzO1xufVxuY29uc3QgZ2V0SW5pdGlhbFNvcnRlciA9IChjb2x1bW5zKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVzID0gY29sbGVjdFNvcnRlclN0YXRlcyhjb2x1bW5zKTtcbiAgICBpZiAoc3RhdGVzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIHJldHVybiB7IGNvbHVtbktleTogc3RhdGVzWzBdLmNvbHVtbktleSwgb3JkZXI6IHN0YXRlc1swXS5vcmRlciB9O1xufTtcbmNvbnN0IGdldENvbnRyb2xsZWRTb3J0ZXIgPSAoY29sdW1ucykgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBsZWF2ZXMgPSBmbGF0dGVuQ29sdW1ucyhjb2x1bW5zKTtcbiAgICBjb25zdCBjb250cm9sbGVkQ29sdW1uID0gbGVhdmVzLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uLnNvcnRPcmRlciAhPT0gdW5kZWZpbmVkKTtcbiAgICBpZiAoIWNvbnRyb2xsZWRDb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29sdW1uS2V5OiBjb250cm9sbGVkQ29sdW1uLmtleSxcbiAgICAgICAgb3JkZXI6IChfYSA9IGNvbnRyb2xsZWRDb2x1bW4uc29ydE9yZGVyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsLFxuICAgIH07XG59O1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlRGF0YVBpcGVsaW5lID0gKHsgY29sdW1ucywgZGF0YVNvdXJjZSwgcGFnaW5hdGlvbiwgb25DaGFuZ2UsIH0pID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgY29uc3QgW3NvcnRlciwgc2V0U29ydGVyXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShnZXRJbml0aWFsU29ydGVyKGNvbHVtbnMpLCBnZXRDb250cm9sbGVkU29ydGVyKGNvbHVtbnMpKTtcbiAgICBjb25zdCBbY3VycmVudCwgc2V0Q3VycmVudF0gPSB1c2VDb250cm9sbGVkU3RhdGUocGFnaW5hdGlvbiA9PT0gZmFsc2UgPyAxIDogKChfYiA9IChfYSA9IHBhZ2luYXRpb24gPT09IG51bGwgfHwgcGFnaW5hdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFnaW5hdGlvbi5kZWZhdWx0Q3VycmVudCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcGFnaW5hdGlvbiA9PT0gbnVsbCB8fCBwYWdpbmF0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYWdpbmF0aW9uLmN1cnJlbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDEpLCBwYWdpbmF0aW9uID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHBhZ2luYXRpb24gPT09IG51bGwgfHwgcGFnaW5hdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFnaW5hdGlvbi5jdXJyZW50KTtcbiAgICBjb25zdCBbcGFnZVNpemUsIHNldFBhZ2VTaXplXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShwYWdpbmF0aW9uID09PSBmYWxzZSA/IDEwIDogKChfZCA9IChfYyA9IHBhZ2luYXRpb24gPT09IG51bGwgfHwgcGFnaW5hdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFnaW5hdGlvbi5kZWZhdWx0UGFnZVNpemUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IHBhZ2luYXRpb24gPT09IG51bGwgfHwgcGFnaW5hdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFnaW5hdGlvbi5wYWdlU2l6ZSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMTApLCBwYWdpbmF0aW9uID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHBhZ2luYXRpb24gPT09IG51bGwgfHwgcGFnaW5hdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFnaW5hdGlvbi5wYWdlU2l6ZSk7XG4gICAgY29uc3QgbWVyZ2VkUGFnaW5hdGlvbiA9IHBhZ2luYXRpb24gPT09IGZhbHNlXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiB7IGN1cnJlbnQsIHBhZ2VTaXplIH07XG4gICAgY29uc3Qgc29ydGVyU3RhdGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIC8vIFN0YXJ0IHdpdGggdGhlIHByaW1hcnkgdXNlci10b2dnbGVkIHNvcnRlclxuICAgICAgICBjb25zdCBwcmltYXJ5ID0gc29ydGVyLmNvbHVtbktleSAhPSBudWxsICYmIHNvcnRlci5vcmRlclxuICAgICAgICAgICAgPyBbeyBjb2x1bW5LZXk6IHNvcnRlci5jb2x1bW5LZXksIG9yZGVyOiBzb3J0ZXIub3JkZXIgfV1cbiAgICAgICAgICAgIDogW107XG4gICAgICAgIC8vIENvbGxlY3QgYW55IG90aGVyIGNvbHVtbnMgdGhhdCBoYXZlIGEgY29udHJvbGxlZCBzb3J0T3JkZXIgKGZvciBtdWx0aS1zb3J0KVxuICAgICAgICBjb25zdCBsZWFmQ29sdW1ucyA9IGZsYXR0ZW5Db2x1bW5zKGNvbHVtbnMpO1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsID0gbGVhZkNvbHVtbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKGNvbCkgPT4gY29sLmtleSAhPSBudWxsICYmIGNvbC5zb3J0T3JkZXIgJiYgY29sLmtleSAhPT0gc29ydGVyLmNvbHVtbktleSlcbiAgICAgICAgICAgIC5tYXAoKGNvbCkgPT4gKHsgY29sdW1uS2V5OiBjb2wua2V5LCBvcmRlcjogY29sLnNvcnRPcmRlciB9KSk7XG4gICAgICAgIHJldHVybiBbLi4ucHJpbWFyeSwgLi4uYWRkaXRpb25hbF07XG4gICAgfSwgW3NvcnRlciwgY29sdW1uc10pO1xuICAgIGNvbnN0IHJlc3VsdCA9IHVzZU1lbW8oKCkgPT4gYXBwbHlUYWJsZVBpcGVsaW5lKHtcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgc29ydGVyLFxuICAgICAgICBwYWdpbmF0aW9uOiBtZXJnZWRQYWdpbmF0aW9uLFxuICAgIH0pLCBbY29sdW1ucywgZGF0YVNvdXJjZSwgc29ydGVyLCBtZXJnZWRQYWdpbmF0aW9uXSk7XG4gICAgLy8gdXNlTWVtb2l6ZWRGbjogc3RhYmxlIHJlZiwgYWx3YXlzIGNhbGxzIGxhdGVzdCBjbG9zdXJlIOKAlCBubyBzdGFsZSBkZXBzIHJpc2tcbiAgICBjb25zdCB3cmFwcGVkU2V0U29ydGVyID0gdXNlTWVtb2l6ZWRGbigodXBkYXRlcikgPT4ge1xuICAgICAgICBjb25zdCBuZXh0U29ydGVyID0gdHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKHNvcnRlcikgOiB1cGRhdGVyO1xuICAgICAgICBzZXRTb3J0ZXIobmV4dFNvcnRlcik7XG4gICAgICAgIC8vIFJlc2V0IHBhZ2luYXRpb24gdG8gcGFnZSAxIHdoZW4gc29ydGluZyBjaGFuZ2VzXG4gICAgICAgIGlmIChtZXJnZWRQYWdpbmF0aW9uICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgc2V0Q3VycmVudCgxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc2V0UGFnaW5hdGlvbiA9IG1lcmdlZFBhZ2luYXRpb24gPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgIDogeyBjdXJyZW50OiAxLCBwYWdlU2l6ZSB9O1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlc3VsdCA9IGFwcGx5VGFibGVQaXBlbGluZSh7XG4gICAgICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlLFxuICAgICAgICAgICAgICAgIHNvcnRlcjogbmV4dFNvcnRlcixcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uOiByZXNldFBhZ2luYXRpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9uQ2hhbmdlKHsgY3VycmVudERhdGFTb3VyY2U6IG5leHRSZXN1bHQuY3VycmVudERhdGFTb3VyY2UsIGFjdGlvbjogJ3NvcnQnIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgd3JhcHBlZFNldFBhZ2luYXRpb24gPSB1c2VNZW1vaXplZEZuKCh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGlmIChwYWdpbmF0aW9uID09PSBmYWxzZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0geyBjdXJyZW50LCBwYWdlU2l6ZSB9O1xuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0eXBlb2YgdXBkYXRlciA9PT0gJ2Z1bmN0aW9uJyA/IHVwZGF0ZXIoY3VycmVudFZhbHVlKSA6IHVwZGF0ZXI7XG4gICAgICAgIHNldEN1cnJlbnQobmV4dFZhbHVlLmN1cnJlbnQpO1xuICAgICAgICBzZXRQYWdlU2l6ZShuZXh0VmFsdWUucGFnZVNpemUpO1xuICAgICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZXN1bHQgPSBhcHBseVRhYmxlUGlwZWxpbmUoe1xuICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgICAgICAgICBzb3J0ZXIsXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogbmV4dFZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBvbkNoYW5nZSh7IGN1cnJlbnREYXRhU291cmNlOiBuZXh0UmVzdWx0LmN1cnJlbnREYXRhU291cmNlLCBhY3Rpb246ICdwYWdpbmF0ZScgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCByZXN1bHQpLCB7IHNvcnRlcixcbiAgICAgICAgc29ydGVyU3RhdGVzLCBwYWdpbmF0aW9uOiBtZXJnZWRQYWdpbmF0aW9uLCBzZXRTb3J0ZXI6IHdyYXBwZWRTZXRTb3J0ZXIsIHNldFBhZ2luYXRpb246IHdyYXBwZWRTZXRQYWdpbmF0aW9uIH0pO1xufTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
428
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvc3JjL2NvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZURhdGFQaXBlbGluZS50cyIsImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZURhdGFQaXBlbGluZS5qcyJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsImlzQ29sdW1uR3JvdXAiLCJjb2wiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZHJlbiIsImZsYXR0ZW5Db2x1bW5zIiwiY29sdW1ucyIsInJlc3VsdCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsInB1c2giLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsImVyciIsImUiLCJmIiwiZ2V0U29ydEZ1bmN0aW9uIiwic29ydGVyIiwiX3R5cGVvZiIsImNvbXBhcmUiLCJnZXRNdWx0aXBsZVByaW9yaXR5IiwiY29sdW1uIiwibXVsdGlwbGUiLCJhcHBseVNvcnRUb0RhdGEiLCJkYXRhIiwic29ydGVyU3RhdGVzIiwibGVuZ3RoIiwic29ydGVkIiwicnVubmluZ1NvcnRlcnMiLCJtYXAiLCJzdGF0ZSIsImZpbmQiLCJrZXkiLCJjb2x1bW5LZXkiLCJjb21wYXJlRm4iLCJwcmlvcml0eSIsIm9yZGVyIiwiZmlsdGVyIiwiQm9vbGVhbiIsInNvcnQiLCJhIiwiYiIsImFwIiwiYnAiLCJyZWNvcmQxIiwicmVjb3JkMiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfc3RlcDIkdmFsdWUiLCJhcHBseUZpbHRlcnNUb0RhdGEiLCJmaWx0ZXJzIiwiYWN0aXZlRmlsdGVycyIsInNlbGVjdGVkIiwiU3RyaW5nIiwib25GaWx0ZXIiLCJyZWNvcmQiLCJldmVyeSIsIl9yZWYiLCJzb21lIiwiYXBwbHlUYWJsZVBpcGVsaW5lIiwiX3JlZjIiLCJkYXRhU291cmNlIiwiX3JlZjIkZmlsdGVycyIsInBhZ2luYXRpb24iLCJsZWFmQ29sdW1ucyIsImZpbHRlcmVkIiwiY3VycmVudERhdGFTb3VyY2UiLCJ0b3RhbCIsInN0YXJ0IiwiY3VycmVudCIsInBhZ2VTaXplIiwiZW5kIiwic2xpY2UiLCJjb2xsZWN0U29ydGVyU3RhdGVzIiwiX2EiLCJsZWF2ZXMiLCJzdGF0ZXMiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwic29ydE9yZGVyIiwiZGVmYXVsdFNvcnRPcmRlciIsImdldEluaXRpYWxTb3J0ZXIiLCJnZXRDb250cm9sbGVkU29ydGVyIiwiY29udHJvbGxlZENvbHVtbiIsInVuZGVmaW5lZCIsImdldEluaXRpYWxGaWx0ZXJzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsImluaXRpYWwiLCJkZWZhdWx0RmlsdGVyZWRWYWx1ZSIsImZpbHRlcmVkVmFsdWUiLCJnZXRDb250cm9sbGVkRmlsdGVycyIsImhhc0NvbnRyb2xsZWQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwidXNlU3RhYmxlUmVmIiwiZXF1YWwiLCJyZWYiLCJzb3J0ZXJFcXVhbCIsImZpbHRlclZhbHVlRXF1YWwiLCJpIiwiZmlsdGVyc0VxdWFsIiwia2V5c0EiLCJPYmplY3QiLCJrZXlzIiwia2V5c0IiLCJfaSIsIl9rZXlzQSIsInVzZVRhYmxlRGF0YVBpcGVsaW5lIiwiX3JlZjMiLCJvbkNoYW5nZSIsIl9iIiwiX2MiLCJfZCIsImNvbnRyb2xsZWRTb3J0ZXIiLCJjb250cm9sbGVkRmlsdGVycyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0U29ydGVyIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsInNldEZpbHRlcnMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNSIsImRlZmF1bHRDdXJyZW50IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTYiLCJzZXRDdXJyZW50IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTciLCJkZWZhdWx0UGFnZVNpemUiLCJfdXNlQ29udHJvbGxlZFN0YXRlOCIsInNldFBhZ2VTaXplIiwibWVyZ2VkUGFnaW5hdGlvbiIsInByaW1hcnkiLCJhZGRpdGlvbmFsIiwiY29uY2F0IiwiZW1pdENoYW5nZSIsIm5leHREYXRhU291cmNlIiwiYWN0aW9uIiwibmV4dFN0YXRlIiwid3JhcHBlZFNldFNvcnRlciIsInVwZGF0ZXIiLCJuZXh0U29ydGVyIiwicmVzZXRQYWdpbmF0aW9uIiwibmV4dFJlc3VsdCIsIndyYXBwZWRTZXRGaWx0ZXJzIiwibmV4dEZpbHRlcnMiLCJ3cmFwcGVkU2V0UGFnaW5hdGlvbiIsImN1cnJlbnRWYWx1ZSIsIm5leHRWYWx1ZSIsImFzc2lnbiIsInNldFBhZ2luYXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDdkMsU0FBU0Msa0JBQWtCLEVBQUVDLGFBQWEsUUFBUSxlQUFlO0FBZWpFLFNBQVNDLGFBQWFBLENBQ3BCQyxHQUF1QixFQUFBO0VBRXZCLE9BQU8sVUFBVSxJQUFJQSxHQUFHLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFFRixHQUEyQixDQUFDRyxRQUFRLENBQUM7QUFDbEY7QUFFQSxTQUFTQyxjQUFjQSxDQUNyQkMsT0FBNkIsRUFBQTtFQUU3QixJQUFNQyxNQUFNLEdBQXFCLEVBQUU7RUFBQyxJQUFBQyxTQUFBLEdBQUFDLDBCQUFBLENBQ2xCSCxPQUFPO0lBQUFJLEtBQUE7RUFBQTtJQUF6QixLQUFBRixTQUFBLENBQUFHLENBQUEsTUFBQUQsS0FBQSxHQUFBRixTQUFBLENBQUFJLENBQUEsSUFBQUMsSUFBQSxHQUEyQjtNQUFBLElBQWhCWixHQUFHLEdBQUFTLEtBQUEsQ0FBQUksS0FBQTtNQUNaLElBQUlkLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDLEVBQUU7UUFDdEJNLE1BQU0sQ0FBQ1EsSUFBSSxDQUFBQyxLQUFBLENBQVhULE1BQU0sRUFBQVUsa0JBQUEsQ0FBU1osY0FBYyxD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QUNzQixTQUFTLENBQUMvRSxPQUFPLENBQUM7SUFDN0I2RCxXQUFXLENBQUNrQixTQUFTLENBQUM5RSxRQUFRLENBQUM7SUFFL0IsSUFBSXdDLFFBQVEsRUFBRTtNQUNaLElBQU1pQyxVQUFVLEdBQUdwRixrQkFBa0IsQ0FBQztRQUNwQzFELE9BQU8sRUFBUEEsT0FBTztRQUNQNEQsVUFBVSxFQUFWQSxVQUFVO1FBQ1Y1QyxNQUFNLEVBQU5BLE1BQU07UUFDTmlDLE9BQU8sRUFBUEEsT0FBTztRQUNQYSxVQUFVLEVBQUVxRjtNQ3hLVixDRHlLSCxDQUFDO01BQ0ZiLFVBQVUsQ0FBQ1EsVUFBVSxDQUFDN0UsaUJBQWlCLEVBQUUsVUFBVSxFQUFFO1FBQ25EakQsTUFBTSxFQUFOQSxNQUFNO1FBQ05pQyxPQUFPLEVBQVBBLE9BQU87UUFDUGEsVUFBVSxFQUFFcUY7TUN4S1YsQ0R5S0gsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxDQUNGO0VBRUQsT0FBQTdDLE1BQUEsQ0FBQThDLE1BQUEsQ0FBQTlDLE1BQUEsQ0FBQThDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDS25KLE1BQU0sQ0FBQSxFQUFBO0lBQ1RlLE1BQU0sRUFBTkEsTUFBTTtJQUNOUSxZQUFZLEVBQVpBLFlBQVk7SUFDWnlCLE9BQU8sRUFBUEEsT0FBTztJQUNQYSxVQUFVLEVBQUVvRSxnQkFBZ0I7SUFDNUJaLFNBQVMsRUFBRW9CLGdCQUFnQjtJQUMzQmpCLFVBQVUsRUFBRXNCLGlCQUFpQjtJQUM3Qk0sYUFBYSxFQUFFSjtFQUFvQixDQUFBLENBQUE7QUFFdkMsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVEYXRhUGlwZWxpbmUuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuZnVuY3Rpb24gaXNDb2x1bW5Hcm91cChjb2wpIHtcbiAgICByZXR1cm4gJ2NoaWxkcmVuJyBpbiBjb2wgJiYgQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pO1xufVxuZnVuY3Rpb24gZmxhdHRlbkNvbHVtbnMoY29sdW1ucykge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcbiAgICAgICAgaWYgKGlzQ29sdW1uR3JvdXAoY29sKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uZmxhdHRlbkNvbHVtbnMoY29sLmNoaWxkcmVuKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChjb2wpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBnZXRTb3J0RnVuY3Rpb24oc29ydGVyKSB7XG4gICAgaWYgKHR5cGVvZiBzb3J0ZXIgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBzb3J0ZXI7XG4gICAgaWYgKHNvcnRlciAmJiB0eXBlb2Ygc29ydGVyID09PSAnb2JqZWN0JyAmJiAnY29tcGFyZScgaW4gc29ydGVyKVxuICAgICAgICByZXR1cm4gc29ydGVyLmNvbXBhcmU7XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZ2V0TXVsdGlwbGVQcmlvcml0eShjb2x1bW4pIHtcbiAgICBpZiAoY29sdW1uLnNvcnRlciAmJiB0eXBlb2YgY29sdW1uLnNvcnRlciA9PT0gJ29iamVjdCcgJiYgJ211bHRpcGxlJyBpbiBjb2x1bW4uc29ydGVyKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4uc29ydGVyLm11bHRpcGxlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBhcHBseVNvcnRUb0RhdGEoZGF0YSwgY29sdW1ucywgc29ydGVyU3RhdGVzKSB7XG4gICAgaWYgKHNvcnRlclN0YXRlcy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIGNvbnN0IHNvcnRlZCA9IFsuLi5kYXRhXTtcbiAgICBjb25zdCBydW5uaW5nU29ydGVycyA9IHNvcnRlclN0YXRlc1xuICAgICAgICAubWFwKChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGNvbCkgPT4gY29sLmtleSA9PT0gc3RhdGUuY29sdW1uS2V5KTtcbiAgICAgICAgaWYgKCFjb2x1bW4pXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3QgY29tcGFyZUZuID0gZ2V0U29ydEZ1bmN0aW9uKGNvbHVtbi5zb3J0ZXIpO1xuICAgICAgICBpZiAoIWNvbXBhcmVGbilcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCBwcmlvcml0eSA9IGdldE11bHRpcGxlUHJpb3JpdHkoY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIHsgY29tcGFyZUZuLCBvcmRlcjogc3RhdGUub3JkZXIsIHByaW9yaXR5IH07XG4gICAgfSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcbiAgICBpZiAocnVubmluZ1NvcnRlcnMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAvLyBIaWdoZXIgcHJpb3JpdHkgbnVtYmVyID0gY29tcGFyZWQgZmlyc3RcbiAgICBydW5uaW5nU29ydGVycy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwID0gdHlwZW9mIGEucHJpb3JpdHkgPT09ICdudW1iZXInID8gYS5wcmlvcml0eSA6IDA7XG4gICAgICAgIGNvbnN0IGJwID0gdHlwZW9mIGIucHJpb3JpdHkgPT09ICdudW1iZXInID8gYi5wcmlvcml0eSA6IDA7XG4gICAgICAgIHJldHVybiBicCAtIGFwO1xuICAgIH0pO1xuICAgIHNvcnRlZC5zb3J0KChyZWNvcmQxLCByZWNvcmQyKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgeyBjb21wYXJlRm4sIG9yZGVyIH0gb2YgcnVubmluZ1NvcnRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGNvbXBhcmVGbihyZWNvcmQxLCByZWNvcmQyKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JkZXIgPT09ICdhc2NlbmQnID8gcmVzdWx0IDogLXJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICByZXR1cm4gc29ydGVkO1xufVxuZnVuY3Rpb24gYXBwbHlGaWx0ZXJzVG9EYXRhKGRhdGEsIGNvbHVtbnMsIGZpbHRlcnMpIHtcbiAgICAvLyBSZXNvbHZlIHdoaWNoIGNvbHVtbnMgaGF2ZSBhbiBhY3RpdmUgZmlsdGVyIHNlbGVjdGlvbiBBTkQgYSBwcmVkaWNhdGUuXG4gICAgY29uc3QgYWN0aXZlRmlsdGVycyA9IGNvbHVtbnNcbiAgICAgICAgLm1hcCgoY29sKSA9PiB7XG4gICAgICAgIGlmIChjb2wua2V5ID09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBmaWx0ZXJzW1N0cmluZyhjb2wua2V5KV07XG4gICAgICAgIGlmICghc2VsZWN0ZWQgfHwgc2VsZWN0ZWQubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmICghY29sLm9uRmlsdGVyKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiB7IG9uRmlsdGVyOiBjb2wub25GaWx0ZXIsIHNlbGVjdGVkIH07XG4gICAgfSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcbiAgICBpZiAoYWN0aXZlRmlsdGVycy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBkYXRhLmZpbHRlcigocmVjb3JkKSA9PiBcbiAgICAvLyBSb3cgcGFzc2VzIG9ubHkgaWYgRVZFUlkgYWN0aXZlIGNvbHVtbiBoYXMgYXQgbGVhc3Qgb25lIG1hdGNoaW5nIHNlbGVjdGVkIHZhbHVlLlxuICAgIGFjdGl2ZUZpbHRlcnMuZXZlcnkoKHsgb25GaWx0ZXIsIHNlbGVjdGVkIH0pID0+IHNlbGVjdGVkLnNvbWUoKHZhbHVlKSA9PiBvbkZpbHRlcih2YWx1ZSwgcmVjb3JkKSkpKTtcbn1cbmV4cG9ydCBjb25zdCBhcHBseVRhYmxlUGlwZWxpbmUgPSAoeyBjb2x1bW5zLCBkYXRhU291cmNlLCBzb3J0ZXIsIGZpbHRlcnMgPSB7fSwgcGFnaW5hdGlvbiwgfSkgPT4ge1xuICAgIGNvbnN0IHNvcnRlclN0YXRlcyA9IHNvcnRlci5jb2x1bW5LZXkgIT0gbnVsbCAmJiBzb3J0ZXIub3JkZXJcbiAgICAgICAgPyBbeyBjb2x1bW5LZXk6IHNvcnRlci5jb2x1bW5LZXksIG9yZGVyOiBzb3J0ZXIub3JkZXIgfV1cbiAgICAgICAgOiBbXTtcbiAgICBjb25zdCBsZWFmQ29sdW1ucyA9IGZsYXR0ZW5Db2x1bW5zKGNvbHVtbnMpO1xuICAgIGNvbnN0IGZpbHRlcmVkID0gYXBwbHlGaWx0ZXJzVG9EYXRhKGRhdGFTb3VyY2UsIGxlYWZDb2x1bW5zLCBmaWx0ZXJzKTtcbiAgICBjb25zdCBzb3J0ZWQgPSBhcHBseVNvcnRUb0RhdGEoZmlsdGVyZWQsIGxlYWZDb2x1bW5zLCBzb3J0ZXJTdGF0ZXMpO1xuICAgIGlmICghcGFnaW5hdGlvbikge1xuICAgICAgICByZXR1cm4geyBjdXJyZW50RGF0YVNvdXJjZTogc29ydGVkLCB0b3RhbDogc29ydGVkLmxlbmd0aCB9O1xuICAgIH1cbiAgICBjb25zdCBzdGFydCA9IChwYWdpbmF0aW9uLmN1cnJlbnQgLSAxKSAqIHBhZ2luYXRpb24ucGFnZVNpemU7XG4gICAgY29uc3QgZW5kID0gc3RhcnQgKyBwYWdpbmF0aW9uLnBhZ2VTaXplO1xuICAgIHJldHVybiB7XG4gICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBzb3J0ZWQuc2xpY2Uoc3RhcnQsIGVuZCksXG4gICAgICAgIHRvdGFsOiBzb3J0ZWQubGVuZ3RoLFxuICAgIH07XG59O1xuZnVuY3Rpb24gY29sbGVjdFNvcnRlclN0YXRlcyhjb2x1bW5zKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGxlYXZlcyA9IGZsYXR0ZW5Db2x1bW5zKGNvbHVtbnMpO1xuICAgIGNvbnN0IHN0YXRlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgY29sIG9mIGxlYXZlcykge1xuICAgICAgICBjb25zdCBvcmRlciA9IChfYSA9IGNvbC5zb3J0T3JkZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbC5kZWZhdWx0U29ydE9yZGVyO1xuICAgICAgICBpZiAoY29sLmtleSAhPSBudWxsICYmIG9yZGVyKSB7XG4gICAgICAgICAgICBzdGF0ZXMucHVzaCh7IGNvbHVtbktleTogY29sLmtleSwgb3JkZXIgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlcztcbn1cbmNvbnN0IGdldEluaXRpYWxTb3J0ZXIgPSAoY29sdW1ucykgPT4ge1xuICAgIGNvbnN0IHN0YXRlcyA9IGNvbGxlY3RTb3J0ZXJTdGF0ZXMoY29sdW1ucyk7XG4gICAgaWYgKHN0YXRlcy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB7fTtcbiAgICByZXR1cm4geyBjb2x1bW5LZXk6IHN0YXRlc1swXS5jb2x1bW5LZXksIG9yZGVyOiBzdGF0ZXNbMF0ub3JkZXIgfTtcbn07XG5jb25zdCBnZXRDb250cm9sbGVkU29ydGVyID0gKGNvbHVtbnMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgbGVhdmVzID0gZmxhdHRlbkNvbHVtbnMoY29sdW1ucyk7XG4gICAgY29uc3QgY29udHJvbGxlZENvbHVtbiA9IGxlYXZlcy5maW5kKChjb2x1bW4pID0+IGNvbHVtbi5zb3J0T3JkZXIgIT09IHVuZGVmaW5lZCk7XG4gICAgaWYgKCFjb250cm9sbGVkQ29sdW1uKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGNvbHVtbktleTogY29udHJvbGxlZENvbHVtbi5rZXksXG4gICAgICAgIG9yZGVyOiAoX2EgPSBjb250cm9sbGVkQ29sdW1uLnNvcnRPcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCxcbiAgICB9O1xufTtcbmNvbnN0IGdldEluaXRpYWxGaWx0ZXJzID0gKGNvbHVtbnMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgbGVhdmVzID0gZmxhdHRlbkNvbHVtbnMoY29sdW1ucyk7XG4gICAgY29uc3Qgc3RhdGUgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBsZWF2ZXMpIHtcbiAgICAgICAgaWYgKGNvbC5rZXkgPT0gbnVsbClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBpbml0aWFsID0gKF9hID0gY29sLmRlZmF1bHRGaWx0ZXJlZFZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjb2wuZmlsdGVyZWRWYWx1ZTtcbiAgICAgICAgaWYgKGluaXRpYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc3RhdGVbU3RyaW5nKGNvbC5rZXkpXSA9IGluaXRpYWwgIT09IG51bGwgJiYgaW5pdGlhbCAhPT0gdm9pZCAwID8gaW5pdGlhbCA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbmNvbnN0IGdldENvbnRyb2xsZWRGaWx0ZXJzID0gKGNvbHVtbnMpID0+IHtcbiAgICBjb25zdCBsZWF2ZXMgPSBmbGF0dGVuQ29sdW1ucyhjb2x1bW5zKTtcbiAgICBsZXQgaGFzQ29udHJvbGxlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHN0YXRlID0ge307XG4gICAgZm9yIChjb25zdCBjb2wgb2YgbGVhdmVzKSB7XG4gICAgICAgIGlmIChjb2wua2V5ID09IG51bGwpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGNvbC5maWx0ZXJlZFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhhc0NvbnRyb2xsZWQgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGVbU3RyaW5nKGNvbC5rZXkpXSA9IGNvbC5maWx0ZXJlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXNDb250cm9sbGVkID8gc3RhdGUgOiB1bmRlZmluZWQ7XG59O1xuLyoqXG4gKiBSZXR1cm5zIGEgdmFsdWUgd2hvc2UgcmVmZXJlbmNlIGlzIHByZXNlcnZlZCBhY3Jvc3MgcmVuZGVycyBhcyBsb25nIGFzIHRoZVxuICogc2hhbGxvdyBjb250ZW50cyBhcmUgdW5jaGFuZ2VkIChwZXIgYGVxdWFsYCkuIFVzZWQgdG8gc3RhYmlsaXNlIHRoZSBkZXJpdmVkXG4gKiBjb250cm9sbGVkIGNhbmRpZGF0ZXMgZmVkIHRvIGB1c2VDb250cm9sbGVkU3RhdGVgIOKAlCB0aGV5IHdvdWxkIG90aGVyd2lzZSBiZVxuICogZnJlc2ggb2JqZWN0cyBldmVyeSByZW5kZXIgYW5kIHRocmFzaCB0aGUgaG9vaydzIGludGVybmFsIGB1c2VMYXlvdXRFZmZlY3RgLlxuICovXG5mdW5jdGlvbiB1c2VTdGFibGVSZWYodmFsdWUsIGVxdWFsKSB7XG4gICAgY29uc3QgcmVmID0gdXNlUmVmKHZhbHVlKTtcbiAgICBpZiAoIWVxdWFsKHJlZi5jdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZi5jdXJyZW50O1xufVxuZnVuY3Rpb24gc29ydGVyRXF1YWwoYSwgYikge1xuICAgIGlmIChhID09PSBiKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIWEgfHwgIWIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gYS5jb2x1bW5LZXkgPT09IGIuY29sdW1uS2V5ICYmIGEub3JkZXIgPT09IGIub3JkZXI7XG59XG5mdW5jdGlvbiBmaWx0ZXJWYWx1ZUVxdWFsKGEsIGIpIHtcbiAgICBpZiAoYSA9PT0gYilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFhIHx8ICFiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYVtpXSAhPT0gYltpXSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBmaWx0ZXJzRXF1YWwoYSwgYikge1xuICAgIGlmIChhID09PSBiKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIWEgfHwgIWIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xuICAgIGNvbnN0IGtleXNCID0gT2JqZWN0LmtleXMoYik7XG4gICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5c0EpIHtcbiAgICAgICAgaWYgKCFmaWx0ZXJWYWx1ZUVxdWFsKGFba2V5XSwgYltrZXldKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5leHBvcnQgY29uc3QgdXNlVGFibGVEYXRhUGlwZWxpbmUgPSAoeyBjb2x1bW5zLCBkYXRhU291cmNlLCBwYWdpbmF0aW9uLCBvbkNoYW5nZSwgfSkgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAvLyBTb3J0ZXIgLyBmaWx0ZXJzIGFyZSBcImRlcml2ZWQgY29udHJvbGxlZFwiIOKAlCB0aGUgY29udHJvbGxlZCB2YWx1ZSBpcyBidWlsdFxuICAgIC8vIGJ5IHNjYW5uaW5nIGNvbHVtbiBwcm9wcyAoYHNvcnRPcmRlcmAgLyBgZmlsdGVyZWRWYWx1ZWApLCBzbyBgZ2V0Q29udHJvbGxlZCpgXG4gICAgLy8gcmV0dXJucyBhIGZyZXNoIG9iamVjdCBldmVyeSByZW5kZXIgZXZlbiB3aGVuIHRoZSB1bmRlcmx5aW5nIGlucHV0cyBhcmVcbiAgICAvLyB1bmNoYW5nZWQuIFdpdGhvdXQgc3RhYmlsaXNhdGlvbiwgYHVzZUNvbnRyb2xsZWRTdGF0ZWAncyBpbnRlcm5hbFxuICAgIC8vIGB1c2VMYXlvdXRFZmZlY3QoW3ZhbHVlXSlgIHdvdWxkIHJlLXN5bmMgb24gZXZlcnkgcmVuZGVyIOKGkiBpbmZpbml0ZSBsb29wLlxuICAgIC8vIFBpbiB0aGUgcmVmZXJlbmNlIHZpYSBhIHNoYWxsb3ctZXF1YWwgcmVmLlxuICAgIGNvbnN0IGNvbnRyb2xsZWRTb3J0ZXIgPSB1c2VTdGFibGVSZWYoZ2V0Q29udHJvbGxlZFNvcnRlcihjb2x1bW5zKSwgc29ydGVyRXF1YWwpO1xuICAgIGNvbnN0IGNvbnRyb2xsZWRGaWx0ZXJzID0gdXNlU3RhYmxlUmVmKGdldENvbnRyb2xsZWRGaWx0ZXJzKGNvbHVtbnMpLCBmaWx0ZXJzRXF1YWwpO1xuICAgIGNvbnN0IFtzb3J0ZXIsIHNldFNvcnRlcl0gPSB1c2VDb250cm9sbGVkU3RhdGUoZ2V0SW5pdGlhbFNvcnRlcihjb2x1bW5zKSwgY29udHJvbGxlZFNvcnRlcik7XG4gICAgY29uc3QgW2ZpbHRlcnMsIHNldEZpbHRlcnNdID0gdXNlQ29udHJvbGxlZFN0YXRlKGdldEluaXRpYWxGaWx0ZXJzKGNvbHVtbnMpLCBjb250cm9sbGVkRmlsdGVycyk7XG4gICAgY29uc3QgW2N1cnJlbnQsIHNldEN1cnJlbnRdID0gdXNlQ29udHJvbGxlZFN0YXRlKHBhZ2luYXRpb24gPT09IGZhbHNlID8gMSA6ICgoX2IgPSAoX2EgPSBwYWdpbmF0aW9uID09PSBudWxsIHx8IHBhZ2luYXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhZ2luYXRpb24uZGVmYXVsdEN1cnJlbnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHBhZ2luYXRpb24gPT09IG51bGwgfHwgcGFnaW5hdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFnaW5hdGlvbi5jdXJyZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAxKSwgcGFnaW5hdGlvbiA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiBwYWdpbmF0aW9uID09PSBudWxsIHx8IHBhZ2luYXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhZ2luYXRpb24uY3VycmVudCk7XG4gICAgY29uc3QgW3BhZ2VTaXplLCBzZXRQYWdlU2l6ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUocGFnaW5hdGlvbiA9PT0gZmFsc2UgPyAxMCA6ICgoX2QgPSAoX2MgPSBwYWdpbmF0aW9uID09PSBudWxsIHx8IHBhZ2luYXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhZ2luYXRpb24uZGVmYXVsdFBhZ2VTaXplKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBwYWdpbmF0aW9uID09PSBudWxsIHx8IHBhZ2luYXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhZ2luYXRpb24ucGFnZVNpemUpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDEwKSwgcGFnaW5hdGlvbiA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiBwYWdpbmF0aW9uID09PSBudWxsIHx8IHBhZ2luYXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhZ2luYXRpb24ucGFnZVNpemUpO1xuICAgIGNvbnN0IG1lcmdlZFBhZ2luYXRpb24gPSBwYWdpbmF0aW9uID09PSBmYWxzZVxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogeyBjdXJyZW50LCBwYWdlU2l6ZSB9O1xuICAgIGNvbnN0IHNvcnRlclN0YXRlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAvLyBTdGFydCB3aXRoIHRoZSBwcmltYXJ5IHVzZXItdG9nZ2xlZCBzb3J0ZXJcbiAgICAgICAgY29uc3QgcHJpbWFyeSA9IHNvcnRlci5jb2x1bW5LZXkgIT0gbnVsbCAmJiBzb3J0ZXIub3JkZXJcbiAgICAgICAgICAgID8gW3sgY29sdW1uS2V5OiBzb3J0ZXIuY29sdW1uS2V5LCBvcmRlcjogc29ydGVyLm9yZGVyIH1dXG4gICAgICAgICAgICA6IFtdO1xuICAgICAgICAvLyBDb2xsZWN0IGFueSBvdGhlciBjb2x1bW5zIHRoYXQgaGF2ZSBhIGNvbnRyb2xsZWQgc29ydE9yZGVyIChmb3IgbXVsdGktc29ydClcbiAgICAgICAgY29uc3QgbGVhZkNvbHVtbnMgPSBmbGF0dGVuQ29sdW1ucyhjb2x1bW5zKTtcbiAgICAgICAgY29uc3QgYWRkaXRpb25hbCA9IGxlYWZDb2x1bW5zXG4gICAgICAgICAgICAuZmlsdGVyKChjb2wpID0+IGNvbC5rZXkgIT0gbnVsbCAmJiBjb2wuc29ydE9yZGVyICYmIGNvbC5rZXkgIT09IHNvcnRlci5jb2x1bW5LZXkpXG4gICAgICAgICAgICAubWFwKChjb2wpID0+ICh7IGNvbHVtbktleTogY29sLmtleSwgb3JkZXI6IGNvbC5zb3J0T3JkZXIgfSkpO1xuICAgICAgICByZXR1cm4gWy4uLnByaW1hcnksIC4uLmFkZGl0aW9uYWxdO1xuICAgIH0sIFtzb3J0ZXIsIGNvbHVtbnNdKTtcbiAgICBjb25zdCByZXN1bHQgPSB1c2VNZW1vKCgpID0+IGFwcGx5VGFibGVQaXBlbGluZSh7XG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGRhdGFTb3VyY2UsXG4gICAgICAgIHNvcnRlcixcbiAgICAgICAgZmlsdGVycyxcbiAgICAgICAgcGFnaW5hdGlvbjogbWVyZ2VkUGFnaW5hdGlvbixcbiAgICB9KSwgW2NvbHVtbnMsIGRhdGFTb3VyY2UsIHNvcnRlciwgZmlsdGVycywgbWVyZ2VkUGFnaW5hdGlvbl0pO1xuICAgIGNvbnN0IGVtaXRDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChuZXh0RGF0YVNvdXJjZSwgYWN0aW9uLCBuZXh0U3RhdGUpID0+IHtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKHtcbiAgICAgICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBuZXh0RGF0YVNvdXJjZSxcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIHNvcnRlcjogbmV4dFN0YXRlLnNvcnRlcixcbiAgICAgICAgICAgIGZpbHRlcnM6IG5leHRTdGF0ZS5maWx0ZXJzLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogbmV4dFN0YXRlLnBhZ2luYXRpb24sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIHVzZU1lbW9pemVkRm46IHN0YWJsZSByZWYsIGFsd2F5cyBjYWxscyBsYXRlc3QgY2xvc3VyZSDigJQgbm8gc3RhbGUgZGVwcyByaXNrXG4gICAgY29uc3Qgd3JhcHBlZFNldFNvcnRlciA9IHVzZU1lbW9pemVkRm4oKHVwZGF0ZXIpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFNvcnRlciA9IHR5cGVvZiB1cGRhdGVyID09PSAnZnVuY3Rpb24nID8gdXBkYXRlcihzb3J0ZXIpIDogdXBkYXRlcjtcbiAgICAgICAgc2V0U29ydGVyKG5leHRTb3J0ZXIpO1xuICAgICAgICAvLyBSZXNldCBwYWdpbmF0aW9uIHRvIHBhZ2UgMSB3aGVuIHNvcnRpbmcgY2hhbmdlc1xuICAgICAgICBpZiAobWVyZ2VkUGFnaW5hdGlvbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHNldEN1cnJlbnQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCByZXNldFBhZ2luYXRpb24gPSBtZXJnZWRQYWdpbmF0aW9uID09PSBmYWxzZVxuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IHsgY3VycmVudDogMSwgcGFnZVNpemUgfTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZXN1bHQgPSBhcHBseVRhYmxlUGlwZWxpbmUoe1xuICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgICAgICAgICBzb3J0ZXI6IG5leHRTb3J0ZXIsXG4gICAgICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uOiByZXNldFBhZ2luYXRpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGVtaXRDaGFuZ2UobmV4dFJlc3VsdC5jdXJyZW50RGF0YVNvdXJjZSwgJ3NvcnQnLCB7XG4gICAgICAgICAgICAgICAgc29ydGVyOiBuZXh0U29ydGVyLFxuICAgICAgICAgICAgICAgIGZpbHRlcnMsXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogcmVzZXRQYWdpbmF0aW9uLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB3cmFwcGVkU2V0RmlsdGVycyA9IHVzZU1lbW9pemVkRm4oKHVwZGF0ZXIpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dEZpbHRlcnMgPSB0eXBlb2YgdXBkYXRlciA9PT0gJ2Z1bmN0aW9uJyA/IHVwZGF0ZXIoZmlsdGVycykgOiB1cGRhdGVyO1xuICAgICAgICBzZXRGaWx0ZXJzKG5leHRGaWx0ZXJzKTtcbiAgICAgICAgLy8gUmVzZXQgcGFnaW5hdGlvbiB0byBwYWdlIDEgd2hlbiBmaWx0ZXJzIGNoYW5nZVxuICAgICAgICBpZiAobWVyZ2VkUGFnaW5hdGlvbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHNldEN1cnJlbnQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCByZXNldFBhZ2luYXRpb24gPSBtZXJnZWRQYWdpbmF0aW9uID09PSBmYWxzZVxuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IHsgY3VycmVudDogMSwgcGFnZVNpemUgfTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZXN1bHQgPSBhcHBseVRhYmxlUGlwZWxpbmUoe1xuICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgICAgICAgICBzb3J0ZXIsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogbmV4dEZpbHRlcnMsXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogcmVzZXRQYWdpbmF0aW9uLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlbWl0Q2hhbmdlKG5leHRSZXN1bHQuY3VycmVudERhdGFTb3VyY2UsICdmaWx0ZXInLCB7XG4gICAgICAgICAgICAgICAgc29ydGVyLFxuICAgICAgICAgICAgICAgIGZpbHRlcnM6IG5leHRGaWx0ZXJzLFxuICAgICAgICAgICAgICAgIHBhZ2luYXRpb246IHJlc2V0UGFnaW5hdGlvbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgd3JhcHBlZFNldFBhZ2luYXRpb24gPSB1c2VNZW1vaXplZEZuKCh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGlmIChwYWdpbmF0aW9uID09PSBmYWxzZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0geyBjdXJyZW50LCBwYWdlU2l6ZSB9O1xuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0eXBlb2YgdXBkYXRlciA9PT0gJ2Z1bmN0aW9uJyA/IHVwZGF0ZXIoY3VycmVudFZhbHVlKSA6IHVwZGF0ZXI7XG4gICAgICAgIHNldEN1cnJlbnQobmV4dFZhbHVlLmN1cnJlbnQpO1xuICAgICAgICBzZXRQYWdlU2l6ZShuZXh0VmFsdWUucGFnZVNpemUpO1xuICAgICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZXN1bHQgPSBhcHBseVRhYmxlUGlwZWxpbmUoe1xuICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgICAgICAgICBzb3J0ZXIsXG4gICAgICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uOiBuZXh0VmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGVtaXRDaGFuZ2UobmV4dFJlc3VsdC5jdXJyZW50RGF0YVNvdXJjZSwgJ3BhZ2luYXRlJywge1xuICAgICAgICAgICAgICAgIHNvcnRlcixcbiAgICAgICAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICAgICAgICAgIHBhZ2luYXRpb246IG5leHRWYWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcmVzdWx0KSwgeyBzb3J0ZXIsXG4gICAgICAgIHNvcnRlclN0YXRlcyxcbiAgICAgICAgZmlsdGVycywgcGFnaW5hdGlvbjogbWVyZ2VkUGFnaW5hdGlvbiwgc2V0U29ydGVyOiB3cmFwcGVkU2V0U29ydGVyLCBzZXRGaWx0ZXJzOiB3cmFwcGVkU2V0RmlsdGVycywgc2V0UGFnaW5hdGlvbjogd3JhcHBlZFNldFBhZ2luYXRpb24gfSk7XG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Key } from 'react';
|
|
2
|
-
import type { TableExpandableConfig } from '../interface';
|
|
3
|
-
export declare const useTableExpand: <T>({ expandable, }: {
|
|
2
|
+
import type { TableExpandableConfig, TableRecord } from '../interface';
|
|
3
|
+
export declare const useTableExpand: <T extends TableRecord = TableRecord>({ expandable, }: {
|
|
4
4
|
expandable?: TableExpandableConfig<T>;
|
|
5
5
|
}) => {
|
|
6
6
|
mergedExpandedRowKeys: Key[];
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { type Key } from 'react';
|
|
2
|
-
import type { TableRowSelection } from '../interface';
|
|
3
|
-
export declare const useTableSelection: <T>({ rowSelection, dataSource, currentDataSource, getRowKey, }: {
|
|
2
|
+
import type { TableRecord, TableRowSelection } from '../interface';
|
|
3
|
+
export declare const useTableSelection: <T extends TableRecord = TableRecord>({ rowSelection, dataSource, currentDataSource, getRowKey, }: {
|
|
4
4
|
rowSelection?: TableRowSelection<T>;
|
|
5
5
|
dataSource: T[];
|
|
6
6
|
currentDataSource: T[];
|
|
7
7
|
getRowKey: (record: T, index: number) => Key;
|
|
8
8
|
}) => {
|
|
9
9
|
mergedSelectedRowKeys: Key[];
|
|
10
|
-
checkboxPropsMap: Map<Key, Partial<
|
|
11
|
-
disabled: boolean;
|
|
12
|
-
}>>;
|
|
10
|
+
checkboxPropsMap: Map<Key, Partial<Omit<import("../../Checkbox").CheckboxProps, "checked" | "defaultChecked" | "onChange">>>;
|
|
13
11
|
isAllSelected: boolean;
|
|
14
12
|
isIndeterminate: boolean;
|
|
15
13
|
triggerSelection: (recordKey: Key) => void;
|
|
@@ -141,4 +141,4 @@ export var useTableSelection = function useTableSelection(_ref) {
|
|
|
141
141
|
triggerSelectAll: triggerSelectAll
|
|
142
142
|
};
|
|
143
143
|
};
|
|
144
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvc3JjL2NvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNlbGVjdGlvbi50cyIsImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNlbGVjdGlvbi5qcyJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZVRhYmxlU2VsZWN0aW9uIiwiX3JlZiIsInJvd1NlbGVjdGlvbiIsImRhdGFTb3VyY2UiLCJjdXJyZW50RGF0YVNvdXJjZSIsImdldFJvd0tleSIsIl9hIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsImRlZmF1bHRTZWxlY3RlZFJvd0tleXMiLCJzZWxlY3RlZFJvd0tleXMiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwic2V0TWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwia3ZNYXBSZWYiLCJkYXRhIiwibWFwIiwiTWFwIiwiZ2V0S3ZNYXAiLCJjdXJyZW50IiwiaSIsImxlbmd0aCIsInNldCIsInByZXNlcnZlUmVjb3Jkc1JlZiIsImdldFJlY29yZEJ5S2V5Iiwia2V5IiwiZ2V0IiwicHJlc2VydmVTZWxlY3RlZFJvd0tleXMiLCJuZXh0Q2FjaGUiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJyZWNvcmQiLCJ1bmRlZmluZWQiLCJoYXMiLCJlcnIiLCJlIiwiZiIsImNoZWNrYm94UHJvcHNNYXAiLCJnZXRDaGVja2JveFByb3BzIiwiZm9yRWFjaCIsImluZGV4Iiwic2VsZWN0YWJsZUtleXMiLCJmaWx0ZXIiLCJkaXNhYmxlZCIsInNlbGVjdGVkU2VsZWN0YWJsZUtleXMiLCJpbmNsdWRlcyIsImlzQWxsU2VsZWN0ZWQiLCJpc0luZGV0ZXJtaW5hdGUiLCJyZXNvbHZlUmVjb3JkcyIsImtleXMiLCJ0cmlnZ2VyU2VsZWN0aW9uIiwicmVjb3JkS2V5IiwiX2IiLCJzZWxlY3Rpb25UeXBlIiwidHlwZSIsIm5leHRLZXlzIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwib25DaGFuZ2UiLCJjYWxsIiwidHJpZ2dlclNlbGVjdEFsbCIsIm1ldGhvZCIsImRpc2FibGVkU2VsZWN0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBa0IsT0FBTztBQUM1RCxTQUFTQyxrQkFBa0IsRUFBRUMsYUFBYSxRQUFRLGVBQWU7QUFHakUsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBQyxJQUFBLEVBVXpCO0VBQUEsSUFUSEMsWUFBWSxHQUFBRCxJQUFBLENBQVpDLFlBQVk7SUFDWkMsVUFBVSxHQUFBRixJQUFBLENBQVZFLFVBQVU7SUFDVkMsaUJBQWlCLEdBQUFILElBQUEsQ0FBakJHLGlCQUFpQjtJQUNqQkMsU0FBUyxHQUFBSixJQUFBLENBQVRJLFNBQVM7RUNMUCxJQUFJQyxFQUFFO0VEWVIsSUFBQUMsbUJBQUEsR0FBMERULGtCQUFrQixDQUMxRSxDQUFBUSxFQUFBLEdBQUFKLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxDQUFFTSxzQkFBc0IsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLEVBQUUsRUFDMUNKLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxDQUFFTyxlQUFlLENBQzlCO0lBQUFDLG9CQUFBLEdBQUFDLGNBQUEsQ0FBQUosbUJBQUE7SUFITUsscUJBQXFCLEdBQUFGLG9CQUFBO0lBQUVHLHdCQUF3QixHQUFBSCxvQkFBQTtFQUt0RDtFQUNBLElBQU1JLFFBQVEs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QUFjLENBQUNPLFFBQVEsQ0FBQyxFQUFFO01BQUVELElBQUksRUFBRU87SUFBTSxDQUFFLENBQUM7RUFDaEYsQ0FBQyxDQUFDO0VBRUYsT0FBTztJQUNMdEQscUJBQXFCLEVBQXJCQSxxQkFBcUI7SUFDckI4QixnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQlMsYUFBYSxFQUFiQSxhQUFhO0lBQ2JDLGVBQWUsRUFBZkEsZUFBZTtJQUNmRyxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQlUsZ0JBQWdCLEVBQWhCQTtFQ2hDQSxDRGlDRDtBQUNILENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlU2VsZWN0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlU2VsZWN0aW9uID0gKHsgcm93U2VsZWN0aW9uLCBkYXRhU291cmNlLCBjdXJyZW50RGF0YVNvdXJjZSwgZ2V0Um93S2V5LCB9KSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IFttZXJnZWRTZWxlY3RlZFJvd0tleXMsIHNldE1lcmdlZFNlbGVjdGVkUm93S2V5c10gPSB1c2VDb250cm9sbGVkU3RhdGUoKF9hID0gcm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLmRlZmF1bHRTZWxlY3RlZFJvd0tleXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFtdLCByb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24uc2VsZWN0ZWRSb3dLZXlzKTtcbiAgICAvLyBMYXp5IGtleeKGknJlY29yZCBtYXAsIHJlYnVpbHQgd2hlbiBkYXRhU291cmNlIHJlZmVyZW5jZSBjaGFuZ2VzXG4gICAgY29uc3Qga3ZNYXBSZWYgPSB1c2VSZWYoeyBkYXRhOiBbXSwgbWFwOiBuZXcgTWFwKCkgfSk7XG4gICAgY29uc3QgZ2V0S3ZNYXAgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgaWYgKGt2TWFwUmVmLmN1cnJlbnQuZGF0YSAhPT0gZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhU291cmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbWFwLnNldChnZXRSb3dLZXkoZGF0YVNvdXJjZVtpXSwgaSksIGRhdGFTb3VyY2VbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga3ZNYXBSZWYuY3VycmVudCA9IHsgZGF0YTogZGF0YVNvdXJjZSwgbWFwIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGt2TWFwUmVmLmN1cnJlbnQubWFwO1xuICAgIH0pO1xuICAgIC8vIENhY2hlIGZvciBwcmVzZXJ2ZVNlbGVjdGVkUm93S2V5czogc3RvcmVzIGtleeKGknJlY29yZCBldmVuIGFjcm9zcyBwYWdpbmF0aW9uXG4gICAgY29uc3QgcHJlc2VydmVSZWNvcmRzUmVmID0gdXNlUmVmKG5ldyBNYXAoKSk7XG4gICAgY29uc3QgZ2V0UmVjb3JkQnlLZXkgPSB1c2VNZW1vaXplZEZuKChrZXkpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gZ2V0S3ZNYXAoKS5nZXQoa2V5KSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcHJlc2VydmVSZWNvcmRzUmVmLmN1cnJlbnQuZ2V0KGtleSk7XG4gICAgfSk7XG4gICAgLy8gVXBkYXRlIGNhY2hlIHdoZW4gc2VsZWN0ZWQga2V5cyBjaGFuZ2VcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIShyb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24ucHJlc2VydmVTZWxlY3RlZFJvd0tleXMpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0Q2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIG1lcmdlZFNlbGVjdGVkUm93S2V5cykge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gZ2V0UmVjb3JkQnlLZXkoa2V5KTtcbiAgICAgICAgICAgIGlmIChyZWNvcmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIG5leHRDYWNoZS5zZXQoa2V5LCByZWNvcmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocHJlc2VydmVSZWNvcmRzUmVmLmN1cnJlbnQuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBuZXh0Q2FjaGUuc2V0KGtleSwgcHJlc2VydmVSZWNvcmRzUmVmLmN1cnJlbnQuZ2V0KGtleSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHByZXNlcnZlUmVjb3Jkc1JlZi5jdXJyZW50ID0gbmV4dENhY2hlO1xuICAgIH0sIFttZXJnZWRTZWxlY3RlZFJvd0tleXMsIHJvd1NlbGVjdGlvbiA9PT0gbnVsbCB8fCByb3dTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJvd1NlbGVjdGlvbi5wcmVzZXJ2ZVNlbGVjdGVkUm93S2V5cywgZ2V0UmVjb3JkQnlLZXldKTtcbiAgICBjb25zdCBjaGVja2JveFByb3BzTWFwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKCEocm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLmdldENoZWNrYm94UHJvcHMpKVxuICAgICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgY3VycmVudERhdGFTb3VyY2UuZm9yRWFjaCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgbWFwLnNldChrZXksIHJvd1NlbGVjdGlvbi5nZXRDaGVja2JveFByb3BzKHJlY29yZCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9LCBbY3VycmVudERhdGFTb3VyY2UsIGdldFJvd0tleSwgcm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLmdldENoZWNrYm94UHJvcHNdKTtcbiAgICBjb25zdCBzZWxlY3RhYmxlS2V5cyA9IHVzZU1lbW8oKCkgPT4gY3VycmVudERhdGFTb3VyY2VcbiAgICAgICAgLm1hcCgocmVjb3JkLCBpbmRleCkgPT4gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpKVxuICAgICAgICAuZmlsdGVyKChrZXkpID0+IHsgdmFyIF9hOyByZXR1cm4gISgoX2EgPSBjaGVja2JveFByb3BzTWFwLmdldChrZXkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpOyB9KSwgW2N1cnJlbnREYXRhU291cmNlLCBnZXRSb3dLZXksIGNoZWNrYm94UHJvcHNNYXBdKTtcbiAgICBjb25zdCBzZWxlY3RlZFNlbGVjdGFibGVLZXlzID0gdXNlTWVtbygoKSA9PiBzZWxlY3RhYmxlS2V5cy5maWx0ZXIoKGtleSkgPT4gbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmluY2x1ZGVzKGtleSkpLCBbc2VsZWN0YWJsZUtleXMsIG1lcmdlZFNlbGVjdGVkUm93S2V5c10pO1xuICAgIGNvbnN0IGlzQWxsU2VsZWN0ZWQgPSBzZWxlY3RhYmxlS2V5cy5sZW5ndGggPiAwICYmIHNlbGVjdGVkU2VsZWN0YWJsZUtleXMubGVuZ3RoID09PSBzZWxlY3RhYmxlS2V5cy5sZW5ndGg7XG4gICAgY29uc3QgaXNJbmRldGVybWluYXRlID0gc2VsZWN0ZWRTZWxlY3RhYmxlS2V5cy5sZW5ndGggPiAwICYmICFpc0FsbFNlbGVjdGVkO1xuICAgIGNvbnN0IHJlc29sdmVSZWNvcmRzID0gdXNlTWVtb2l6ZWRGbigoa2V5cykgPT4ge1xuICAgICAgICBpZiAocm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLnByZXNlcnZlU2VsZWN0ZWRSb3dLZXlzKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5c1xuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gZ2V0UmVjb3JkQnlLZXkoa2V5KSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChyZWNvcmQpID0+IHJlY29yZCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudERhdGFTb3VyY2UuZmlsdGVyKChyZWNvcmQsIGluZGV4KSA9PiBrZXlzLmluY2x1ZGVzKGdldFJvd0tleShyZWNvcmQsIGluZGV4KSkpO1xuICAgIH0pO1xuICAgIGNvbnN0IHRyaWdnZXJTZWxlY3Rpb24gPSB1c2VNZW1vaXplZEZuKChyZWNvcmRLZXkpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uVHlwZSA9IChfYSA9IHJvd1NlbGVjdGlvbiA9PT0gbnVsbCB8fCByb3dTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJvd1NlbGVjdGlvbi50eXBlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnY2hlY2tib3gnO1xuICAgICAgICBjb25zdCBuZXh0S2V5cyA9IHNlbGVjdGlvblR5cGUgPT09ICdyYWRpbydcbiAgICAgICAgICAgID8gW3JlY29yZEtleV1cbiAgICAgICAgICAgIDogbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmluY2x1ZGVzKHJlY29yZEtleSlcbiAgICAgICAgICAgICAgICA/IG1lcmdlZFNlbGVjdGVkUm93S2V5cy5maWx0ZXIoa2V5ID0+IGtleSAhPT0gcmVjb3JkS2V5KVxuICAgICAgICAgICAgICAgIDogWy4uLm1lcmdlZFNlbGVjdGVkUm93S2V5cywgcmVjb3JkS2V5XTtcbiAgICAgICAgc2V0TWVyZ2VkU2VsZWN0ZWRSb3dLZXlzKG5leHRLZXlzKTtcbiAgICAgICAgKF9iID0gcm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLm9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChyb3dTZWxlY3Rpb24sIG5leHRLZXlzLCByZXNvbHZlUmVjb3JkcyhuZXh0S2V5cyksIHsgdHlwZTogJ3NpbmdsZScgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlclNlbGVjdEFsbCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGxldCBuZXh0S2V5cztcbiAgICAgICAgbGV0IG1ldGhvZDtcbiAgICAgICAgaWYgKGlzQWxsU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIG5leHRLZXlzID0gbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmZpbHRlcigoa2V5KSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGNoZWNrYm94UHJvcHNNYXAuZ2V0KGtleSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZDsgfSk7XG4gICAgICAgICAgICBtZXRob2QgPSAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlZFNlbGVjdGVkID0gbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmZpbHRlcigoa2V5KSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGNoZWNrYm94UHJvcHNNYXAuZ2V0KGtleSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZDsgfSk7XG4gICAgICAgICAgICBuZXh0S2V5cyA9IFsuLi5kaXNhYmxlZFNlbGVjdGVkLCAuLi5zZWxlY3RhYmxlS2V5c107XG4gICAgICAgICAgICBtZXRob2QgPSAnYWxsJztcbiAgICAgICAgfVxuICAgICAgICBzZXRNZXJnZWRTZWxlY3RlZFJvd0tleXMobmV4dEtleXMpO1xuICAgICAgICAoX2EgPSByb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24ub25DaGFuZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHJvd1NlbGVjdGlvbiwgbmV4dEtleXMsIHJlc29sdmVSZWNvcmRzKG5leHRLZXlzKSwgeyB0eXBlOiBtZXRob2QgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLFxuICAgICAgICBjaGVja2JveFByb3BzTWFwLFxuICAgICAgICBpc0FsbFNlbGVjdGVkLFxuICAgICAgICBpc0luZGV0ZXJtaW5hdGUsXG4gICAgICAgIHRyaWdnZXJTZWxlY3Rpb24sXG4gICAgICAgIHRyaWdnZXJTZWxlY3RBbGwsXG4gICAgfTtcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvc3JjL2NvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNlbGVjdGlvbi50cyIsImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNlbGVjdGlvbi5qcyJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZVRhYmxlU2VsZWN0aW9uIiwiX3JlZiIsInJvd1NlbGVjdGlvbiIsImRhdGFTb3VyY2UiLCJjdXJyZW50RGF0YVNvdXJjZSIsImdldFJvd0tleSIsIl9hIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsImRlZmF1bHRTZWxlY3RlZFJvd0tleXMiLCJzZWxlY3RlZFJvd0tleXMiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwic2V0TWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwia3ZNYXBSZWYiLCJkYXRhIiwibWFwIiwiTWFwIiwiZ2V0S3ZNYXAiLCJjdXJyZW50IiwiaSIsImxlbmd0aCIsInNldCIsInByZXNlcnZlUmVjb3Jkc1JlZiIsImdldFJlY29yZEJ5S2V5Iiwia2V5IiwiZ2V0IiwicHJlc2VydmVTZWxlY3RlZFJvd0tleXMiLCJuZXh0Q2FjaGUiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJyZWNvcmQiLCJ1bmRlZmluZWQiLCJoYXMiLCJlcnIiLCJlIiwiZiIsImNoZWNrYm94UHJvcHNNYXAiLCJnZXRDaGVja2JveFByb3BzIiwiZm9yRWFjaCIsImluZGV4Iiwic2VsZWN0YWJsZUtleXMiLCJmaWx0ZXIiLCJkaXNhYmxlZCIsInNlbGVjdGVkU2VsZWN0YWJsZUtleXMiLCJpbmNsdWRlcyIsImlzQWxsU2VsZWN0ZWQiLCJpc0luZGV0ZXJtaW5hdGUiLCJyZXNvbHZlUmVjb3JkcyIsImtleXMiLCJ0cmlnZ2VyU2VsZWN0aW9uIiwicmVjb3JkS2V5IiwiX2IiLCJzZWxlY3Rpb25UeXBlIiwidHlwZSIsIm5leHRLZXlzIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwib25DaGFuZ2UiLCJjYWxsIiwidHJpZ2dlclNlbGVjdEFsbCIsIm1ldGhvZCIsImRpc2FibGVkU2VsZWN0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBa0IsT0FBTztBQUM1RCxTQUFTQyxrQkFBa0IsRUFBRUMsYUFBYSxRQUFRLGVBQWU7QUFHakUsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBQyxJQUFBLEVBVXpCO0VBQUEsSUFUSEMsWUFBWSxHQUFBRCxJQUFBLENBQVpDLFlBQVk7SUFDWkMsVUFBVSxHQUFBRixJQUFBLENBQVZFLFVBQVU7SUFDVkMsaUJBQWlCLEdBQUFILElBQUEsQ0FBakJHLGlCQUFpQjtJQUNqQkMsU0FBUyxHQUFBSixJQUFBLENBQVRJLFNBQVM7RUNMUCxJQUFJQyxFQUFFO0VEWVIsSUFBQUMsbUJBQUEsR0FBMERULGtCQUFrQixDQUMxRSxDQUFBUSxFQUFBLEdBQUFKLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxDQUFFTSxzQkFBc0IsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLEVBQUUsRUFDMUNKLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxDQUFFTyxlQUFlLENBQzlCO0lBQUFDLG9CQUFBLEdBQUFDLGNBQUEsQ0FBQUosbUJBQUE7SUFITUsscUJBQXFCLEdBQUFGLG9CQUFBO0lBQUVHLHdCQUF3QixHQUFBSCxvQkFBQTtFQUt0RDtFQUNBLElBQU1JLFFBQVEs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QUFjLENBQUNPLFFBQVEsQ0FBQyxFQUFFO01BQUVELElBQUksRUFBRU87SUFBTSxDQUFFLENBQUM7RUFDaEYsQ0FBQyxDQUFDO0VBRUYsT0FBTztJQUNMdEQscUJBQXFCLEVBQXJCQSxxQkFBcUI7SUFDckI4QixnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQlMsYUFBYSxFQUFiQSxhQUFhO0lBQ2JDLGVBQWUsRUFBZkEsZUFBZTtJQUNmRyxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQlUsZ0JBQWdCLEVBQWhCQTtFQ2hDQSxDRGlDRDtBQUNILENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlU2VsZWN0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlU2VsZWN0aW9uID0gKHsgcm93U2VsZWN0aW9uLCBkYXRhU291cmNlLCBjdXJyZW50RGF0YVNvdXJjZSwgZ2V0Um93S2V5LCB9KSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IFttZXJnZWRTZWxlY3RlZFJvd0tleXMsIHNldE1lcmdlZFNlbGVjdGVkUm93S2V5c10gPSB1c2VDb250cm9sbGVkU3RhdGUoKF9hID0gcm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLmRlZmF1bHRTZWxlY3RlZFJvd0tleXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFtdLCByb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24uc2VsZWN0ZWRSb3dLZXlzKTtcbiAgICAvLyBMYXp5IGtleeKGknJlY29yZCBtYXAsIHJlYnVpbHQgd2hlbiBkYXRhU291cmNlIHJlZmVyZW5jZSBjaGFuZ2VzXG4gICAgY29uc3Qga3ZNYXBSZWYgPSB1c2VSZWYoeyBkYXRhOiBbXSwgbWFwOiBuZXcgTWFwKCkgfSk7XG4gICAgY29uc3QgZ2V0S3ZNYXAgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgaWYgKGt2TWFwUmVmLmN1cnJlbnQuZGF0YSAhPT0gZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhU291cmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbWFwLnNldChnZXRSb3dLZXkoZGF0YVNvdXJjZVtpXSwgaSksIGRhdGFTb3VyY2VbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga3ZNYXBSZWYuY3VycmVudCA9IHsgZGF0YTogZGF0YVNvdXJjZSwgbWFwIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGt2TWFwUmVmLmN1cnJlbnQubWFwO1xuICAgIH0pO1xuICAgIC8vIENhY2hlIGZvciBwcmVzZXJ2ZVNlbGVjdGVkUm93S2V5czogc3RvcmVzIGtleeKGknJlY29yZCBldmVuIGFjcm9zcyBwYWdpbmF0aW9uXG4gICAgY29uc3QgcHJlc2VydmVSZWNvcmRzUmVmID0gdXNlUmVmKG5ldyBNYXAoKSk7XG4gICAgY29uc3QgZ2V0UmVjb3JkQnlLZXkgPSB1c2VNZW1vaXplZEZuKChrZXkpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gZ2V0S3ZNYXAoKS5nZXQoa2V5KSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcHJlc2VydmVSZWNvcmRzUmVmLmN1cnJlbnQuZ2V0KGtleSk7XG4gICAgfSk7XG4gICAgLy8gVXBkYXRlIGNhY2hlIHdoZW4gc2VsZWN0ZWQga2V5cyBjaGFuZ2VcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIShyb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24ucHJlc2VydmVTZWxlY3RlZFJvd0tleXMpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0Q2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIG1lcmdlZFNlbGVjdGVkUm93S2V5cykge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gZ2V0UmVjb3JkQnlLZXkoa2V5KTtcbiAgICAgICAgICAgIGlmIChyZWNvcmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIG5leHRDYWNoZS5zZXQoa2V5LCByZWNvcmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocHJlc2VydmVSZWNvcmRzUmVmLmN1cnJlbnQuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBuZXh0Q2FjaGUuc2V0KGtleSwgcHJlc2VydmVSZWNvcmRzUmVmLmN1cnJlbnQuZ2V0KGtleSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHByZXNlcnZlUmVjb3Jkc1JlZi5jdXJyZW50ID0gbmV4dENhY2hlO1xuICAgIH0sIFttZXJnZWRTZWxlY3RlZFJvd0tleXMsIHJvd1NlbGVjdGlvbiA9PT0gbnVsbCB8fCByb3dTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJvd1NlbGVjdGlvbi5wcmVzZXJ2ZVNlbGVjdGVkUm93S2V5cywgZ2V0UmVjb3JkQnlLZXldKTtcbiAgICBjb25zdCBjaGVja2JveFByb3BzTWFwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKCEocm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLmdldENoZWNrYm94UHJvcHMpKVxuICAgICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgY3VycmVudERhdGFTb3VyY2UuZm9yRWFjaCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgbWFwLnNldChrZXksIHJvd1NlbGVjdGlvbi5nZXRDaGVja2JveFByb3BzKHJlY29yZCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9LCBbY3VycmVudERhdGFTb3VyY2UsIGdldFJvd0tleSwgcm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLmdldENoZWNrYm94UHJvcHNdKTtcbiAgICBjb25zdCBzZWxlY3RhYmxlS2V5cyA9IHVzZU1lbW8oKCkgPT4gY3VycmVudERhdGFTb3VyY2VcbiAgICAgICAgLm1hcCgocmVjb3JkLCBpbmRleCkgPT4gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpKVxuICAgICAgICAuZmlsdGVyKChrZXkpID0+IHsgdmFyIF9hOyByZXR1cm4gISgoX2EgPSBjaGVja2JveFByb3BzTWFwLmdldChrZXkpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpOyB9KSwgW2N1cnJlbnREYXRhU291cmNlLCBnZXRSb3dLZXksIGNoZWNrYm94UHJvcHNNYXBdKTtcbiAgICBjb25zdCBzZWxlY3RlZFNlbGVjdGFibGVLZXlzID0gdXNlTWVtbygoKSA9PiBzZWxlY3RhYmxlS2V5cy5maWx0ZXIoKGtleSkgPT4gbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmluY2x1ZGVzKGtleSkpLCBbc2VsZWN0YWJsZUtleXMsIG1lcmdlZFNlbGVjdGVkUm93S2V5c10pO1xuICAgIGNvbnN0IGlzQWxsU2VsZWN0ZWQgPSBzZWxlY3RhYmxlS2V5cy5sZW5ndGggPiAwICYmIHNlbGVjdGVkU2VsZWN0YWJsZUtleXMubGVuZ3RoID09PSBzZWxlY3RhYmxlS2V5cy5sZW5ndGg7XG4gICAgY29uc3QgaXNJbmRldGVybWluYXRlID0gc2VsZWN0ZWRTZWxlY3RhYmxlS2V5cy5sZW5ndGggPiAwICYmICFpc0FsbFNlbGVjdGVkO1xuICAgIGNvbnN0IHJlc29sdmVSZWNvcmRzID0gdXNlTWVtb2l6ZWRGbigoa2V5cykgPT4ge1xuICAgICAgICBpZiAocm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLnByZXNlcnZlU2VsZWN0ZWRSb3dLZXlzKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5c1xuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gZ2V0UmVjb3JkQnlLZXkoa2V5KSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChyZWNvcmQpID0+IHJlY29yZCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudERhdGFTb3VyY2UuZmlsdGVyKChyZWNvcmQsIGluZGV4KSA9PiBrZXlzLmluY2x1ZGVzKGdldFJvd0tleShyZWNvcmQsIGluZGV4KSkpO1xuICAgIH0pO1xuICAgIGNvbnN0IHRyaWdnZXJTZWxlY3Rpb24gPSB1c2VNZW1vaXplZEZuKChyZWNvcmRLZXkpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uVHlwZSA9IChfYSA9IHJvd1NlbGVjdGlvbiA9PT0gbnVsbCB8fCByb3dTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJvd1NlbGVjdGlvbi50eXBlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnY2hlY2tib3gnO1xuICAgICAgICBjb25zdCBuZXh0S2V5cyA9IHNlbGVjdGlvblR5cGUgPT09ICdyYWRpbydcbiAgICAgICAgICAgID8gW3JlY29yZEtleV1cbiAgICAgICAgICAgIDogbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmluY2x1ZGVzKHJlY29yZEtleSlcbiAgICAgICAgICAgICAgICA/IG1lcmdlZFNlbGVjdGVkUm93S2V5cy5maWx0ZXIoa2V5ID0+IGtleSAhPT0gcmVjb3JkS2V5KVxuICAgICAgICAgICAgICAgIDogWy4uLm1lcmdlZFNlbGVjdGVkUm93S2V5cywgcmVjb3JkS2V5XTtcbiAgICAgICAgc2V0TWVyZ2VkU2VsZWN0ZWRSb3dLZXlzKG5leHRLZXlzKTtcbiAgICAgICAgKF9iID0gcm93U2VsZWN0aW9uID09PSBudWxsIHx8IHJvd1NlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93U2VsZWN0aW9uLm9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChyb3dTZWxlY3Rpb24sIG5leHRLZXlzLCByZXNvbHZlUmVjb3JkcyhuZXh0S2V5cyksIHsgdHlwZTogJ3NpbmdsZScgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlclNlbGVjdEFsbCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGxldCBuZXh0S2V5cztcbiAgICAgICAgbGV0IG1ldGhvZDtcbiAgICAgICAgaWYgKGlzQWxsU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIG5leHRLZXlzID0gbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmZpbHRlcigoa2V5KSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGNoZWNrYm94UHJvcHNNYXAuZ2V0KGtleSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZDsgfSk7XG4gICAgICAgICAgICBtZXRob2QgPSAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlZFNlbGVjdGVkID0gbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLmZpbHRlcigoa2V5KSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGNoZWNrYm94UHJvcHNNYXAuZ2V0KGtleSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZDsgfSk7XG4gICAgICAgICAgICBuZXh0S2V5cyA9IFsuLi5kaXNhYmxlZFNlbGVjdGVkLCAuLi5zZWxlY3RhYmxlS2V5c107XG4gICAgICAgICAgICBtZXRob2QgPSAnYWxsJztcbiAgICAgICAgfVxuICAgICAgICBzZXRNZXJnZWRTZWxlY3RlZFJvd0tleXMobmV4dEtleXMpO1xuICAgICAgICAoX2EgPSByb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24ub25DaGFuZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHJvd1NlbGVjdGlvbiwgbmV4dEtleXMsIHJlc29sdmVSZWNvcmRzKG5leHRLZXlzKSwgeyB0eXBlOiBtZXRob2QgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLFxuICAgICAgICBjaGVja2JveFByb3BzTWFwLFxuICAgICAgICBpc0FsbFNlbGVjdGVkLFxuICAgICAgICBpc0luZGV0ZXJtaW5hdGUsXG4gICAgICAgIHRyaWdnZXJTZWxlY3Rpb24sXG4gICAgICAgIHRyaWdnZXJTZWxlY3RBbGwsXG4gICAgfTtcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type HTMLAttributes, type Key, type ReactNode } from 'react';
|
|
2
|
+
import type { TableComponents, TableDirection, TableGetComponentProps, TableLayout, TableProps, TableRecord, TableRowClassName } from '../interface';
|
|
3
|
+
import type { ColumnsType as InternalColumnsType, ExpandableConfig } from '../internal/kernel/interface';
|
|
4
|
+
/** Kernel props that flow identically through `Table` and `VirtualTable`. */
|
|
5
|
+
export interface ForwardedKernelProps<T extends TableRecord> {
|
|
6
|
+
rowKey: string | ((record: T) => Key);
|
|
7
|
+
childrenColumnName?: string;
|
|
8
|
+
indentSize?: number;
|
|
9
|
+
onRow?: TableGetComponentProps<T>;
|
|
10
|
+
rowClassName?: TableRowClassName<T>;
|
|
11
|
+
summary?: (data: readonly T[]) => ReactNode;
|
|
12
|
+
showHeader?: boolean;
|
|
13
|
+
tableLayout?: TableLayout;
|
|
14
|
+
components?: TableComponents<T>;
|
|
15
|
+
direction?: TableDirection;
|
|
16
|
+
rowHoverable?: boolean;
|
|
17
|
+
sticky?: TableProps<T>['sticky'];
|
|
18
|
+
}
|
|
19
|
+
export interface TableSetupResult<T extends TableRecord> {
|
|
20
|
+
prefixCls: string;
|
|
21
|
+
wrapperClassName: string;
|
|
22
|
+
tableClassName: string;
|
|
23
|
+
loading: boolean;
|
|
24
|
+
renderedColumns: InternalColumnsType<T>;
|
|
25
|
+
currentDataSource: T[];
|
|
26
|
+
mergedExpandable: ExpandableConfig<T> | undefined;
|
|
27
|
+
emptyText: ReactNode;
|
|
28
|
+
/** HTML attributes that didn't map to a known TableProps field. Land on the wrapper div. */
|
|
29
|
+
wrapperHtmlProps: HTMLAttributes<HTMLDivElement>;
|
|
30
|
+
forwardedKernelProps: ForwardedKernelProps<T>;
|
|
31
|
+
paginationNode: ReactNode;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Centralises the wiring shared by `Table` and `VirtualTable`:
|
|
35
|
+
* - destructure props
|
|
36
|
+
* - resolve row key
|
|
37
|
+
* - run pipeline / selection / expand / column transforms
|
|
38
|
+
* - build kernel-ready props
|
|
39
|
+
* - split off pass-through HTML attributes so they can land on the outer wrapper
|
|
40
|
+
* div (instead of being spread untyped into the kernel via `rest as object`).
|
|
41
|
+
*/
|
|
42
|
+
export declare const useTableSetup: <T extends TableRecord>(props: TableProps<T>) => TableSetupResult<T>;
|