nsc-react-component 2.5.7 → 2.5.8
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/lib/base/select/index.d.ts +4 -0
- package/lib/base/select/index.js +70 -40
- package/lib/base/tree/index.js +1 -3
- package/lib/base/upload/index.js +10 -8
- package/package.json +1 -1
|
@@ -13,6 +13,8 @@ interface ISelectProps extends SelectProps<any> {
|
|
|
13
13
|
valueBreak?: string;
|
|
14
14
|
valueType?: "string" | "number";
|
|
15
15
|
[proName: string]: any;
|
|
16
|
+
onChange?: any;
|
|
17
|
+
onSelect?: any;
|
|
16
18
|
}
|
|
17
19
|
export default class NSCSelect extends PureComponent<ISelectProps> {
|
|
18
20
|
static Option: import("rc-select/lib/Option").OptionFC;
|
|
@@ -30,6 +32,7 @@ export default class NSCSelect extends PureComponent<ISelectProps> {
|
|
|
30
32
|
getData(): any[];
|
|
31
33
|
getValue(): any;
|
|
32
34
|
setValue(value: any): void;
|
|
35
|
+
getSelectData(value: any): any;
|
|
33
36
|
componentDidMount(): void;
|
|
34
37
|
componentDidUpdate(newProps: any, newState: any, Snapshot: any): void;
|
|
35
38
|
componentWillUnmount(): void;
|
|
@@ -37,6 +40,7 @@ export default class NSCSelect extends PureComponent<ISelectProps> {
|
|
|
37
40
|
renderOption(optionData: any): any;
|
|
38
41
|
renderChildren(): JSX.Element;
|
|
39
42
|
onChange(value: any, options: any): void;
|
|
43
|
+
onSelect(value: any, options: any): void;
|
|
40
44
|
onDropdownVisibleChange(open: any): void;
|
|
41
45
|
render(): JSX.Element;
|
|
42
46
|
}
|
package/lib/base/select/index.js
CHANGED
|
@@ -3,7 +3,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
|
|
|
3
3
|
import "antd/es/select/style/css";
|
|
4
4
|
import _Select from "antd/es/select";
|
|
5
5
|
var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey", "viewtype"],
|
|
6
|
-
_excluded2 = ["children", "store", "data", "onChange", "options", "labelField", "valueField", "defaultStyle", "showGroup", "addData", "deleteData", "valueType"];
|
|
6
|
+
_excluded2 = ["children", "store", "data", "onChange", "onSelect", "options", "labelField", "valueField", "defaultStyle", "showGroup", "addData", "deleteData", "valueType"];
|
|
7
7
|
|
|
8
8
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
9
9
|
|
|
@@ -56,6 +56,7 @@ import config from "../../config";
|
|
|
56
56
|
import styles from "./index.less";
|
|
57
57
|
import cls from "classnames";
|
|
58
58
|
import PinyinMatch from "pinyin-match";
|
|
59
|
+
import { getFlattenData } from "@bj-nsc/functions";
|
|
59
60
|
var Option = _Select.Option,
|
|
60
61
|
OptGroup = _Select.OptGroup;
|
|
61
62
|
|
|
@@ -237,13 +238,28 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
237
238
|
selectValue: value
|
|
238
239
|
});
|
|
239
240
|
}
|
|
241
|
+
}, {
|
|
242
|
+
key: "getSelectData",
|
|
243
|
+
value: function getSelectData(value) {
|
|
244
|
+
var dataSource = this.state.dataSource;
|
|
245
|
+
var _this$props = this.props,
|
|
246
|
+
_this$props$store = _this$props.store,
|
|
247
|
+
store = _this$props$store === void 0 ? {} : _this$props$store,
|
|
248
|
+
valueField = _this$props.valueField;
|
|
249
|
+
var viewname = store.viewname;
|
|
250
|
+
valueField = valueField ? valueField : viewname ? "dictKey" : "value";
|
|
251
|
+
var newData = getFlattenData(dataSource, {
|
|
252
|
+
keyField: valueField
|
|
253
|
+
});
|
|
254
|
+
return newData[value] || {};
|
|
255
|
+
}
|
|
240
256
|
}, {
|
|
241
257
|
key: "componentDidMount",
|
|
242
258
|
value: function componentDidMount() {
|
|
243
|
-
var _this$
|
|
244
|
-
data = _this$
|
|
245
|
-
options = _this$
|
|
246
|
-
children = _this$
|
|
259
|
+
var _this$props2 = this.props,
|
|
260
|
+
data = _this$props2.data,
|
|
261
|
+
options = _this$props2.options,
|
|
262
|
+
children = _this$props2.children;
|
|
247
263
|
|
|
248
264
|
if (!children && (data || options)) {
|
|
249
265
|
this.setState({
|
|
@@ -260,10 +276,10 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
260
276
|
}, {
|
|
261
277
|
key: "componentDidUpdate",
|
|
262
278
|
value: function componentDidUpdate(newProps, newState, Snapshot) {
|
|
263
|
-
var _this$
|
|
264
|
-
data = _this$
|
|
265
|
-
options = _this$
|
|
266
|
-
children = _this$
|
|
279
|
+
var _this$props3 = this.props,
|
|
280
|
+
data = _this$props3.data,
|
|
281
|
+
options = _this$props3.options,
|
|
282
|
+
children = _this$props3.children;
|
|
267
283
|
var _this$state2 = this.state,
|
|
268
284
|
allDataSource = _this$state2.allDataSource,
|
|
269
285
|
allChildren = _this$state2.allChildren;
|
|
@@ -308,13 +324,13 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
308
324
|
var _this$state3 = this.state,
|
|
309
325
|
allDataSource = _this$state3.allDataSource,
|
|
310
326
|
allChildren = _this$state3.allChildren;
|
|
311
|
-
var _this$
|
|
312
|
-
_this$
|
|
313
|
-
filterOption = _this$
|
|
314
|
-
onSearch = _this$
|
|
315
|
-
children = _this$
|
|
316
|
-
_this$
|
|
317
|
-
store = _this$
|
|
327
|
+
var _this$props4 = this.props,
|
|
328
|
+
_this$props4$filterOp = _this$props4.filterOption,
|
|
329
|
+
filterOption = _this$props4$filterOp === void 0 ? true : _this$props4$filterOp,
|
|
330
|
+
onSearch = _this$props4.onSearch,
|
|
331
|
+
children = _this$props4.children,
|
|
332
|
+
_this$props4$store = _this$props4.store,
|
|
333
|
+
store = _this$props4$store === void 0 ? {} : _this$props4$store;
|
|
318
334
|
var labelField = this.props.labelField;
|
|
319
335
|
var viewname = store.viewname;
|
|
320
336
|
labelField = labelField ? labelField : viewname ? "dictValue" : "label";
|
|
@@ -381,13 +397,13 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
381
397
|
}, {
|
|
382
398
|
key: "renderOption",
|
|
383
399
|
value: function renderOption(optionData) {
|
|
384
|
-
var _this$
|
|
385
|
-
_this$
|
|
386
|
-
store = _this$
|
|
387
|
-
_this$
|
|
388
|
-
valueType = _this$
|
|
389
|
-
labelField = _this$
|
|
390
|
-
valueField = _this$
|
|
400
|
+
var _this$props5 = this.props,
|
|
401
|
+
_this$props5$store = _this$props5.store,
|
|
402
|
+
store = _this$props5$store === void 0 ? {} : _this$props5$store,
|
|
403
|
+
_this$props5$valueTyp = _this$props5.valueType,
|
|
404
|
+
valueType = _this$props5$valueTyp === void 0 ? "string" : _this$props5$valueTyp,
|
|
405
|
+
labelField = _this$props5.labelField,
|
|
406
|
+
valueField = _this$props5.valueField;
|
|
391
407
|
var viewname = store.viewname;
|
|
392
408
|
valueField = valueField ? valueField : viewname ? "dictKey" : "value";
|
|
393
409
|
labelField = labelField ? labelField : viewname ? "dictValue" : "label";
|
|
@@ -468,7 +484,18 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
468
484
|
});
|
|
469
485
|
|
|
470
486
|
if (onChange) {
|
|
471
|
-
|
|
487
|
+
var data = this.getSelectData(value);
|
|
488
|
+
onChange(value, options, data);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}, {
|
|
492
|
+
key: "onSelect",
|
|
493
|
+
value: function onSelect(value, options) {
|
|
494
|
+
var onSelect = this.props.onSelect;
|
|
495
|
+
|
|
496
|
+
if (onSelect) {
|
|
497
|
+
var data = this.getSelectData(value);
|
|
498
|
+
onSelect(value, options, data);
|
|
472
499
|
}
|
|
473
500
|
}
|
|
474
501
|
}, {
|
|
@@ -481,21 +508,22 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
481
508
|
}, {
|
|
482
509
|
key: "render",
|
|
483
510
|
value: function render() {
|
|
484
|
-
var _this$
|
|
485
|
-
children = _this$
|
|
486
|
-
store = _this$
|
|
487
|
-
data = _this$
|
|
488
|
-
onChange = _this$
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
511
|
+
var _this$props6 = this.props,
|
|
512
|
+
children = _this$props6.children,
|
|
513
|
+
store = _this$props6.store,
|
|
514
|
+
data = _this$props6.data,
|
|
515
|
+
onChange = _this$props6.onChange,
|
|
516
|
+
onSelect = _this$props6.onSelect,
|
|
517
|
+
options = _this$props6.options,
|
|
518
|
+
labelField = _this$props6.labelField,
|
|
519
|
+
valueField = _this$props6.valueField,
|
|
520
|
+
defaultStyle = _this$props6.defaultStyle,
|
|
521
|
+
_this$props6$showGrou = _this$props6.showGroup,
|
|
522
|
+
showGroup = _this$props6$showGrou === void 0 ? true : _this$props6$showGrou,
|
|
523
|
+
addData = _this$props6.addData,
|
|
524
|
+
deleteData = _this$props6.deleteData,
|
|
525
|
+
valueType = _this$props6.valueType,
|
|
526
|
+
params = _objectWithoutProperties(_this$props6, _excluded2);
|
|
499
527
|
|
|
500
528
|
var props = {
|
|
501
529
|
filterOption: false,
|
|
@@ -524,6 +552,7 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
524
552
|
value: this.state.selectValue,
|
|
525
553
|
onChange: this.onChange.bind(this),
|
|
526
554
|
onSearch: this.onSearch.bind(this),
|
|
555
|
+
onSelect: this.onSelect.bind(this),
|
|
527
556
|
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
528
557
|
}, props, params), this.renderChildren()));
|
|
529
558
|
} else {
|
|
@@ -531,6 +560,7 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
531
560
|
value: this.state.selectValue,
|
|
532
561
|
onSearch: this.onSearch.bind(this),
|
|
533
562
|
onChange: this.onChange.bind(this),
|
|
563
|
+
onSelect: this.onSelect.bind(this),
|
|
534
564
|
onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
|
|
535
565
|
}, props, params), this.renderChildren());
|
|
536
566
|
}
|
|
@@ -545,4 +575,4 @@ _defineProperty(NSCSelect, "Option", Option);
|
|
|
545
575
|
_defineProperty(NSCSelect, "OptGroup", OptGroup);
|
|
546
576
|
|
|
547
577
|
export { NSCSelect as default };
|
|
548
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2Uvc2VsZWN0L2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJPcHRpb24iLCJPcHRHcm91cCIsIk5TQ1NlbGVjdCIsInByb3BzIiwiZGF0YVNvdXJjZSIsInNlbGVjdFZhbHVlIiwiYWxsRGF0YVNvdXJjZSIsImNoaWxkcmVuIiwiYWxsQ2hpbGRyZW4iLCJkYXRhIiwic3RvcmUiLCJvcHRpb25zIiwiYWRkRGF0YSIsImRlbGV0ZURhdGEiLCJ1cmwiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQb3BzIiwidmlld25hbWUiLCJjYWNoZWQiLCJjYWNoZUtleSIsInZpZXd0eXBlIiwic3RvcmVzIiwidmFsdWVGaWVsZCIsInZpZXdVcmwiLCJ2aWV3Qml6VXJsIiwicmVxdWVzdFZpZXdVcmwiLCJnZXRBbGxEYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3RGF0YSIsImxlbmd0aCIsInNwbGljZURhdGEiLCJ2YWx1ZUZpZWxkcyIsInNwbGl0IiwibWFwIiwiaXRlbSIsImkiLCJ2YWx1ZSIsInYiLCJpbmRleCIsImluZGV4T2YiLCJwdXNoIiwiRXJyb3IiLCJfdGhpcyIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsInN0YXRlIiwibmV3UHJvcHMiLCJuZXdTdGF0ZSIsIlNuYXBzaG90IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlQ2hpbGRyZW5Qcm9wcyIsInMiLCJjaGlsZHJlblByb3BzIiwiYyIsImZpbHRlck9wdGlvbiIsIm9uU2VhcmNoIiwibGFiZWxGaWVsZCIsInJlc3VsdCIsImZvckVhY2giLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImZsYWciLCJtYXRjaCIsImNoaWxkIiwib3B0aW9uRGF0YSIsInZhbHVlVHlwZSIsIk51bWJlciIsImtleSIsImlkIiwiZGlzYWJsZWQiLCJzaG93R3JvdXAiLCJvcHRHcm91cERhdGEiLCJncm91cE5hbWUiLCJvcHRpb24iLCJyZW5kZXJPcHRpb24iLCJvcHRHcm91cCIsIk9iamVjdCIsImtleXMiLCJvbkNoYW5nZSIsIm9wZW4iLCJyZXNldERhdGEiLCJkZWZhdWx0U3R5bGUiLCJwYXJhbXMiLCJzaG93U2VhcmNoIiwib3B0aW9uRmlsdGVyUHJvcCIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsImFudGRTdHlsZSIsIm1vdW50RWxlbWVudElkIiwiZ2V0UG9wdXBDb250YWluZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY2xhc3NOYW1lIiwiYmluZCIsIm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlIiwicmVuZGVyQ2hpbGRyZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQXFDLE9BQXJDO0FBRUEsT0FBT0MsS0FBUCxNQUFrQyxhQUFsQztBQUNBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBRUEsT0FBT0MsV0FBUCxNQUF3QixjQUF4QjtBQUNBLElBQVFDLE1BQVIsV0FBUUEsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixXQUFnQkEsUUFBaEI7O0lBZXFCQyxTOzs7OztBQVduQixxQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiwrQkFBTUEsS0FBTjs7QUFEaUIsNkRBUlg7QUFDTkMsTUFBQUEsVUFBVSxFQUFFLEVBRE47QUFFTkMsTUFBQUEsV0FBVyxFQUFFLElBRlA7QUFHTkMsTUFBQUEsYUFBYSxFQUFFLEVBSFQ7QUFJTkMsTUFBQUEsUUFBUSxFQUFFLElBSko7QUFLTkMsTUFBQUEsV0FBVyxFQUFFO0FBTFAsS0FRVzs7QUFBQSw2REFEWCxFQUNXOztBQUVqQixRQUNFQyxJQURGLEdBT0lOLEtBUEosQ0FDRU0sSUFERjtBQUFBLHVCQU9JTixLQVBKLENBRUVPLEtBRkY7QUFBQSxRQUVFQSxLQUZGLDZCQUVVLEVBRlY7QUFBQSxRQUdFSCxRQUhGLEdBT0lKLEtBUEosQ0FHRUksUUFIRjtBQUFBLFFBSUVJLE9BSkYsR0FPSVIsS0FQSixDQUlFUSxPQUpGO0FBQUEseUJBT0lSLEtBUEosQ0FLRVMsT0FMRjtBQUFBLFFBS0VBLE9BTEYsK0JBS1ksRUFMWjtBQUFBLDRCQU9JVCxLQVBKLENBTUVVLFVBTkY7QUFBQSxRQU1FQSxVQU5GLGtDQU1lLEVBTmY7O0FBUUEsUUFDRUMsR0FERixHQVFJSixLQVJKLENBQ0VJLEdBREY7QUFBQSwyQkFRSUosS0FSSixDQUVFSyxTQUZGO0FBQUEsUUFFYUMsYUFGYixpQ0FFNkIsRUFGN0I7QUFBQSxRQUdFQyxRQUhGLEdBUUlQLEtBUkosQ0FHRU8sUUFIRjtBQUFBLFFBSUVDLE1BSkYsR0FRSVIsS0FSSixDQUlFUSxNQUpGO0FBQUEsUUFLRUMsUUFMRixHQVFJVCxLQVJKLENBS0VTLFFBTEY7QUFBQSwwQkFRSVQsS0FSSixDQU1FVSxRQU5GO0FBQUEsUUFNRUEsUUFORixnQ0FNYSxLQU5iO0FBQUEsUUFPS0MsTUFQTCw0QkFRSVgsS0FSSjs7QUFTQSxRQUFNWSxVQUFVLEdBQUdMLFFBQVEsR0FBRyxTQUFILEdBQWUsT0FBMUM7O0FBQ0Esa0JBQThCckIsTUFBTSxFQUFwQztBQUFBLFFBQU0yQixPQUFOLFdBQU1BLE9BQU47QUFBQSxRQUFlQyxVQUFmLFdBQWVBLFVBQWY7O0FBQ0EsUUFBSUMsY0FBYyxHQUFHTCxRQUFRLElBQUksS0FBWixHQUFvQkcsT0FBcEIsR0FBOEJDLFVBQW5EOztBQUNBLFFBQU1FLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNqQixJQUFELEVBQVU7QUFDM0IsVUFBSSxDQUFDa0IsS0FBSyxDQUFDQyxPQUFOLENBQWNuQixJQUFkLENBQUwsRUFBMEI7QUFDeEIsZUFBTyxFQUFQO0FBQ0Q7O0FBQ0QsVUFBSW9CLE9BQU8sc0JBQU9wQixJQUFQLENBQVg7O0FBQ0EsVUFBSUcsT0FBTyxDQUFDa0IsTUFBUixHQUFpQixDQUFyQixFQUF3QjtBQUN0QkQsUUFBQUEsT0FBTyxnQ0FBT2pCLE9BQVAsc0JBQW1CaUIsT0FBbkIsRUFBUDtBQUNEOztBQUNELFVBQUloQixVQUFVLENBQUNpQixNQUFYLEdBQW9CLENBQXhCLEVBQTJCO0FBQ3pCLFlBQUlDLFVBQVUsR0FBRyxFQUFqQjtBQUNBLFlBQU1DLFdBQWdCLEdBQUdWLFVBQVUsQ0FBQ1csS0FBWCxDQUFpQixHQUFqQixDQUF6QjtBQUNBSixRQUFBQSxPQUFPLENBQUNLLEdBQVIsQ0FBWSxVQUFDQyxJQUFELEVBQU9DLENBQVAsRUFBYTtBQUN2QixjQUFJQyxLQUFLLEdBQUcsRUFBWjtBQUNBTCxVQUFBQSxXQUFXLENBQUNFLEdBQVosQ0FBZ0IsVUFBQ0ksQ0FBRCxFQUFJQyxLQUFKLEVBQWM7QUFDNUJGLFlBQUFBLEtBQUssR0FBR0UsS0FBSyxJQUFJLENBQVQsR0FBYUYsS0FBSyxHQUFHRixJQUFJLENBQUNHLENBQUQsQ0FBekIsR0FBK0JELEtBQUssR0FBRyxHQUFSLEdBQWNGLElBQUksQ0FBQ0csQ0FBRCxDQUF6RDtBQUNELFdBRkQ7O0FBR0EsY0FBSXpCLFVBQVUsQ0FBQzJCLE9BQVgsQ0FBbUJILEtBQW5CLEtBQTZCLENBQUMsQ0FBbEMsRUFBcUM7QUFDbkNOLFlBQUFBLFVBQVUsQ0FBQ1UsSUFBWCxDQUFnQk4sSUFBaEI7QUFDRDtBQUNGLFNBUkQ7QUFTQSxlQUFPSixVQUFQO0FBQ0QsT0FiRCxNQWFPO0FBQ0wsZUFBT0YsT0FBUDtBQUNEO0FBQ0YsS0F4QkQ7O0FBeUJBLFFBQUksQ0FBQ3RCLFFBQUwsRUFBZTtBQUNiLFVBQUksRUFBRUUsSUFBSSxJQUFJUSxRQUFSLElBQW9CSCxHQUFwQixJQUEyQkgsT0FBN0IsQ0FBSixFQUEyQztBQUN6QyxjQUFNLElBQUkrQixLQUFKLENBQVUsaUNBQVYsQ0FBTjtBQUNEOztBQUNELFVBQUlDLEtBQUssaUNBQVQ7O0FBQ0EsVUFBSUMsVUFBVTtBQUNaQyxRQUFBQSxLQUFLLEVBQUUsT0FESztBQUVaQyxRQUFBQSxTQUFTLGdDQUZHO0FBR1ovQixRQUFBQSxTQUFTLEVBQUU7QUFDVGdDLFVBQUFBLFlBQVksRUFBRSxzQkFBVXJDLEtBQVYsRUFBaUJDLE9BQWpCLEVBQTBCO0FBQ3RDaEIsWUFBQUEsS0FBSyxDQUFDcUQsUUFBTixDQUFlaEMsYUFBYSxDQUFDK0IsWUFBN0IsRUFBMkNKLEtBQTNDLEVBQWtELENBQUNqQyxLQUFELEVBQVFDLE9BQVIsQ0FBbEQ7QUFDRCxXQUhRO0FBSVRzQyxVQUFBQSxJQUFJLEVBQUUsY0FBVXhDLElBQVYsRUFBZ0J5QyxTQUFoQixFQUEyQnhDLEtBQTNCLEVBQWtDO0FBQ3RDLGdCQUFNbUIsT0FBTyxHQUFHSCxVQUFVLENBQUNqQixJQUFELENBQTFCOztBQUNBa0MsWUFBQUEsS0FBSyxDQUFDUSxRQUFOLENBQWU7QUFBRS9DLGNBQUFBLFVBQVUsRUFBRXlCLE9BQWQ7QUFBdUJ2QixjQUFBQSxhQUFhLEVBQUV1QjtBQUF0QyxhQUFmOztBQUNBbEMsWUFBQUEsS0FBSyxDQUFDcUQsUUFBTixDQUFlaEMsYUFBYSxDQUFDaUMsSUFBN0IsRUFBbUNOLEtBQW5DLEVBQTBDLENBQUNsQyxJQUFELEVBQU95QyxTQUFQLEVBQWtCeEMsS0FBbEIsQ0FBMUM7QUFDRCxXQVJRO0FBU1QwQyxVQUFBQSxXQUFXLEVBQUUscUJBQVUzQyxJQUFWLEVBQWdCeUMsU0FBaEIsRUFBMkJ4QyxLQUEzQixFQUFrQztBQUM3QyxnQkFBTW1CLE9BQU8sR0FBR0gsVUFBVSxDQUFDakIsSUFBRCxDQUExQjs7QUFDQWtDLFlBQUFBLEtBQUssQ0FBQ1EsUUFBTixDQUFlO0FBQUUvQyxjQUFBQSxVQUFVLEVBQUV5QixPQUFkO0FBQXVCdkIsY0FBQUEsYUFBYSxFQUFFdUI7QUFBdEMsYUFBZjs7QUFDQWxDLFlBQUFBLEtBQUssQ0FBQ3FELFFBQU4sQ0FBZWhDLGFBQWEsQ0FBQ29DLFdBQTdCLEVBQTBDVCxLQUExQyxFQUFpRCxDQUMvQ2xDLElBRCtDLEVBRS9DeUMsU0FGK0MsRUFHL0N4QyxLQUgrQyxDQUFqRDtBQUtEO0FBakJRO0FBSEMsU0FzQlRXLE1BdEJTLENBQWQ7O0FBd0JBLFVBQUksQ0FBQ0osUUFBUSxJQUFJSCxHQUFiLEtBQXFCTCxJQUFJLElBQUksSUFBN0IsSUFBcUNFLE9BQU8sSUFBSSxJQUFwRCxFQUEwRDtBQUN4RCxZQUFJMEMsUUFBUSxHQUFHbkMsTUFBZjtBQUNBLFlBQUlvQyxVQUFVLEdBQUduQyxRQUFqQjs7QUFDQSxZQUFJRixRQUFKLEVBQWM7QUFDWixjQUFJLE9BQU9DLE1BQVAsS0FBa0IsU0FBdEIsRUFBaUM7QUFDL0JtQyxZQUFBQSxRQUFRLEdBQUcsSUFBWDtBQUNBQyxZQUFBQSxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBSCxHQUFnQnJDLFFBQXZDO0FBQ0Q7QUFDRjs7QUFFRDJCLFFBQUFBLFVBQVUsbUNBQ0w7QUFDRFcsVUFBQUEsUUFBUSxFQUFFLElBRFQ7QUFFRHpDLFVBQUFBLEdBQUcsRUFBRUEsR0FBRyxJQUFJVyxjQUFjLEdBQUdSLFFBRjVCO0FBRXNDO0FBQ3ZDQyxVQUFBQSxNQUFNLEVBQUVtQyxRQUhQO0FBSURsQyxVQUFBQSxRQUFRLEVBQUVtQztBQUpULFNBREssR0FPTFYsVUFQSyxDQUFWO0FBU0Q7O0FBQ0QsYUFBS2xDLEtBQUwsR0FBYSxJQUFJaEIsS0FBSixDQUFVa0QsVUFBVixDQUFiO0FBQ0Q7O0FBakdnQjtBQWtHbEI7Ozs7V0FFRCxxQkFBWTtBQUNWLFVBQVFyQyxRQUFSLEdBQXFCLEtBQUtKLEtBQTFCLENBQVFJLFFBQVI7QUFDQSx3QkFBdUMsS0FBS2lELEtBQTVDO0FBQUEsVUFBUWxELGFBQVIsZUFBUUEsYUFBUjtBQUFBLFVBQXVCRSxXQUF2QixlQUF1QkEsV0FBdkI7O0FBQ0EsVUFBSUQsUUFBSixFQUFjO0FBQ1osYUFBSzRDLFFBQUwsQ0FBYztBQUFFNUMsVUFBQUEsUUFBUSxFQUFFQztBQUFaLFNBQWQ7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLMkMsUUFBTCxDQUFjO0FBQ1ovQyxVQUFBQSxVQUFVLEVBQUVFO0FBREEsU0FBZDtBQUdEO0FBQ0Y7OztXQUVELG1CQUFVO0FBQ1IsYUFBTyxLQUFLa0QsS0FBTCxDQUFXbEQsYUFBbEI7QUFDRDs7O1dBRUQsb0JBQVc7QUFDVCxhQUFPLEtBQUtrRCxLQUFMLENBQVduRCxXQUFsQjtBQUNEOzs7V0FDRCxrQkFBU2dDLEtBQVQsRUFBZ0I7QUFDZCxXQUFLYyxRQUFMLENBQWM7QUFDWjlDLFFBQUFBLFdBQVcsRUFBRWdDO0FBREQsT0FBZDtBQUdEOzs7V0FFRCw2QkFBb0I7QUFDbEIsd0JBQW9DLEtBQUtsQyxLQUF6QztBQUFBLFVBQVFNLElBQVIsZUFBUUEsSUFBUjtBQUFBLFVBQWNFLE9BQWQsZUFBY0EsT0FBZDtBQUFBLFVBQXVCSixRQUF2QixlQUF1QkEsUUFBdkI7O0FBQ0EsVUFBSSxDQUFDQSxRQUFELEtBQWNFLElBQUksSUFBSUUsT0FBdEIsQ0FBSixFQUFvQztBQUNsQyxhQUFLd0MsUUFBTCxDQUFjO0FBQ1ovQyxVQUFBQSxVQUFVLEVBQUVLLElBQUksR0FBR0EsSUFBSCxHQUFVRSxPQURkO0FBRVpMLFVBQUFBLGFBQWEsRUFBRUcsSUFBSSxHQUFHQSxJQUFILEdBQVVFO0FBRmpCLFNBQWQ7QUFJRCxPQUxELE1BS08sSUFBSUosUUFBSixFQUFjO0FBQ25CLGFBQUs0QyxRQUFMLENBQWM7QUFDWjVDLFVBQUFBLFFBQVEsRUFBRUEsUUFERTtBQUVaQyxVQUFBQSxXQUFXLEVBQUVEO0FBRkQsU0FBZDtBQUlEO0FBQ0Y7OztXQUNELDRCQUFtQmtELFFBQW5CLEVBQTZCQyxRQUE3QixFQUF1Q0MsUUFBdkMsRUFBaUQ7QUFDL0MseUJBQW9DLEtBQUt4RCxLQUF6QztBQUFBLFVBQVFNLElBQVIsZ0JBQVFBLElBQVI7QUFBQSxVQUFjRSxPQUFkLGdCQUFjQSxPQUFkO0FBQUEsVUFBdUJKLFFBQXZCLGdCQUF1QkEsUUFBdkI7QUFDQSx5QkFBdUMsS0FBS2lELEtBQTVDO0FBQUEsVUFBUWxELGFBQVIsZ0JBQVFBLGFBQVI7QUFBQSxVQUF1QkUsV0FBdkIsZ0JBQXVCQSxXQUF2Qjs7QUFDQSxVQUFJLENBQUNELFFBQUQsS0FBY0UsSUFBSSxJQUFJRSxPQUF0QixDQUFKLEVBQW9DO0FBQ2xDLFlBQU1rQixPQUFPLEdBQUdwQixJQUFJLEdBQUdBLElBQUgsR0FBVUUsT0FBOUI7O0FBQ0EsWUFBSWlELElBQUksQ0FBQ0MsU0FBTCxDQUFldkQsYUFBZixNQUFrQ3NELElBQUksQ0FBQ0MsU0FBTCxDQUFlaEMsT0FBZixDQUF0QyxFQUErRDtBQUM3RCxlQUFLc0IsUUFBTCxDQUFjO0FBQ1ovQyxZQUFBQSxVQUFVLEVBQUV5QixPQURBO0FBRVp2QixZQUFBQSxhQUFhLEVBQUV1QjtBQUZILFdBQWQ7QUFJRDtBQUNGLE9BUkQsTUFRTyxJQUFJdEIsUUFBUSxJQUFJb0IsS0FBSyxDQUFDQyxPQUFOLENBQWNyQixRQUFkLENBQWhCLEVBQXlDO0FBQzlDLFlBQU11RCxrQkFBdUIsR0FBRyxFQUFoQztBQUNBdEQsUUFBQUEsV0FBVyxDQUFDMEIsR0FBWixDQUFnQixVQUFDNkIsQ0FBRCxFQUFZO0FBQzFCRCxVQUFBQSxrQkFBa0IsQ0FBQ3JCLElBQW5CLENBQXdCc0IsQ0FBQyxDQUFDNUQsS0FBMUI7QUFDRCxTQUZEO0FBR0EsWUFBTTZELGFBQWtCLEdBQUcsRUFBM0I7QUFDQXpELFFBQUFBLFFBQVEsQ0FBQzJCLEdBQVQsQ0FBYSxVQUFDK0IsQ0FBRCxFQUFZO0FBQ3ZCRCxVQUFBQSxhQUFhLENBQUN2QixJQUFkLENBQW1Cd0IsQ0FBQyxDQUFDOUQsS0FBckI7QUFDRCxTQUZEOztBQUdBLFlBQ0V5RCxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsa0JBQWYsTUFBdUNGLElBQUksQ0FBQ0MsU0FBTCxDQUFlRyxhQUFmLENBRHpDLEVBRUU7QUFDQSxlQUFLYixRQUFMLENBQWM7QUFDWjVDLFlBQUFBLFFBQVEsRUFBRUEsUUFERTtBQUVaQyxZQUFBQSxXQUFXLEVBQUVEO0FBRkQsV0FBZDtBQUlEO0FBQ0Y7QUFDRjs7O1dBQ0QsZ0NBQXVCO0FBQ3JCLFdBQUs0QyxRQUFMLEdBQWdCLFVBQUNLLEtBQUQsRUFBUVIsUUFBUixFQUFxQjtBQUNuQztBQUNELE9BRkQ7QUFHRDs7O1dBQ0Qsa0JBQVNYLEtBQVQsRUFBZ0I7QUFDZCx5QkFBdUMsS0FBS21CLEtBQTVDO0FBQUEsVUFBUWxELGFBQVIsZ0JBQVFBLGFBQVI7QUFBQSxVQUF1QkUsV0FBdkIsZ0JBQXVCQSxXQUF2QjtBQUNBLHlCQUFnRSxLQUFLTCxLQUFyRTtBQUFBLCtDQUFRK0QsWUFBUjtBQUFBLFVBQVFBLFlBQVIsc0NBQXVCLElBQXZCO0FBQUEsVUFBNkJDLFFBQTdCLGdCQUE2QkEsUUFBN0I7QUFBQSxVQUF1QzVELFFBQXZDLGdCQUF1Q0EsUUFBdkM7QUFBQSw0Q0FBaURHLEtBQWpEO0FBQUEsVUFBaURBLEtBQWpELG1DQUF5RCxFQUF6RDtBQUNBLFVBQU0wRCxVQUFOLEdBQXFCLEtBQUtqRSxLQUExQixDQUFNaUUsVUFBTjtBQUNBLFVBQVFuRCxRQUFSLEdBQXFCUCxLQUFyQixDQUFRTyxRQUFSO0FBQ0FtRCxNQUFBQSxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBSCxHQUFnQm5ELFFBQVEsR0FBRyxXQUFILEdBQWlCLE9BQWhFOztBQUNBLFVBQUlpRCxZQUFKLEVBQWtCO0FBQ2hCLFlBQUlHLE1BQU0sR0FBRyxFQUFiOztBQUNBLFlBQUksQ0FBQzlELFFBQUwsRUFBZTtBQUNiLGNBQUk4QixLQUFKLEVBQVc7QUFDVC9CLFlBQUFBLGFBQWEsQ0FBQ2dFLE9BQWQsQ0FBc0IsVUFBQ25DLElBQUQsRUFBVTtBQUM5QixrQkFBSW9DLEtBQUssR0FBRyxFQUFaOztBQUNBLGtCQUFJSCxVQUFVLENBQUNuQyxLQUFYLENBQWlCLEdBQWpCLEVBQXNCSCxNQUF0QixJQUFnQyxDQUFwQyxFQUF1QztBQUNyQ3lDLGdCQUFBQSxLQUFLLEdBQUdwQyxJQUFJLENBQUNpQyxVQUFELENBQVo7QUFDRCxlQUZELE1BRU87QUFDTCxvQkFBTUksV0FBZ0IsR0FBR0osVUFBVSxDQUFDbkMsS0FBWCxDQUFpQixHQUFqQixDQUF6QjtBQUNBdUMsZ0JBQUFBLFdBQVcsQ0FBQ3RDLEdBQVosQ0FBZ0IsVUFBQ3VDLENBQUQsRUFBSWxDLEtBQUosRUFBYztBQUM1QmdDLGtCQUFBQSxLQUFLLEdBQUdoQyxLQUFLLElBQUksQ0FBVCxHQUFhZ0MsS0FBSyxHQUFHcEMsSUFBSSxDQUFDc0MsQ0FBRCxDQUF6QixHQUErQkYsS0FBSyxHQUFHLEdBQVIsR0FBY3BDLElBQUksQ0FBQ3NDLENBQUQsQ0FBekQ7QUFDRCxpQkFGRDtBQUdEOztBQUNELGtCQUFJQyxJQUFJLEdBQUczRSxXQUFXLENBQUM0RSxLQUFaLENBQWtCSixLQUFsQixFQUF5QmxDLEtBQXpCLENBQVg7O0FBQ0Esa0JBQUlxQyxJQUFKLEVBQVU7QUFDUkwsZ0JBQUFBLE1BQU0sQ0FBQzVCLElBQVAsQ0FBWU4sSUFBWjtBQUNEO0FBQ0YsYUFkRDtBQWVBLGlCQUFLZ0IsUUFBTCxDQUFjO0FBQ1ovQyxjQUFBQSxVQUFVLEVBQUVpRTtBQURBLGFBQWQ7QUFHRCxXQW5CRCxNQW1CTztBQUNMLGlCQUFLbEIsUUFBTCxDQUFjO0FBQ1ovQyxjQUFBQSxVQUFVLEVBQUVFO0FBREEsYUFBZDtBQUdEO0FBQ0YsU0F6QkQsTUF5Qk87QUFDTCxjQUFJK0IsS0FBSixFQUFXO0FBQ1QsZ0JBQUlWLEtBQUssQ0FBQ0MsT0FBTixDQUFjcEIsV0FBZCxDQUFKLEVBQWdDO0FBQzlCQSxjQUFBQSxXQUFXLENBQUMwQixHQUFaLENBQWdCLFVBQUMwQyxLQUFELEVBQWFyQyxLQUFiLEVBQXVCO0FBQUE7O0FBQ3JDLG9CQUFJZ0MsS0FBSyxHQUFHSyxLQUFILGFBQUdBLEtBQUgsdUNBQUdBLEtBQUssQ0FBRXpFLEtBQVYsaURBQUcsYUFBY0ksUUFBMUI7QUFDQSxvQkFBSW1FLElBQUksR0FBRzNFLFdBQVcsQ0FBQzRFLEtBQVosQ0FBa0JKLEtBQWxCLEVBQXlCbEMsS0FBekIsQ0FBWDs7QUFDQSxvQkFBSXFDLElBQUosRUFBVTtBQUNSTCxrQkFBQUEsTUFBTSxDQUFDNUIsSUFBUCxDQUFZbUMsS0FBWjtBQUNEO0FBQ0YsZUFORDtBQU9EOztBQUNELGlCQUFLekIsUUFBTCxDQUFjO0FBQ1o1QyxjQUFBQSxRQUFRLEVBQUU4RDtBQURFLGFBQWQ7QUFHRCxXQWJELE1BYU87QUFDTCxpQkFBS2xCLFFBQUwsQ0FBYztBQUNaNUMsY0FBQUEsUUFBUSxFQUFFQTtBQURFLGFBQWQ7QUFHRDtBQUNGO0FBQ0Y7O0FBQ0Q0RCxNQUFBQSxRQUFRLElBQUlBLFFBQVEsQ0FBQzlCLEtBQUQsQ0FBcEI7QUFDRDs7O1dBQ0Qsc0JBQWF3QyxVQUFiLEVBQXlCO0FBQ3ZCLHlCQUtJLEtBQUsxRSxLQUxUO0FBQUEsNENBQ0VPLEtBREY7QUFBQSxVQUNFQSxLQURGLG1DQUNVLEVBRFY7QUFBQSwrQ0FFRW9FLFNBRkY7QUFBQSxVQUVFQSxTQUZGLHNDQUVjLFFBRmQ7QUFBQSxVQUdFVixVQUhGLGdCQUdFQSxVQUhGO0FBQUEsVUFJRTlDLFVBSkYsZ0JBSUVBLFVBSkY7QUFNQSxVQUFRTCxRQUFSLEdBQXFCUCxLQUFyQixDQUFRTyxRQUFSO0FBQ0FLLE1BQUFBLFVBQVUsR0FBR0EsVUFBVSxHQUFHQSxVQUFILEdBQWdCTCxRQUFRLEdBQUcsU0FBSCxHQUFlLE9BQTlEO0FBQ0FtRCxNQUFBQSxVQUFVLEdBQUdBLFVBQVUsR0FBR0EsVUFBSCxHQUFnQm5ELFFBQVEsR0FBRyxXQUFILEdBQWlCLE9BQWhFO0FBQ0EsYUFBTzRELFVBQVUsQ0FBQzNDLEdBQVgsQ0FBZSxVQUFDQyxJQUFELEVBQVU7QUFDOUIsWUFBSUUsS0FBSjs7QUFDQSxZQUFJZixVQUFVLENBQUNXLEtBQVgsQ0FBaUIsR0FBakIsRUFBc0JILE1BQXRCLElBQWdDLENBQXBDLEVBQXVDO0FBQ3JDTyxVQUFBQSxLQUFLLEdBQ0h5QyxTQUFTLEtBQUssUUFBZCxHQUNJQyxNQUFNLENBQUM1QyxJQUFJLENBQUNiLFVBQUQsQ0FBTCxDQURWLEdBRUlhLElBQUksQ0FBQ2IsVUFBRCxDQUFKLEdBQW1CLEVBSHpCO0FBSUQsU0FMRCxNQUtPO0FBQ0wsY0FBTVUsV0FBZ0IsR0FBR1YsVUFBVSxDQUFDVyxLQUFYLENBQWlCLEdBQWpCLENBQXpCO0FBQ0FELFVBQUFBLFdBQVcsQ0FBQ0UsR0FBWixDQUFnQixVQUFDSSxDQUFELEVBQUlDLEtBQUosRUFBYztBQUM1QkYsWUFBQUEsS0FBSyxHQUFHRSxLQUFLLElBQUksQ0FBVCxHQUFhRixLQUFLLEdBQUdGLElBQUksQ0FBQ0csQ0FBRCxDQUF6QixHQUErQkQsS0FBSyxHQUFHLEdBQVIsR0FBY0YsSUFBSSxDQUFDRyxDQUFELENBQXpEO0FBQ0QsV0FGRDtBQUdEOztBQUNELFlBQUkwQyxHQUFHLEdBQUc3QyxJQUFJLENBQUM4QyxFQUFMLEdBQVc5QyxJQUFJLENBQUM4QyxFQUFMLEtBQVksV0FBWixHQUEwQjlDLElBQUksQ0FBQzhDLEVBQS9CLEdBQW9DNUMsS0FBL0MsR0FBd0RBLEtBQWxFO0FBQ0EsWUFBSWtDLEtBQUssR0FBRyxFQUFaOztBQUNBLFlBQUlILFVBQVUsQ0FBQ25DLEtBQVgsQ0FBaUIsR0FBakIsRUFBc0JILE1BQXRCLElBQWdDLENBQXBDLEVBQXVDO0FBQ3JDeUMsVUFBQUEsS0FBSyxHQUFHcEMsSUFBSSxDQUFDaUMsVUFBRCxDQUFaO0FBQ0QsU0FGRCxNQUVPO0FBQ0wsY0FBTUksV0FBZ0IsR0FBR0osVUFBVSxDQUFDbkMsS0FBWCxDQUFpQixHQUFqQixDQUF6QjtBQUNBdUMsVUFBQUEsV0FBVyxDQUFDdEMsR0FBWixDQUFnQixVQUFDdUMsQ0FBRCxFQUFJbEMsS0FBSixFQUFjO0FBQzVCZ0MsWUFBQUEsS0FBSyxHQUFHaEMsS0FBSyxJQUFJLENBQVQsR0FBYWdDLEtBQUssR0FBR3BDLElBQUksQ0FBQ3NDLENBQUQsQ0FBekIsR0FBK0JGLEtBQUssR0FBRyxHQUFSLEdBQWNwQyxJQUFJLENBQUNzQyxDQUFELENBQXpEO0FBQ0QsV0FGRDtBQUdEOztBQUNELDRCQUNFLG9CQUFDLE1BQUQ7QUFDRSxVQUFBLEdBQUcsRUFBRU8sR0FEUDtBQUVFLFVBQUEsS0FBSyxFQUFFM0MsS0FGVDtBQUdFLFVBQUEsS0FBSyxFQUFFa0MsS0FIVDtBQUlFLFVBQUEsUUFBUSxFQUFFcEMsSUFBSSxDQUFDK0MsUUFBTCxHQUFnQixJQUFoQixHQUF1QjtBQUpuQyxXQU1HWCxLQU5ILENBREY7QUFVRCxPQWpDTSxDQUFQO0FBa0NEOzs7V0FDRCwwQkFBaUI7QUFBQTs7QUFDZixrQ0FBNkIsS0FBS3BFLEtBQWxDLENBQVFnRixTQUFSO0FBQUEsVUFBUUEsU0FBUixzQ0FBb0IsSUFBcEI7QUFDQSx5QkFBaUMsS0FBSzNCLEtBQXRDO0FBQUEsVUFBUXBELFVBQVIsZ0JBQVFBLFVBQVI7QUFBQSxVQUFvQkcsUUFBcEIsZ0JBQW9CQSxRQUFwQjs7QUFDQSxVQUFJQSxRQUFKLEVBQWM7QUFDWiw0QkFBTywwQ0FBR0EsUUFBSCxDQUFQO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBSTZFLFlBQVksR0FBRyxFQUFuQjtBQUFBLFlBQ0VQLFVBQVUsR0FBRyxFQURmO0FBRUF6RSxRQUFBQSxVQUFVLENBQUNrRSxPQUFYLENBQW1CLFVBQUNuQyxJQUFELEVBQVU7QUFDM0IsY0FBSW9DLEtBQUssR0FBR3BDLElBQUksQ0FBQ2tELFNBQWpCOztBQUNBLGNBQUlkLEtBQUssSUFBSVksU0FBYixFQUF3QjtBQUN0QixnQkFBSSxDQUFDQyxZQUFZLENBQUNiLEtBQUQsQ0FBakIsRUFBMEJhLFlBQVksQ0FBQ2IsS0FBRCxDQUFaLEdBQXNCLEVBQXRCO0FBQzFCYSxZQUFBQSxZQUFZLENBQUNiLEtBQUQsQ0FBWixDQUFvQjlCLElBQXBCLENBQXlCTixJQUF6QjtBQUNELFdBSEQsTUFHTztBQUNMMEMsWUFBQUEsVUFBVSxDQUFDcEMsSUFBWCxDQUFnQk4sSUFBaEI7QUFDRDtBQUNGLFNBUkQ7QUFTQSxZQUFJbUQsTUFBTSxHQUFHLEtBQUtDLFlBQUwsQ0FBa0JWLFVBQWxCLENBQWI7QUFDQSxZQUFJVyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTixZQUFaLEVBQTBCbEQsR0FBMUIsQ0FBOEIsVUFBQzhDLEdBQUQsRUFBUztBQUNwRCw4QkFDRSxvQkFBQyxRQUFEO0FBQVUsWUFBQSxHQUFHLEVBQUVBLEdBQWY7QUFBb0IsWUFBQSxLQUFLLEVBQUVBO0FBQTNCLGFBQ0csTUFBSSxDQUFDTyxZQUFMLENBQWtCSCxZQUFZLENBQUNKLEdBQUQsQ0FBOUIsQ0FESCxDQURGO0FBS0QsU0FOYyxDQUFmO0FBT0EsNEJBQ0UsMENBQ0dNLE1BREgsRUFFR0UsUUFGSCxDQURGO0FBTUQ7QUFDRjs7O1dBQ0Qsa0JBQVNuRCxLQUFULEVBQWdCMUIsT0FBaEIsRUFBeUI7QUFDdkIsVUFBUWdGLFFBQVIsR0FBcUIsS0FBS3hGLEtBQTFCLENBQVF3RixRQUFSO0FBQ0EsV0FBS3hDLFFBQUwsQ0FBYztBQUNaOUMsUUFBQUEsV0FBVyxFQUFFZ0M7QUFERCxPQUFkOztBQUdBLFVBQUlzRCxRQUFKLEVBQWM7QUFDWkEsUUFBQUEsUUFBUSxDQUFDdEQsS0FBRCxFQUFRMUIsT0FBUixDQUFSO0FBQ0Q7QUFDRjs7O1dBQ0QsaUNBQXdCaUYsSUFBeEIsRUFBOEI7QUFDNUIsVUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxhQUFLQyxTQUFMO0FBQ0Q7QUFDRjs7O1dBQ0Qsa0JBQVM7QUFDUCx5QkFjSSxLQUFLMUYsS0FkVDtBQUFBLFVBQ0VJLFFBREYsZ0JBQ0VBLFFBREY7QUFBQSxVQUVFRyxLQUZGLGdCQUVFQSxLQUZGO0FBQUEsVUFHRUQsSUFIRixnQkFHRUEsSUFIRjtBQUFBLFVBSUVrRixRQUpGLGdCQUlFQSxRQUpGO0FBQUEsVUFLRWhGLE9BTEYsZ0JBS0VBLE9BTEY7QUFBQSxVQU1FeUQsVUFORixnQkFNRUEsVUFORjtBQUFBLFVBT0U5QyxVQVBGLGdCQU9FQSxVQVBGO0FBQUEsVUFRRXdFLFlBUkYsZ0JBUUVBLFlBUkY7QUFBQSwrQ0FTRVgsU0FURjtBQUFBLFVBU0VBLFNBVEYsc0NBU2MsSUFUZDtBQUFBLFVBVUV2RSxPQVZGLGdCQVVFQSxPQVZGO0FBQUEsVUFXRUMsVUFYRixnQkFXRUEsVUFYRjtBQUFBLFVBWUVpRSxTQVpGLGdCQVlFQSxTQVpGO0FBQUEsVUFhS2lCLE1BYkw7O0FBZUEsVUFBSTVGLEtBQUssR0FBRztBQUNWK0QsUUFBQUEsWUFBWSxFQUFFLEtBREo7QUFFVjhCLFFBQUFBLFVBQVUsRUFBRSxJQUZGO0FBR1ZDLFFBQUFBLGdCQUFnQixFQUFFLE9BSFI7QUFJVkMsUUFBQUEsV0FBVyxFQUFFLEtBSkg7QUFLVkMsUUFBQUEsVUFBVSxFQUFFO0FBTEYsT0FBWjs7QUFPQSxxQkFBb0N2RyxNQUFNLEVBQTFDO0FBQUEsVUFBTXdHLFNBQU4sWUFBTUEsU0FBTjtBQUFBLFVBQWlCQyxjQUFqQixZQUFpQkEsY0FBakI7O0FBQ0EsVUFBSUEsY0FBSixFQUFvQjtBQUNsQmxHLFFBQUFBLEtBQUssbUNBQ0FBLEtBREE7QUFFSG1HLFVBQUFBLGlCQUFpQixFQUFFO0FBQUEsbUJBQU1DLFFBQVEsQ0FBQ0MsY0FBVCxDQUF3QkgsY0FBeEIsQ0FBTjtBQUFBO0FBRmhCLFVBQUw7QUFJRDs7QUFDRCxVQUFJLENBQUNQLFlBQVksSUFBSU0sU0FBakIsS0FBK0JOLFlBQVksS0FBSyxJQUFwRCxFQUEwRDtBQUN4RCw0QkFDRTtBQUFLLFVBQUEsU0FBUyxFQUFFaEcsR0FBRyxDQUFDRCxNQUFNLENBQUMsWUFBRCxDQUFQLEVBQXVCLEtBQUtNLEtBQUwsQ0FBV3NHLFNBQWxDO0FBQW5CLHdCQUNFO0FBQ0UsVUFBQSxLQUFLLEVBQUUsS0FBS2pELEtBQUwsQ0FBV25ELFdBRHBCO0FBRUUsVUFBQSxRQUFRLEVBQUUsS0FBS3NGLFFBQUwsQ0FBY2UsSUFBZCxDQUFtQixJQUFuQixDQUZaO0FBR0UsVUFBQSxRQUFRLEVBQUUsS0FBS3ZDLFFBQUwsQ0FBY3VDLElBQWQsQ0FBbUIsSUFBbkIsQ0FIWjtBQUlFLFVBQUEsdUJBQXVCLEVBQUUsS0FBS0MsdUJBQUwsQ0FBNkJELElBQTdCLENBQWtDLElBQWxDO0FBSjNCLFdBS012RyxLQUxOLEVBTU00RixNQU5OLEdBUUcsS0FBS2EsY0FBTCxFQVJILENBREYsQ0FERjtBQWNELE9BZkQsTUFlTztBQUNMLDRCQUNFO0FBQ0UsVUFBQSxLQUFLLEVBQUUsS0FBS3BELEtBQUwsQ0FBV25ELFdBRHBCO0FBRUUsVUFBQSxRQUFRLEVBQUUsS0FBSzhELFFBQUwsQ0FBY3VDLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWjtBQUdFLFVBQUEsUUFBUSxFQUFFLEtBQUtmLFFBQUwsQ0FBY2UsSUFBZCxDQUFtQixJQUFuQixDQUhaO0FBSUUsVUFBQSx1QkFBdUIsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkQsSUFBN0IsQ0FBa0MsSUFBbEM7QUFKM0IsV0FLTXZHLEtBTE4sRUFNTTRGLE1BTk4sR0FTRyxLQUFLYSxjQUFMLEVBVEgsQ0FERjtBQWFEO0FBQ0Y7Ozs7RUF6WW9DbkgsYTs7Z0JBQWxCUyxTLFlBQ0hGLE07O2dCQURHRSxTLGNBRURELFE7O1NBRkNDLFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBTZWxlY3QsIFNlbGVjdFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgUGlueWluTWF0Y2ggZnJvbSBcInBpbnlpbi1tYXRjaFwiO1xyXG5jb25zdCB7IE9wdGlvbiwgT3B0R3JvdXAgfSA9IFNlbGVjdDtcclxuXHJcbmludGVyZmFjZSBJU2VsZWN0UHJvcHMgZXh0ZW5kcyBTZWxlY3RQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZGF0YT86IEFycmF5PE9iamVjdD47IC8v6buY6K6k5pWw5o2uXHJcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcclxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRTdHlsZT86IGJvb2xlYW47XHJcbiAgc2hvd0dyb3VwPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliIbnu4RcclxuICBhZGREYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/phY3lkIhzdG9yZeS9v+eUqO+8jOS7juWinuWKoOmineWklueahOaVsOaNrlxyXG4gIGRlbGV0ZURhdGE/OiBBcnJheTxTdHJpbmc+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5Yig6Zmk5LuO5pWw5o2u5bqT5Lit6I635Y+W5Yiw55qE5oyH5a6a5pWw5o2uXHJcbiAgdmFsdWVCcmVhaz86IHN0cmluZzsgLy/lpJrkuKp2YWx1ZeS9v+eUqOeahOWIhumalOesplxyXG4gIHZhbHVlVHlwZT86IFwic3RyaW5nXCIgfCBcIm51bWJlclwiO1xyXG4gIFtwcm9OYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTlNDU2VsZWN0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJU2VsZWN0UHJvcHM+IHtcclxuICBzdGF0aWMgT3B0aW9uID0gT3B0aW9uO1xyXG4gIHN0YXRpYyBPcHRHcm91cCA9IE9wdEdyb3VwO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBzZWxlY3RWYWx1ZTogbnVsbCxcclxuICAgIGFsbERhdGFTb3VyY2U6IFtdLFxyXG4gICAgY2hpbGRyZW46IG51bGwsXHJcbiAgICBhbGxDaGlsZHJlbjogbnVsbCxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIHZpZXduYW1lLFxyXG4gICAgICBjYWNoZWQsXHJcbiAgICAgIGNhY2hlS2V5LFxyXG4gICAgICB2aWV3dHlwZSA9IFwic3lzXCIsXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG4gICAgY29uc3QgdmFsdWVGaWVsZCA9IHZpZXduYW1lID8gXCJkaWN0S2V5XCIgOiBcInZhbHVlXCI7XHJcbiAgICBsZXQgeyB2aWV3VXJsLCB2aWV3Qml6VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGxldCByZXF1ZXN0Vmlld1VybCA9IHZpZXd0eXBlID09IFwic3lzXCIgPyB2aWV3VXJsIDogdmlld0JpelVybDtcclxuICAgIGNvbnN0IGdldEFsbERhdGEgPSAoZGF0YSkgPT4ge1xyXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5ld0RhdGEgPSBbLi4uZGF0YV07XHJcbiAgICAgIGlmIChhZGREYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdEYXRhID0gWy4uLmFkZERhdGEsIC4uLm5ld0RhdGFdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChkZWxldGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgc3BsaWNlRGF0YSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICBuZXdEYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChkZWxldGVEYXRhLmluZGV4T2YodmFsdWUpID09IC0xKSB7XHJcbiAgICAgICAgICAgIHNwbGljZURhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3BsaWNlRGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCEoZGF0YSB8fCB2aWV3bmFtZSB8fCB1cmwgfHwgb3B0aW9ucykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHjgIFvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgIGxldCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCByZXF1ZXN0Vmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiBhbGxDaGlsZHJlbiB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmFsbERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIFNuYXBzaG90KSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGFsbERhdGFTb3VyY2UpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY29uc3Qgc3RhdGVDaGlsZHJlblByb3BzOiBhbnkgPSBbXTtcclxuICAgICAgYWxsQ2hpbGRyZW4ubWFwKChzOiBhbnkpID0+IHtcclxuICAgICAgICBzdGF0ZUNoaWxkcmVuUHJvcHMucHVzaChzLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNoaWxkcmVuUHJvcHMucHVzaChjLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzdGF0ZUNoaWxkcmVuUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShjaGlsZHJlblByb3BzKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUgPSAoc3RhdGUsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH07XHJcbiAgfVxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBmaWx0ZXJPcHRpb24gPSB0cnVlLCBvblNlYXJjaCwgY2hpbGRyZW4sIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBsYWJlbEZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICBsYWJlbEZpZWxkID0gbGFiZWxGaWVsZCA/IGxhYmVsRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdFZhbHVlXCIgOiBcImxhYmVsXCI7XHJcbiAgICBpZiAoZmlsdGVyT3B0aW9uKSB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkYXRhU291cmNlOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbGxDaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgYWxsQ2hpbGRyZW4ubWFwKChjaGlsZDogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBsYWJlbCA9IGNoaWxkPy5wcm9wcz8uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogcmVzdWx0LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uU2VhcmNoICYmIG9uU2VhcmNoKHZhbHVlKTtcclxuICB9XHJcbiAgcmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIHZhbHVlVHlwZSA9IFwic3RyaW5nXCIsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQgPyB2YWx1ZUZpZWxkIDogdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGxhYmVsRmllbGQgPSBsYWJlbEZpZWxkID8gbGFiZWxGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0VmFsdWVcIiA6IFwibGFiZWxcIjtcclxuICAgIHJldHVybiBvcHRpb25EYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgaWYgKHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgdmFsdWUgPVxyXG4gICAgICAgICAgdmFsdWVUeXBlID09PSBcIm51bWJlclwiXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGl0ZW1bdmFsdWVGaWVsZF0pXHJcbiAgICAgICAgICAgIDogaXRlbVt2YWx1ZUZpZWxkXSArIFwiXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSwgY2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlKG9wZW4pIHtcclxuICAgIGlmICghb3Blbikge1xyXG4gICAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBzdG9yZSxcclxuICAgICAgZGF0YSxcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgYWRkRGF0YSxcclxuICAgICAgZGVsZXRlRGF0YSxcclxuICAgICAgdmFsdWVUeXBlLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBsZXQgeyBhbnRkU3R5bGUsIG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBnZXRQb3B1cENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKChkZWZhdWx0U3R5bGUgfHwgYW50ZFN0eWxlKSAmJiBkZWZhdWx0U3R5bGUgPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcIm5zY19zZWxlY3RcIl0sIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPXt0aGlzLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgLy8gZ2V0UG9wdXBDb250YWluZXI9eygpPT5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncWhzZS1hcHAnKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
578
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2Uvc2VsZWN0L2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJnZXRGbGF0dGVuRGF0YSIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiTlNDU2VsZWN0IiwicHJvcHMiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiY2hpbGRyZW4iLCJhbGxDaGlsZHJlbiIsImRhdGEiLCJzdG9yZSIsIm9wdGlvbnMiLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwidmlld3R5cGUiLCJzdG9yZXMiLCJ2YWx1ZUZpZWxkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsImdldEFsbERhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwibGVuZ3RoIiwic3BsaWNlRGF0YSIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInZhbHVlIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInB1c2giLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwic3RhdGUiLCJrZXlGaWVsZCIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJmaWx0ZXJPcHRpb24iLCJvblNlYXJjaCIsImxhYmVsRmllbGQiLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJ2YWx1ZVR5cGUiLCJOdW1iZXIiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJnZXRTZWxlY3REYXRhIiwib25TZWxlY3QiLCJvcGVuIiwicmVzZXREYXRhIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJhbnRkU3R5bGUiLCJtb3VudEVsZW1lbnRJZCIsImdldFBvcHVwQ29udGFpbmVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNsYXNzTmFtZSIsImJpbmQiLCJvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSIsInJlbmRlckNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLE9BQU9DLEtBQVAsTUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUVBLE9BQU9DLFdBQVAsTUFBd0IsY0FBeEI7QUFDQSxTQUFTQyxjQUFULFFBQStCLG1CQUEvQjtBQUNBLElBQVFDLE1BQVIsV0FBUUEsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixXQUFnQkEsUUFBaEI7O0lBaUJxQkMsUzs7Ozs7QUFXbkIscUJBQVlD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QUwsQ0FBNkJELElBQTdCLENBQWtDLElBQWxDO0FBTDNCLFdBTU0xRyxLQU5OLEVBT00rRixNQVBOLEdBU0csS0FBS2EsY0FBTCxFQVRILENBREYsQ0FERjtBQWVELE9BaEJELE1BZ0JPO0FBQ0wsNEJBQ0U7QUFDRSxVQUFBLEtBQUssRUFBRSxLQUFLdkQsS0FBTCxDQUFXbkQsV0FEcEI7QUFFRSxVQUFBLFFBQVEsRUFBRSxLQUFLK0QsUUFBTCxDQUFjeUMsSUFBZCxDQUFtQixJQUFuQixDQUZaO0FBR0UsVUFBQSxRQUFRLEVBQUUsS0FBS2pCLFFBQUwsQ0FBY2lCLElBQWQsQ0FBbUIsSUFBbkIsQ0FIWjtBQUlFLFVBQUEsUUFBUSxFQUFFLEtBQUtmLFFBQUwsQ0FBY2UsSUFBZCxDQUFtQixJQUFuQixDQUpaO0FBS0UsVUFBQSx1QkFBdUIsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkQsSUFBN0IsQ0FBa0MsSUFBbEM7QUFMM0IsV0FNTTFHLEtBTk4sRUFPTStGLE1BUE4sR0FXRyxLQUFLYSxjQUFMLEVBWEgsQ0FERjtBQWVEO0FBQ0Y7Ozs7RUEvWm9DdkgsYTs7Z0JBQWxCVSxTLFlBQ0hGLE07O2dCQURHRSxTLGNBRURELFE7O1NBRkNDLFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBTZWxlY3QsIFNlbGVjdFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgUGlueWluTWF0Y2ggZnJvbSBcInBpbnlpbi1tYXRjaFwiO1xyXG5pbXBvcnQgeyBnZXRGbGF0dGVuRGF0YSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5jb25zdCB7IE9wdGlvbiwgT3B0R3JvdXAgfSA9IFNlbGVjdDtcclxuXHJcbmludGVyZmFjZSBJU2VsZWN0UHJvcHMgZXh0ZW5kcyBTZWxlY3RQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZGF0YT86IEFycmF5PE9iamVjdD47IC8v6buY6K6k5pWw5o2uXHJcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcclxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRTdHlsZT86IGJvb2xlYW47XHJcbiAgc2hvd0dyb3VwPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliIbnu4RcclxuICBhZGREYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/phY3lkIhzdG9yZeS9v+eUqO+8jOS7juWinuWKoOmineWklueahOaVsOaNrlxyXG4gIGRlbGV0ZURhdGE/OiBBcnJheTxTdHJpbmc+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5Yig6Zmk5LuO5pWw5o2u5bqT5Lit6I635Y+W5Yiw55qE5oyH5a6a5pWw5o2uXHJcbiAgdmFsdWVCcmVhaz86IHN0cmluZzsgLy/lpJrkuKp2YWx1ZeS9v+eUqOeahOWIhumalOesplxyXG4gIHZhbHVlVHlwZT86IFwic3RyaW5nXCIgfCBcIm51bWJlclwiO1xyXG4gIFtwcm9OYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgb25DaGFuZ2U/OiBhbnk7XHJcbiAgb25TZWxlY3Q/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTlNDU2VsZWN0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJU2VsZWN0UHJvcHM+IHtcclxuICBzdGF0aWMgT3B0aW9uID0gT3B0aW9uO1xyXG4gIHN0YXRpYyBPcHRHcm91cCA9IE9wdEdyb3VwO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBzZWxlY3RWYWx1ZTogbnVsbCxcclxuICAgIGFsbERhdGFTb3VyY2U6IFtdLFxyXG4gICAgY2hpbGRyZW46IG51bGwsXHJcbiAgICBhbGxDaGlsZHJlbjogbnVsbCxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIHZpZXduYW1lLFxyXG4gICAgICBjYWNoZWQsXHJcbiAgICAgIGNhY2hlS2V5LFxyXG4gICAgICB2aWV3dHlwZSA9IFwic3lzXCIsXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG4gICAgY29uc3QgdmFsdWVGaWVsZCA9IHZpZXduYW1lID8gXCJkaWN0S2V5XCIgOiBcInZhbHVlXCI7XHJcbiAgICBsZXQgeyB2aWV3VXJsLCB2aWV3Qml6VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGxldCByZXF1ZXN0Vmlld1VybCA9IHZpZXd0eXBlID09IFwic3lzXCIgPyB2aWV3VXJsIDogdmlld0JpelVybDtcclxuICAgIGNvbnN0IGdldEFsbERhdGEgPSAoZGF0YSkgPT4ge1xyXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5ld0RhdGEgPSBbLi4uZGF0YV07XHJcbiAgICAgIGlmIChhZGREYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdEYXRhID0gWy4uLmFkZERhdGEsIC4uLm5ld0RhdGFdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChkZWxldGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgc3BsaWNlRGF0YSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICBuZXdEYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChkZWxldGVEYXRhLmluZGV4T2YodmFsdWUpID09IC0xKSB7XHJcbiAgICAgICAgICAgIHNwbGljZURhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3BsaWNlRGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCEoZGF0YSB8fCB2aWV3bmFtZSB8fCB1cmwgfHwgb3B0aW9ucykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHjgIFvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgIGxldCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCByZXF1ZXN0Vmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiBhbGxDaGlsZHJlbiB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmFsbERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0RGF0YSh2YWx1ZSkge1xyXG4gICAgY29uc3QgeyBkYXRhU291cmNlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHsgc3RvcmUgPSB7fSwgdmFsdWVGaWVsZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQgPyB2YWx1ZUZpZWxkIDogdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRGbGF0dGVuRGF0YShkYXRhU291cmNlLCB7IGtleUZpZWxkOiB2YWx1ZUZpZWxkIH0pO1xyXG4gICAgcmV0dXJuIG5ld0RhdGFbdmFsdWVdIHx8IHt9O1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIFNuYXBzaG90KSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGFsbERhdGFTb3VyY2UpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY29uc3Qgc3RhdGVDaGlsZHJlblByb3BzOiBhbnkgPSBbXTtcclxuICAgICAgYWxsQ2hpbGRyZW4ubWFwKChzOiBhbnkpID0+IHtcclxuICAgICAgICBzdGF0ZUNoaWxkcmVuUHJvcHMucHVzaChzLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNoaWxkcmVuUHJvcHMucHVzaChjLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzdGF0ZUNoaWxkcmVuUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShjaGlsZHJlblByb3BzKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUgPSAoc3RhdGUsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH07XHJcbiAgfVxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBmaWx0ZXJPcHRpb24gPSB0cnVlLCBvblNlYXJjaCwgY2hpbGRyZW4sIHN0b3JlID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBsYWJlbEZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICBsYWJlbEZpZWxkID0gbGFiZWxGaWVsZCA/IGxhYmVsRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdFZhbHVlXCIgOiBcImxhYmVsXCI7XHJcbiAgICBpZiAoZmlsdGVyT3B0aW9uKSB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkYXRhU291cmNlOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbGxDaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgYWxsQ2hpbGRyZW4ubWFwKChjaGlsZDogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBsYWJlbCA9IGNoaWxkPy5wcm9wcz8uY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgbGV0IGZsYWcgPSBQaW55aW5NYXRjaC5tYXRjaChsYWJlbCwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogcmVzdWx0LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uU2VhcmNoICYmIG9uU2VhcmNoKHZhbHVlKTtcclxuICB9XHJcbiAgcmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIHZhbHVlVHlwZSA9IFwic3RyaW5nXCIsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQgPyB2YWx1ZUZpZWxkIDogdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGxhYmVsRmllbGQgPSBsYWJlbEZpZWxkID8gbGFiZWxGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0VmFsdWVcIiA6IFwibGFiZWxcIjtcclxuICAgIHJldHVybiBvcHRpb25EYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgaWYgKHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgdmFsdWUgPVxyXG4gICAgICAgICAgdmFsdWVUeXBlID09PSBcIm51bWJlclwiXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGl0ZW1bdmFsdWVGaWVsZF0pXHJcbiAgICAgICAgICAgIDogaXRlbVt2YWx1ZUZpZWxkXSArIFwiXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSwgY2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRTZWxlY3REYXRhKHZhbHVlKTtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMsIGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblNlbGVjdCh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvblNlbGVjdCB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBpZiAob25TZWxlY3QpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0U2VsZWN0RGF0YSh2YWx1ZSk7XHJcbiAgICAgIG9uU2VsZWN0KHZhbHVlLCBvcHRpb25zLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2Uob3Blbikge1xyXG4gICAgaWYgKCFvcGVuKSB7XHJcbiAgICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBvbkNoYW5nZSxcclxuICAgICAgb25TZWxlY3QsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgYWRkRGF0YSxcclxuICAgICAgZGVsZXRlRGF0YSxcclxuICAgICAgdmFsdWVUeXBlLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBsZXQgeyBhbnRkU3R5bGUsIG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBnZXRQb3B1cENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKChkZWZhdWx0U3R5bGUgfHwgYW50ZFN0eWxlKSAmJiBkZWZhdWx0U3R5bGUgPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcIm5zY19zZWxlY3RcIl0sIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlbGVjdD17dGhpcy5vblNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuXHJcbiAgICAgICAgICAvLyBnZXRQb3B1cENvbnRhaW5lcj17KCk9PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxaHNlLWFwcCcpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/lib/base/tree/index.js
CHANGED
|
@@ -286,8 +286,6 @@ var NscTree = /*#__PURE__*/function (_TreePanel) {
|
|
|
286
286
|
|
|
287
287
|
if (openKeys) {
|
|
288
288
|
props.expandedKeys = openKeys;
|
|
289
|
-
} else {
|
|
290
|
-
delete props.expandedKeys;
|
|
291
289
|
}
|
|
292
290
|
|
|
293
291
|
return /*#__PURE__*/React.createElement(_Spin, {
|
|
@@ -314,4 +312,4 @@ _defineProperty(NscTree, "defaultProps", {
|
|
|
314
312
|
});
|
|
315
313
|
|
|
316
314
|
export default NscTree;
|
|
317
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdHJlZS9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJUcmVlUGFuZWwiLCJ1dGlscyIsIlN0b3JlIiwiU3RvcmVDb25maWdUeXBlIiwiVHJlZVNlYXJjaCIsInN0eWxlcyIsIlRyZWVOb2RlIiwiTnNjVHJlZSIsInByb3BzIiwiY3JlYXRlUmVmIiwibm9kZSIsImhhbmRsZUFkZCIsImhhbmRsZUVkaXQiLCJoYW5kbGVEZWxldGUiLCJ0cmVlTm9kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiX3RoaXMiLCJkYXRhcmVmIiwic3RvcmUiLCJsYXp5TG9hZCIsImZvcmNlVXBkYXRlIiwiZGF0YSIsInJlbmRlckZuIiwibm9kZVByb3BzIiwibm9kZUtleSIsImtleSIsInJlc3ROb2RlUHJvcHMiLCJub2RlcyIsIm1hcCIsIml0ZW0iLCJjb25maWciLCJmaWVsZHMiLCJmb3JFYWNoIiwiZmllbGQiLCJuYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwiY2FsbGJhY2siLCJ0aXRsZU5vZGUiLCJ0aXRsZSIsImF0dHJpYnV0ZSIsInN1YnRpdGxlIiwiY29sb3IiLCJjaGlsZE5vZGVzIiwiaWNvbiIsInJlbmRlclRyZWVOb2RlcyIsInJlbmRlclRlbXBsYXRlIiwiYmluZCIsIm1vZGVsRGF0YSIsImNoZWNrZWRLZXlzIiwiY2hlY2tlZCIsImhhbGZDaGVja2VkIiwiZm9yRWFjaFRyZWUiLCJwdXNoIiwibnNjVHJlZVJlZiIsImN1cnJlbnQiLCJzdGF0ZSIsImtleUVudGl0aWVzIiwiaGFsZkNoZWNrZWRLZXlzIiwiY29uY2F0IiwiY2hlY2tlZEtleXNBbGwiLCJ0cmVlUHJvcHMiLCJuZXdNZW51RGF0YXMiLCJ0cmVlRGF0YSIsIm9wZW5LZXlzIiwiY2hlY2tQcm9wYWdhdGlvbiIsImNoZWNrU3RyaWN0bHkiLCJzaG93SWNvbiIsImxhenlsb2FkIiwibG9hZERhdGEiLCJfb25Mb2FkRGF0YSIsIm9uQ2hlY2tGbiIsIm9uQ2hlY2siLCJlIiwic2V0U3RhdGUiLCJvblNlbGVjdEZuIiwib25TZWxlY3QiLCJzZWxlY3RlZEtleXMiLCJub2RlSW5mbyIsInNlbGVjdE5vZGUiLCJzZWxlY3RlZCIsInNlbGVjdGVkTm9kZXMiLCJleHBhbmRlZEtleXMiLCJsb2FkaW5nIiwiZWRpdGFibGUiLCJzZWFyY2hhYmxlIiwiaGFuZGxlQWRkTW9kdWxlIiwiaGFuZGxlRWRpdE1vZHVsZSIsImhhbmRsZURlbGV0ZU1vZHVsZSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInJlbmRlclRyZWVOb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxNQUFrQixPQUFsQjtBQUVBLE9BQU9DLFNBQVAsTUFHTyxxQkFIUDtBQUlBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBR0EsU0FBU0MsS0FBVCxFQUFnQkMsZUFBaEIsUUFBdUMsYUFBdkM7QUFDQSxPQUFPQyxVQUFQLE1BQXVCLGNBQXZCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLElBQVFDLFFBQVIsU0FBUUEsUUFBUixDLENBQ0E7O0lBVU1DLE87Ozs7O0FBR0osbUJBQVlDLE1BQVosRUFBbUI7QUFBQTs7QUFBQTs7QUFDakIsK0JBQU1BLE1BQU47O0FBRGlCLCtFQUZOVCxLQUFLLENBQUNVLFNBQU4sRUFFTTs7QUFBQSx1RUEwRUQsVUFBQ0MsSUFBRCxFQUFVO0FBQzFCLFVBQU1DLFNBQVMsR0FBRyxPQUFLSCxLQUFMLENBQVdHLFNBQTdCO0FBQ0FBLE1BQUFBLFNBQVMsSUFBSUEsU0FBUyxDQUFDRCxJQUFELENBQXRCO0FBQ0QsS0E3RWtCOztBQUFBLHdFQStFQSxVQUFDQSxJQUFELEVBQVU7QUFDM0IsVUFBTUUsVUFBVSxHQUFHLE9BQUtKLEtBQUwsQ0FBV0ksVUFBOUI7QUFDQUEsTUFBQUEsVUFBVSxJQUFJQSxVQUFVLENBQUNGLElBQUQsQ0FBeEI7QUFDRCxLQWxGa0I7O0FBQUEsMEVB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RSxRQUFBLGVBQWUsRUFBRSxLQUFLQyxlQUZ4QjtBQUdFLFFBQUEsZ0JBQWdCLEVBQUUsS0FBS0MsZ0JBSHpCO0FBSUUsUUFBQSxrQkFBa0IsRUFBRSxLQUFLQztBQUozQixRQUZKLEVBU0dDLEtBQUssQ0FBQ0MsT0FBTixDQUFjNUIsWUFBZCxLQUErQkEsWUFBWSxDQUFDNkIsTUFBYixHQUFzQixDQUFyRCxpQkFDQztBQUFNLFFBQUEsR0FBRyxFQUFFLEtBQUtyQyxVQUFoQjtBQUE0QixRQUFBLFNBQVM7QUFBckMsU0FBMEMvQyxLQUExQyxHQUNHLEtBQUtzQyxlQUFMLENBQXFCaUIsWUFBckIsRUFBbUN2RCxLQUFLLENBQUNxRixjQUF6QyxDQURILENBVkosQ0FERixDQURGO0FBbUJEOzs7O0VBMUptQjdGLFM7O2dCQUFoQk8sTyxrQkFRaUM7QUFBRVksRUFBQUEsS0FBSyxFQUFFO0FBQVQsQzs7QUFrTnZDLGVBQWVaLE9BQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFRyZWUsIFRyZWVQcm9wcywgU3BpbiwgVHJlZU5vZGVQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBUcmVlUGFuZWwsIHtcclxuICBJVHJlZVBhbmVsUHJvcHMsXHJcbiAgVHJlZUNvbW1vblByb3BzLFxyXG59IGZyb20gXCIuLi9jb21tb24vVHJlZVBhbmVsXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgUmNUcmVlIGZyb20gXCJyYy10cmVlXCI7XHJcbmltcG9ydCB7IERhdGFOb2RlLCBFdmVudERhdGFOb2RlIH0gZnJvbSBcInJjLXRyZWUvbGliL2ludGVyZmFjZVwiO1xyXG5leHBvcnQgeyBTdG9yZSwgU3RvcmVDb25maWdUeXBlIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCBUcmVlU2VhcmNoIGZyb20gXCIuL1RyZWVTZWFyY2hcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmNvbnN0IHsgVHJlZU5vZGUgfSA9IFRyZWU7XHJcbi8vIGltcG9ydCBUcmVlTm9kZSBmcm9tIFwiLi9Oc2NUcmVlTm9kZVwiO1xyXG50eXBlIE5zY0RhdGFOb2RlUHJvcHMgPSBEYXRhTm9kZSAmIHsgcHJvcHM6IHsgZGF0YXJlZjogYW55IH0gfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnNjVHJlZVByb3BzIGV4dGVuZHMgSVRyZWVQYW5lbFByb3BzIHtcclxuICBlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgdHJlZURhdGE/OiBhbnlbXTtcclxuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcclxuICBub2RlUHJvcHM/OiBUcmVlTm9kZVByb3BzO1xyXG59XHJcblxyXG5jbGFzcyBOc2NUcmVlIGV4dGVuZHMgVHJlZVBhbmVsPE5zY1RyZWVQcm9wcyAmIFRyZWVDb21tb25Qcm9wcz4ge1xyXG4gIG5zY1RyZWVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8UmNUcmVlICYgVHJlZVByb3BzPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgdGhpcy5yZW5kZXJUZW1wbGF0ZSA9IHRoaXMucmVuZGVyVGVtcGxhdGUuYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHM6IHsgc3RvcmU6IHt9IH0gPSB7IHN0b3JlOiB7fSB9O1xyXG5cclxuICBfZGF0YVRvQ2hlY2tlZEtleXMobW9kZWxEYXRhKTogYW55IHtcclxuICAgIGxldCBjaGVja2VkS2V5cyA9IHsgY2hlY2tlZDogW10sIGhhbGZDaGVja2VkOiBbXSB9O1xyXG4gICAgdXRpbHMuZm9yRWFjaFRyZWUobW9kZWxEYXRhLCBmdW5jdGlvbiAobm9kZSkge1xyXG4gICAgICBpZiAobm9kZS5jaGVja2VkID09IHRydWUpIHtcclxuICAgICAgICBjaGVja2VkS2V5cy5jaGVja2VkLnB1c2gobm9kZS5hdHRyaWJ1dGUua2V5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoJHmkJzntKJcclxuICAgKi9cclxuICAvLyBoYW5kbGVTZWFyY2ggPSAodmFsdWUpID0+IHtcclxuICAvLyAgIHRoaXMuc2V0U3RhdGUoeyBzZWFyY2hUZXh0OiB2YWx1ZSB9KTtcclxuICAvLyB9O1xyXG5cclxuICAvKipcclxuICAgKiDojrflj5bpgInkuK3oioLngrlJROaVsOe7hFxyXG4gICAqIEByZXR1cm4gU3RyaW5nW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkS2V5cygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMgfSA9IHRoaXMubnNjVHJlZVJlZi5jdXJyZW50O1xyXG4gICAgcmV0dXJuIGNoZWNrZWRLZXlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W6YCJ5Lit6IqC54K55a+56LGh5pWw57uEXHJcbiAgICogQHJldHVybiBub2RlW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkTm9kZXMoKSB7XHJcbiAgICBjb25zdCB7IGNoZWNrZWRLZXlzLCBrZXlFbnRpdGllcyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICBsZXQgbm9kZXMgPSBbXSBhcyBOc2NEYXRhTm9kZVByb3BzW107XHJcbiAgICBjaGVja2VkS2V5cy5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAvLyBub2Rlcy5wdXNoKGtleUVudGl0aWVzW2tleV0ubm9kZS5wcm9wcy5kYXRhcmVmKTtcclxuICAgICAgY29uc3Qgbm9kZSA9IGtleUVudGl0aWVzW2tleV0ubm9kZSBhcyBOc2NEYXRhTm9kZVByb3BzO1xyXG4gICAgICBub2Rlcy5wdXNoKG5vZGUucHJvcHMuZGF0YXJlZik7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBub2RlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWFqOmDqOmAieS4reiKgueCuUlE77yM5YyF5ZCr5Y2K6YCJ5Lit6IqC54K5SURcclxuICAgKiBAcmV0dXJuIFN0cmluZ1tdXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2tlZEFsbEtleXMoKSB7XHJcbiAgICBjb25zdCB7IGNoZWNrZWRLZXlzLCBoYWxmQ2hlY2tlZEtleXMgfSA9IHRoaXMubnNjVHJlZVJlZi5jdXJyZW50LnN0YXRlO1xyXG4gICAgcmV0dXJuIGNoZWNrZWRLZXlzLmNvbmNhdChoYWxmQ2hlY2tlZEtleXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5YWo6YOo6YCJ5Lit6IqC54K5Tm9kZeWvueixoe+8jOWMheWQq+WNiumAieS4reiKgueCuU5vZGXlr7nosaFcclxuICAgKiBAcmV0dXJuIG5vZGVbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWRBbGxOb2RlcygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGhhbGZDaGVja2VkS2V5cywga2V5RW50aXRpZXMgfSA9XHJcbiAgICAgIHRoaXMubnNjVHJlZVJlZi5jdXJyZW50LnN0YXRlO1xyXG4gICAgbGV0IGNoZWNrZWRLZXlzQWxsID0gY2hlY2tlZEtleXMuY29uY2F0KGhhbGZDaGVja2VkS2V5cyk7XHJcbiAgICBsZXQgbm9kZXMgPSBbXTtcclxuICAgIGNoZWNrZWRLZXlzQWxsLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBrZXlFbnRpdGllc1trZXldLm5vZGUgYXMgTnNjRGF0YU5vZGVQcm9wcztcclxuICAgICAgbm9kZXMucHVzaChub2RlLnByb3BzLmRhdGFyZWYpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbm9kZXM7XHJcbiAgfVxyXG5cclxuICAvLyDmt7vliqDmqKHlnZdcclxuICBoYW5kbGVBZGRNb2R1bGUgPSAobm9kZSkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlQWRkID0gdGhpcy5wcm9wcy5oYW5kbGVBZGQ7XHJcbiAgICBoYW5kbGVBZGQgJiYgaGFuZGxlQWRkKG5vZGUpO1xyXG4gIH07XHJcblxyXG4gIGhhbmRsZUVkaXRNb2R1bGUgPSAobm9kZSkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlRWRpdCA9IHRoaXMucHJvcHMuaGFuZGxlRWRpdDtcclxuICAgIGhhbmRsZUVkaXQgJiYgaGFuZGxlRWRpdChub2RlKTtcclxuICB9O1xyXG5cclxuICBoYW5kbGVEZWxldGVNb2R1bGUgPSAobm9kZSkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlRGVsZXRlID0gdGhpcy5wcm9wcy5oYW5kbGVEZWxldGU7XHJcbiAgICBoYW5kbGVEZWxldGUgJiYgaGFuZGxlRGVsZXRlKG5vZGUpO1xyXG4gIH07XHJcblxyXG4gIF9vbkxvYWREYXRhID0gKHRyZWVOb2RlOiBFdmVudERhdGFOb2RlICYgeyBwcm9wczogeyBkYXRhcmVmIH0gfSkgPT5cclxuICAgIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIGNvbnN0IF90aGlzID0gdGhpcyxcclxuICAgICAgICBub2RlID0gdHJlZU5vZGUucHJvcHMuZGF0YXJlZjtcclxuICAgICAgdGhpcy5zdG9yZS5sYXp5TG9hZChub2RlLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmVzb2x2ZShub2RlKTtcclxuICAgICAgICBfdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICByZW5kZXJUZW1wbGF0ZSh0cmVlUHJvcHMgPSB7fSBhcyBJVHJlZVBhbmVsUHJvcHMsIG5ld01lbnVEYXRhcyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRyZWVEYXRhLCBvcGVuS2V5cywgLi4ucHJvcHMgfSA9IHRyZWVQcm9wcztcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChwcm9wcy5jaGVja1Byb3BhZ2F0aW9uKSB7XHJcbiAgICAgIHByb3BzLmNoZWNrU3RyaWN0bHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLnNob3dJY29uID09IG51bGwpIHtcclxuICAgICAgcHJvcHMuc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7IGxhenlsb2FkIH0gPSB0aGlzLnN0b3JlLmNvbmZpZztcclxuICAgIGlmIChsYXp5bG9hZCkge1xyXG4gICAgICBwcm9wcy5sb2FkRGF0YSA9IHRoaXMuX29uTG9hZERhdGE7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvbkNoZWNrRm4gPSBwcm9wcy5vbkNoZWNrO1xyXG4gICAgcHJvcHMub25DaGVjayA9IGZ1bmN0aW9uIChjaGVja2VkS2V5cywgZSkge1xyXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7IGNoZWNrZWRLZXlzOiBjaGVja2VkS2V5cyB9KTtcclxuICAgICAgdXRpbHMuY2FsbGJhY2sob25DaGVja0ZuLCBfdGhpcywgW2NoZWNrZWRLZXlzLCBlXSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgb25TZWxlY3RGbiA9IHByb3BzLm9uU2VsZWN0O1xyXG4gICAgcHJvcHMub25TZWxlY3QgPSAoc2VsZWN0ZWRLZXlzLCBub2RlSW5mbykgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvblNlbGVjdEZuLCBfdGhpcywgW3NlbGVjdGVkS2V5cywgbm9kZUluZm9dKTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgc2VsZWN0Tm9kZTogbm9kZUluZm8uc2VsZWN0ZWQgPyBub2RlSW5mby5zZWxlY3RlZE5vZGVzWzBdIDogbnVsbCxcclxuICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3BlbktleXMpIHtcclxuICAgICAgcHJvcHMuZXhwYW5kZWRLZXlzID0gb3BlbktleXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWxldGUgcHJvcHMuZXhwYW5kZWRLZXlzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFNwaW4gc3Bpbm5pbmc9e3RoaXMuc3RhdGUubG9hZGluZ30+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcIm5zYy10cmVlLWJveFwiXX0+XHJcbiAgICAgICAgICB7KF90aGlzLnByb3BzLmVkaXRhYmxlIHx8IF90aGlzLnByb3BzLnNlYXJjaGFibGUpICYmIChcclxuICAgICAgICAgICAgPFRyZWVTZWFyY2hcclxuICAgICAgICAgICAgICB0cmVlSW5zdGFuY2U9e3RoaXN9XHJcbiAgICAgICAgICAgICAgaGFuZGxlQWRkTW9kdWxlPXt0aGlzLmhhbmRsZUFkZE1vZHVsZX1cclxuICAgICAgICAgICAgICBoYW5kbGVFZGl0TW9kdWxlPXt0aGlzLmhhbmRsZUVkaXRNb2R1bGV9XHJcbiAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlTW9kdWxlPXt0aGlzLmhhbmRsZURlbGV0ZU1vZHVsZX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7QXJyYXkuaXNBcnJheShuZXdNZW51RGF0YXMpICYmIG5ld01lbnVEYXRhcy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgPFRyZWUgcmVmPXt0aGlzLm5zY1RyZWVSZWZ9IGNoZWNrYWJsZSB7Li4ucHJvcHN9PlxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlclRyZWVOb2RlcyhuZXdNZW51RGF0YXMsIHByb3BzLnJlbmRlclRyZWVOb2RlKX1cclxuICAgICAgICAgICAgPC9UcmVlPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9TcGluPlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlbmRlclRyZWVOb2RlcyA9IChkYXRhLCByZW5kZXJGbikgPT4ge1xyXG4gICAgY29uc3Qgbm9kZVByb3BzID0gdGhpcy5wcm9wcy5ub2RlUHJvcHMgfHwge307XHJcbiAgICBjb25zdCB7IGtleTogbm9kZUtleSwgLi4ucmVzdE5vZGVQcm9wcyB9ID0gbm9kZVByb3BzO1xyXG4gICAgY29uc3Qgbm9kZXMgPSBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgcHJvcHMgPSB7IGRhdGFyZWY6IGl0ZW0gfSBhcyBUcmVlTm9kZVByb3BzO1xyXG4gICAgICBpdGVtLmNvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBpZiAoZmllbGQubmFtZSA9PT0gXCJrZXlcIiAmJiBub2RlS2V5KSB7XHJcbiAgICAgICAgICBwcm9wcy5rZXkgPSBpdGVtW25vZGVLZXldO1xyXG4gICAgICAgICAgaXRlbS5rZXkgPSBpdGVtW25vZGVLZXldO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcm9wc1tmaWVsZC5uYW1lXSA9IGl0ZW1bZmllbGQubmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmFzc2lnbihwcm9wcywgcmVzdE5vZGVQcm9wcyk7XHJcbiAgICAgIGlmIChyZW5kZXJGbikge1xyXG4gICAgICAgIHByb3BzID0gdXRpbHMuY2FsbGJhY2socmVuZGVyRm4sIHRoaXMsIFtwcm9wcywgaXRlbV0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgdGl0bGVOb2RlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtLnRpdGxlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBpZiAoaXRlbS5hdHRyaWJ1dGUuc3VidGl0bGUpIHtcclxuICAgICAgICAgIHRpdGxlTm9kZSA9IChcclxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e2l0ZW0udGl0bGUgKyBcIu+8iFwiICsgaXRlbS5hdHRyaWJ1dGUuc3VidGl0bGUgKyBcIu+8iVwifT5cclxuICAgICAgICAgICAgICA8c3Bhbj57aXRlbS50aXRsZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBcInJnYmEoMCwwLDAsLjQ1KVwiIH19XHJcbiAgICAgICAgICAgICAgPntg77yIJHtpdGVtLmF0dHJpYnV0ZS5zdWJ0aXRsZX3vvIlgfTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGl0bGVOb2RlID0gPHNwYW4gdGl0bGU9e2l0ZW0udGl0bGV9PntpdGVtLnRpdGxlfTwvc3Bhbj47XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRpdGxlTm9kZSA9IGl0ZW0udGl0bGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8VHJlZU5vZGVcclxuICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICBrZXk9e2l0ZW0uYXR0cmlidXRlLmtleX1cclxuICAgICAgICAgICAgdGl0bGU9e3RpdGxlTm9kZX1cclxuICAgICAgICAgICAgaWNvbj17dGhpcy5wcm9wcy5pY29ufVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJUcmVlTm9kZXMoaXRlbS5jaGlsZE5vZGVzLCByZW5kZXJGbil9XHJcbiAgICAgICAgICA8L1RyZWVOb2RlPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFRyZWVOb2RlXHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICBrZXk9e2l0ZW0uYXR0cmlidXRlLmtleX1cclxuICAgICAgICAgIHRpdGxlPXt0aXRsZU5vZGV9XHJcbiAgICAgICAgICBpY29uPXt0aGlzLnByb3BzLmljb259XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBub2RlcztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOc2NUcmVlO1xyXG4iXX0=
|
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdHJlZS9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJUcmVlUGFuZWwiLCJ1dGlscyIsIlN0b3JlIiwiU3RvcmVDb25maWdUeXBlIiwiVHJlZVNlYXJjaCIsInN0eWxlcyIsIlRyZWVOb2RlIiwiTnNjVHJlZSIsInByb3BzIiwiY3JlYXRlUmVmIiwibm9kZSIsImhhbmRsZUFkZCIsImhhbmRsZUVkaXQiLCJoYW5kbGVEZWxldGUiLCJ0cmVlTm9kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiX3RoaXMiLCJkYXRhcmVmIiwic3RvcmUiLCJsYXp5TG9hZCIsImZvcmNlVXBkYXRlIiwiZGF0YSIsInJlbmRlckZuIiwibm9kZVByb3BzIiwibm9kZUtleSIsImtleSIsInJlc3ROb2RlUHJvcHMiLCJub2RlcyIsIm1hcCIsIml0ZW0iLCJjb25maWciLCJmaWVsZHMiLCJmb3JFYWNoIiwiZmllbGQiLCJuYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwiY2FsbGJhY2siLCJ0aXRsZU5vZGUiLCJ0aXRsZSIsImF0dHJpYnV0ZSIsInN1YnRpdGxlIiwiY29sb3IiLCJjaGlsZE5vZGVzIiwiaWNvbiIsInJlbmRlclRyZWVOb2RlcyIsInJlbmRlclRlbXBsYXRlIiwiYmluZCIsIm1vZGVsRGF0YSIsImNoZWNrZWRLZXlzIiwiY2hlY2tlZCIsImhhbGZDaGVja2VkIiwiZm9yRWFjaFRyZWUiLCJwdXNoIiwibnNjVHJlZVJlZiIsImN1cnJlbnQiLCJzdGF0ZSIsImtleUVudGl0aWVzIiwiaGFsZkNoZWNrZWRLZXlzIiwiY29uY2F0IiwiY2hlY2tlZEtleXNBbGwiLCJ0cmVlUHJvcHMiLCJuZXdNZW51RGF0YXMiLCJ0cmVlRGF0YSIsIm9wZW5LZXlzIiwiY2hlY2tQcm9wYWdhdGlvbiIsImNoZWNrU3RyaWN0bHkiLCJzaG93SWNvbiIsImxhenlsb2FkIiwibG9hZERhdGEiLCJfb25Mb2FkRGF0YSIsIm9uQ2hlY2tGbiIsIm9uQ2hlY2siLCJlIiwic2V0U3RhdGUiLCJvblNlbGVjdEZuIiwib25TZWxlY3QiLCJzZWxlY3RlZEtleXMiLCJub2RlSW5mbyIsInNlbGVjdE5vZGUiLCJzZWxlY3RlZCIsInNlbGVjdGVkTm9kZXMiLCJleHBhbmRlZEtleXMiLCJsb2FkaW5nIiwiZWRpdGFibGUiLCJzZWFyY2hhYmxlIiwiaGFuZGxlQWRkTW9kdWxlIiwiaGFuZGxlRWRpdE1vZHVsZSIsImhhbmRsZURlbGV0ZU1vZHVsZSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInJlbmRlclRyZWVOb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxNQUFrQixPQUFsQjtBQUVBLE9BQU9DLFNBQVAsTUFHTyxxQkFIUDtBQUlBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBR0EsU0FBU0MsS0FBVCxFQUFnQkMsZUFBaEIsUUFBdUMsYUFBdkM7QUFDQSxPQUFPQyxVQUFQLE1BQXVCLGNBQXZCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLElBQVFDLFFBQVIsU0FBUUEsUUFBUixDLENBQ0E7O0lBVU1DLE87Ozs7O0FBR0osbUJBQVlDLE1BQVosRUFBbUI7QUFBQTs7QUFBQTs7QUFDakIsK0JBQU1BLE1BQU47O0FBRGlCLCtFQUZOVCxLQUFLLENBQUNVLFNBQU4sRUFFTTs7QUFBQSx1RUEwRUQsVUFBQ0MsSUFBRCxFQUFVO0FBQzFCLFVBQU1DLFNBQVMsR0FBRyxPQUFLSCxLQUFMLENBQVdHLFNBQTdCO0FBQ0FBLE1BQUFBLFNBQVMsSUFBSUEsU0FBUyxDQUFDRCxJQUFELENBQXRCO0FBQ0QsS0E3RWtCOztBQUFBLHdFQStFQSxVQUFDQSxJQUFELEVBQVU7QUFDM0IsVUFBTUUsVUFBVSxHQUFHLE9BQUtKLEtBQUwsQ0FBV0ksVUFBOUI7QUFDQUEsTUFBQUEsVUFBVSxJQUFJQSxVQUFVLENBQUNGLElBQUQsQ0FBeEI7QUFDRCxLQWxGa0I7O0FBQUEsMEVB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LEVBQUUsS0FBS0MsZ0JBSHpCO0FBSUUsUUFBQSxrQkFBa0IsRUFBRSxLQUFLQztBQUozQixRQUZKLEVBU0dDLEtBQUssQ0FBQ0MsT0FBTixDQUFjNUIsWUFBZCxLQUErQkEsWUFBWSxDQUFDNkIsTUFBYixHQUFzQixDQUFyRCxpQkFDQztBQUFNLFFBQUEsR0FBRyxFQUFFLEtBQUtyQyxVQUFoQjtBQUE0QixRQUFBLFNBQVM7QUFBckMsU0FBMEMvQyxLQUExQyxHQUNHLEtBQUtzQyxlQUFMLENBQXFCaUIsWUFBckIsRUFBbUN2RCxLQUFLLENBQUNxRixjQUF6QyxDQURILENBVkosQ0FERixDQURGO0FBbUJEOzs7O0VBeEptQjdGLFM7O2dCQUFoQk8sTyxrQkFRaUM7QUFBRVksRUFBQUEsS0FBSyxFQUFFO0FBQVQsQzs7QUFnTnZDLGVBQWVaLE9BQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFRyZWUsIFRyZWVQcm9wcywgU3BpbiwgVHJlZU5vZGVQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBUcmVlUGFuZWwsIHtcclxuICBJVHJlZVBhbmVsUHJvcHMsXHJcbiAgVHJlZUNvbW1vblByb3BzLFxyXG59IGZyb20gXCIuLi9jb21tb24vVHJlZVBhbmVsXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgUmNUcmVlIGZyb20gXCJyYy10cmVlXCI7XHJcbmltcG9ydCB7IERhdGFOb2RlLCBFdmVudERhdGFOb2RlIH0gZnJvbSBcInJjLXRyZWUvbGliL2ludGVyZmFjZVwiO1xyXG5leHBvcnQgeyBTdG9yZSwgU3RvcmVDb25maWdUeXBlIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCBUcmVlU2VhcmNoIGZyb20gXCIuL1RyZWVTZWFyY2hcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmNvbnN0IHsgVHJlZU5vZGUgfSA9IFRyZWU7XHJcbi8vIGltcG9ydCBUcmVlTm9kZSBmcm9tIFwiLi9Oc2NUcmVlTm9kZVwiO1xyXG50eXBlIE5zY0RhdGFOb2RlUHJvcHMgPSBEYXRhTm9kZSAmIHsgcHJvcHM6IHsgZGF0YXJlZjogYW55IH0gfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnNjVHJlZVByb3BzIGV4dGVuZHMgSVRyZWVQYW5lbFByb3BzIHtcclxuICBlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgdHJlZURhdGE/OiBhbnlbXTtcclxuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcclxuICBub2RlUHJvcHM/OiBUcmVlTm9kZVByb3BzO1xyXG59XHJcblxyXG5jbGFzcyBOc2NUcmVlIGV4dGVuZHMgVHJlZVBhbmVsPE5zY1RyZWVQcm9wcyAmIFRyZWVDb21tb25Qcm9wcz4ge1xyXG4gIG5zY1RyZWVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8UmNUcmVlICYgVHJlZVByb3BzPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgdGhpcy5yZW5kZXJUZW1wbGF0ZSA9IHRoaXMucmVuZGVyVGVtcGxhdGUuYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHM6IHsgc3RvcmU6IHt9IH0gPSB7IHN0b3JlOiB7fSB9O1xyXG5cclxuICBfZGF0YVRvQ2hlY2tlZEtleXMobW9kZWxEYXRhKTogYW55IHtcclxuICAgIGxldCBjaGVja2VkS2V5cyA9IHsgY2hlY2tlZDogW10sIGhhbGZDaGVja2VkOiBbXSB9O1xyXG4gICAgdXRpbHMuZm9yRWFjaFRyZWUobW9kZWxEYXRhLCBmdW5jdGlvbiAobm9kZSkge1xyXG4gICAgICBpZiAobm9kZS5jaGVja2VkID09IHRydWUpIHtcclxuICAgICAgICBjaGVja2VkS2V5cy5jaGVja2VkLnB1c2gobm9kZS5hdHRyaWJ1dGUua2V5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoJHmkJzntKJcclxuICAgKi9cclxuICAvLyBoYW5kbGVTZWFyY2ggPSAodmFsdWUpID0+IHtcclxuICAvLyAgIHRoaXMuc2V0U3RhdGUoeyBzZWFyY2hUZXh0OiB2YWx1ZSB9KTtcclxuICAvLyB9O1xyXG5cclxuICAvKipcclxuICAgKiDojrflj5bpgInkuK3oioLngrlJROaVsOe7hFxyXG4gICAqIEByZXR1cm4gU3RyaW5nW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkS2V5cygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMgfSA9IHRoaXMubnNjVHJlZVJlZi5jdXJyZW50O1xyXG4gICAgcmV0dXJuIGNoZWNrZWRLZXlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W6YCJ5Lit6IqC54K55a+56LGh5pWw57uEXHJcbiAgICogQHJldHVybiBub2RlW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkTm9kZXMoKSB7XHJcbiAgICBjb25zdCB7IGNoZWNrZWRLZXlzLCBrZXlFbnRpdGllcyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICBsZXQgbm9kZXMgPSBbXSBhcyBOc2NEYXRhTm9kZVByb3BzW107XHJcbiAgICBjaGVja2VkS2V5cy5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAvLyBub2Rlcy5wdXNoKGtleUVudGl0aWVzW2tleV0ubm9kZS5wcm9wcy5kYXRhcmVmKTtcclxuICAgICAgY29uc3Qgbm9kZSA9IGtleUVudGl0aWVzW2tleV0ubm9kZSBhcyBOc2NEYXRhTm9kZVByb3BzO1xyXG4gICAgICBub2Rlcy5wdXNoKG5vZGUucHJvcHMuZGF0YXJlZik7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBub2RlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWFqOmDqOmAieS4reiKgueCuUlE77yM5YyF5ZCr5Y2K6YCJ5Lit6IqC54K5SURcclxuICAgKiBAcmV0dXJuIFN0cmluZ1tdXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2tlZEFsbEtleXMoKSB7XHJcbiAgICBjb25zdCB7IGNoZWNrZWRLZXlzLCBoYWxmQ2hlY2tlZEtleXMgfSA9IHRoaXMubnNjVHJlZVJlZi5jdXJyZW50LnN0YXRlO1xyXG4gICAgcmV0dXJuIGNoZWNrZWRLZXlzLmNvbmNhdChoYWxmQ2hlY2tlZEtleXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5YWo6YOo6YCJ5Lit6IqC54K5Tm9kZeWvueixoe+8jOWMheWQq+WNiumAieS4reiKgueCuU5vZGXlr7nosaFcclxuICAgKiBAcmV0dXJuIG5vZGVbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWRBbGxOb2RlcygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGhhbGZDaGVja2VkS2V5cywga2V5RW50aXRpZXMgfSA9XHJcbiAgICAgIHRoaXMubnNjVHJlZVJlZi5jdXJyZW50LnN0YXRlO1xyXG4gICAgbGV0IGNoZWNrZWRLZXlzQWxsID0gY2hlY2tlZEtleXMuY29uY2F0KGhhbGZDaGVja2VkS2V5cyk7XHJcbiAgICBsZXQgbm9kZXMgPSBbXTtcclxuICAgIGNoZWNrZWRLZXlzQWxsLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBrZXlFbnRpdGllc1trZXldLm5vZGUgYXMgTnNjRGF0YU5vZGVQcm9wcztcclxuICAgICAgbm9kZXMucHVzaChub2RlLnByb3BzLmRhdGFyZWYpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbm9kZXM7XHJcbiAgfVxyXG5cclxuICAvLyDmt7vliqDmqKHlnZdcclxuICBoYW5kbGVBZGRNb2R1bGUgPSAobm9kZSkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlQWRkID0gdGhpcy5wcm9wcy5oYW5kbGVBZGQ7XHJcbiAgICBoYW5kbGVBZGQgJiYgaGFuZGxlQWRkKG5vZGUpO1xyXG4gIH07XHJcblxyXG4gIGhhbmRsZUVkaXRNb2R1bGUgPSAobm9kZSkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlRWRpdCA9IHRoaXMucHJvcHMuaGFuZGxlRWRpdDtcclxuICAgIGhhbmRsZUVkaXQgJiYgaGFuZGxlRWRpdChub2RlKTtcclxuICB9O1xyXG5cclxuICBoYW5kbGVEZWxldGVNb2R1bGUgPSAobm9kZSkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlRGVsZXRlID0gdGhpcy5wcm9wcy5oYW5kbGVEZWxldGU7XHJcbiAgICBoYW5kbGVEZWxldGUgJiYgaGFuZGxlRGVsZXRlKG5vZGUpO1xyXG4gIH07XHJcblxyXG4gIF9vbkxvYWREYXRhID0gKHRyZWVOb2RlOiBFdmVudERhdGFOb2RlICYgeyBwcm9wczogeyBkYXRhcmVmIH0gfSkgPT5cclxuICAgIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIGNvbnN0IF90aGlzID0gdGhpcyxcclxuICAgICAgICBub2RlID0gdHJlZU5vZGUucHJvcHMuZGF0YXJlZjtcclxuICAgICAgdGhpcy5zdG9yZS5sYXp5TG9hZChub2RlLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmVzb2x2ZShub2RlKTtcclxuICAgICAgICBfdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICByZW5kZXJUZW1wbGF0ZSh0cmVlUHJvcHMgPSB7fSBhcyBJVHJlZVBhbmVsUHJvcHMsIG5ld01lbnVEYXRhcyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRyZWVEYXRhLCBvcGVuS2V5cywgLi4ucHJvcHMgfSA9IHRyZWVQcm9wcztcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChwcm9wcy5jaGVja1Byb3BhZ2F0aW9uKSB7XHJcbiAgICAgIHByb3BzLmNoZWNrU3RyaWN0bHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLnNob3dJY29uID09IG51bGwpIHtcclxuICAgICAgcHJvcHMuc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7IGxhenlsb2FkIH0gPSB0aGlzLnN0b3JlLmNvbmZpZztcclxuICAgIGlmIChsYXp5bG9hZCkge1xyXG4gICAgICBwcm9wcy5sb2FkRGF0YSA9IHRoaXMuX29uTG9hZERhdGE7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvbkNoZWNrRm4gPSBwcm9wcy5vbkNoZWNrO1xyXG4gICAgcHJvcHMub25DaGVjayA9IGZ1bmN0aW9uIChjaGVja2VkS2V5cywgZSkge1xyXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7IGNoZWNrZWRLZXlzOiBjaGVja2VkS2V5cyB9KTtcclxuICAgICAgdXRpbHMuY2FsbGJhY2sob25DaGVja0ZuLCBfdGhpcywgW2NoZWNrZWRLZXlzLCBlXSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgb25TZWxlY3RGbiA9IHByb3BzLm9uU2VsZWN0O1xyXG4gICAgcHJvcHMub25TZWxlY3QgPSAoc2VsZWN0ZWRLZXlzLCBub2RlSW5mbykgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvblNlbGVjdEZuLCBfdGhpcywgW3NlbGVjdGVkS2V5cywgbm9kZUluZm9dKTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgc2VsZWN0Tm9kZTogbm9kZUluZm8uc2VsZWN0ZWQgPyBub2RlSW5mby5zZWxlY3RlZE5vZGVzWzBdIDogbnVsbCxcclxuICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3BlbktleXMpIHtcclxuICAgICAgcHJvcHMuZXhwYW5kZWRLZXlzID0gb3BlbktleXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8U3BpbiBzcGlubmluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfT5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibnNjLXRyZWUtYm94XCJdfT5cclxuICAgICAgICAgIHsoX3RoaXMucHJvcHMuZWRpdGFibGUgfHwgX3RoaXMucHJvcHMuc2VhcmNoYWJsZSkgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZVNlYXJjaFxyXG4gICAgICAgICAgICAgIHRyZWVJbnN0YW5jZT17dGhpc31cclxuICAgICAgICAgICAgICBoYW5kbGVBZGRNb2R1bGU9e3RoaXMuaGFuZGxlQWRkTW9kdWxlfVxyXG4gICAgICAgICAgICAgIGhhbmRsZUVkaXRNb2R1bGU9e3RoaXMuaGFuZGxlRWRpdE1vZHVsZX1cclxuICAgICAgICAgICAgICBoYW5kbGVEZWxldGVNb2R1bGU9e3RoaXMuaGFuZGxlRGVsZXRlTW9kdWxlfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtBcnJheS5pc0FycmF5KG5ld01lbnVEYXRhcykgJiYgbmV3TWVudURhdGFzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZSByZWY9e3RoaXMubnNjVHJlZVJlZn0gY2hlY2thYmxlIHsuLi5wcm9wc30+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyVHJlZU5vZGVzKG5ld01lbnVEYXRhcywgcHJvcHMucmVuZGVyVHJlZU5vZGUpfVxyXG4gICAgICAgICAgICA8L1RyZWU+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L1NwaW4+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVHJlZU5vZGVzID0gKGRhdGEsIHJlbmRlckZuKSA9PiB7XHJcbiAgICBjb25zdCBub2RlUHJvcHMgPSB0aGlzLnByb3BzLm5vZGVQcm9wcyB8fCB7fTtcclxuICAgIGNvbnN0IHsga2V5OiBub2RlS2V5LCAuLi5yZXN0Tm9kZVByb3BzIH0gPSBub2RlUHJvcHM7XHJcbiAgICBjb25zdCBub2RlcyA9IGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCBwcm9wcyA9IHsgZGF0YXJlZjogaXRlbSB9IGFzIFRyZWVOb2RlUHJvcHM7XHJcbiAgICAgIGl0ZW0uY29uZmlnLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSBcImtleVwiICYmIG5vZGVLZXkpIHtcclxuICAgICAgICAgIHByb3BzLmtleSA9IGl0ZW1bbm9kZUtleV07XHJcbiAgICAgICAgICBpdGVtLmtleSA9IGl0ZW1bbm9kZUtleV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHByb3BzW2ZpZWxkLm5hbWVdID0gaXRlbVtmaWVsZC5uYW1lXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHByb3BzLCByZXN0Tm9kZVByb3BzKTtcclxuICAgICAgaWYgKHJlbmRlckZuKSB7XHJcbiAgICAgICAgcHJvcHMgPSB1dGlscy5jYWxsYmFjayhyZW5kZXJGbiwgdGhpcywgW3Byb3BzLCBpdGVtXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCB0aXRsZU5vZGUgPSBudWxsO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0udGl0bGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGlmIChpdGVtLmF0dHJpYnV0ZS5zdWJ0aXRsZSkge1xyXG4gICAgICAgICAgdGl0bGVOb2RlID0gKFxyXG4gICAgICAgICAgICA8c3BhbiB0aXRsZT17aXRlbS50aXRsZSArIFwi77yIXCIgKyBpdGVtLmF0dHJpYnV0ZS5zdWJ0aXRsZSArIFwi77yJXCJ9PlxyXG4gICAgICAgICAgICAgIDxzcGFuPntpdGVtLnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IFwicmdiYSgwLDAsMCwuNDUpXCIgfX1cclxuICAgICAgICAgICAgICA+e2DvvIgke2l0ZW0uYXR0cmlidXRlLnN1YnRpdGxlfe+8iWB9PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aXRsZU5vZGUgPSA8c3BhbiB0aXRsZT17aXRlbS50aXRsZX0+e2l0ZW0udGl0bGV9PC9zcGFuPjtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGl0bGVOb2RlID0gaXRlbS50aXRsZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxUcmVlTm9kZVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIGtleT17aXRlbS5hdHRyaWJ1dGUua2V5fVxyXG4gICAgICAgICAgICB0aXRsZT17dGl0bGVOb2RlfVxyXG4gICAgICAgICAgICBpY29uPXt0aGlzLnByb3BzLmljb259XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlclRyZWVOb2RlcyhpdGVtLmNoaWxkTm9kZXMsIHJlbmRlckZuKX1cclxuICAgICAgICAgIDwvVHJlZU5vZGU+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8VHJlZU5vZGVcclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGtleT17aXRlbS5hdHRyaWJ1dGUua2V5fVxyXG4gICAgICAgICAgdGl0bGU9e3RpdGxlTm9kZX1cclxuICAgICAgICAgIGljb249e3RoaXMucHJvcHMuaWNvbn1cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5vZGVzO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5zY1RyZWU7XHJcbiJdfQ==
|
package/lib/base/upload/index.js
CHANGED
|
@@ -115,19 +115,21 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
115
115
|
|
|
116
116
|
if (res.code == 200) {
|
|
117
117
|
fileId = res.data.attachId;
|
|
118
|
+
options.onSuccess();
|
|
119
|
+
} else {
|
|
120
|
+
options.onError();
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
onComplete && onComplete({
|
|
121
124
|
file: options.file,
|
|
122
125
|
fileId: fileId,
|
|
123
|
-
status: "success"
|
|
126
|
+
status: res.code == 200 ? "success" : "error"
|
|
124
127
|
});
|
|
125
|
-
|
|
126
|
-
_context.next = 25;
|
|
128
|
+
_context.next = 24;
|
|
127
129
|
break;
|
|
128
130
|
|
|
129
|
-
case
|
|
130
|
-
_context.prev =
|
|
131
|
+
case 20:
|
|
132
|
+
_context.prev = 20;
|
|
131
133
|
_context.t0 = _context["catch"](11);
|
|
132
134
|
onComplete && onComplete({
|
|
133
135
|
file: options.file,
|
|
@@ -136,12 +138,12 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
136
138
|
});
|
|
137
139
|
options.onError();
|
|
138
140
|
|
|
139
|
-
case
|
|
141
|
+
case 24:
|
|
140
142
|
case "end":
|
|
141
143
|
return _context.stop();
|
|
142
144
|
}
|
|
143
145
|
}
|
|
144
|
-
}, _callee, null, [[11,
|
|
146
|
+
}, _callee, null, [[11, 20]]);
|
|
145
147
|
}));
|
|
146
148
|
|
|
147
149
|
return function (_x) {
|
|
@@ -167,4 +169,4 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
167
169
|
}(React.PureComponent);
|
|
168
170
|
|
|
169
171
|
export default withZhLocale(NscUpload);
|
|
170
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
172
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwid2l0aFpoTG9jYWxlIiwidXBsb2FkIiwiTnNjVXBsb2FkIiwiZmlsZUxpc3QiLCJvcHRpb25zIiwicHJvcHMiLCJvbkNvbXBsZXRlIiwib25Qcm9jZXNzIiwic2xpY2VTaXplIiwibWF4U2l6ZSIsInNpemUiLCJlcnJvciIsIm5hbWUiLCJmaWxlSWQiLCJzdGF0dXMiLCJvbkVycm9yIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicGFydFNpemUiLCJyZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwiY3VzdG9tUmVxdWVzdCIsImJpbmQiLCJQdXJlQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFVBQWpCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixZQUFwQjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsd0JBQXpCO0FBQ0EsSUFBUUMsTUFBUixHQUFtQkgsSUFBbkIsQ0FBUUcsTUFBUjs7SUFRTUMsUzs7Ozs7Ozs7Ozs7Ozs7Ozs0REFDSTtBQUFFQyxNQUFBQSxRQUFRLEVBQUU7QUFBWixLOzs7eUVBRVEsaUJBQU9DLE9BQVA7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNSTixnQkFBQUEsSUFEUSxHQUNETSxPQUFPLENBQUNOLElBRFA7QUFBQSw4QkFFK0IsTUFBS08sS0FGcEMsRUFFTkMsVUFGTSxlQUVOQSxVQUZNLEVBRU1DLFNBRk4sZUFFTUEsU0FGTixFQUVpQkMsU0FGakIsZUFFaUJBLFNBRmpCO0FBR05DLGdCQUFBQSxPQUhNLEdBR00sTUFBS0osS0FIWCxDQUdOSSxPQUhNOztBQUFBLHFCQUlWQSxPQUpVO0FBQUE7QUFBQTtBQUFBOztBQUtOQyxnQkFBQUEsSUFMTSxHQUtDRCxPQUFPLEdBQUcsSUFBVixHQUFpQixJQUxsQjs7QUFBQSxzQkFNUkMsSUFBSSxHQUFHWixJQUFJLENBQUNZLElBTko7QUFBQTtBQUFBO0FBQUE7O0FBT1ZYLGdCQUFBQSxPQUFPLENBQUNZLEtBQVIsV0FBaUJiLElBQUksQ0FBQ2MsSUFBdEIsaURBQW1DSCxPQUFuQztBQUNBSCxnQkFBQUEsVUFBVSxJQUNSQSxVQUFVLENBQUM7QUFBRVIsa0JBQUFBLElBQUksRUFBRU0sT0FBTyxDQUFDTixJQUFoQjtBQUFzQmUsa0JBQUFBLE1BQU0sRUFBRSxFQUE5QjtBQUFrQ0Msa0JBQUFBLE1BQU0sRUFBRTtBQUExQyxpQkFBRCxDQURaO0FBRUFWLGdCQUFBQSxPQUFPLENBQUNXLE9BQVI7QUFWVSxpREFXSCxLQVhHOztBQUFBO0FBZVJDLGdCQUFBQSxVQWZRLEdBZUssU0FBYkEsVUFBYSxDQUFDQyxhQUFELEVBQXdCO0FBQ3pDYixrQkFBQUEsT0FBTyxDQUFDWSxVQUFSLENBQW1CO0FBQUVFLG9CQUFBQSxPQUFPLEVBQUVEO0FBQVgsbUJBQW5CLEVBQStDbkIsSUFBL0M7QUFDQVMsa0JBQUFBLFNBQVMsSUFBSUEsU0FBUyxDQUFDO0FBQUVXLG9CQUFBQSxPQUFPLEVBQUVELGFBQVg7QUFBMEJuQixvQkFBQUEsSUFBSSxFQUFFQTtBQUFoQyxtQkFBRCxDQUF0QjtBQUNELGlCQWxCYTs7QUFBQTtBQUFBO0FBQUEsdUJBb0JXRyxNQUFNLENBQUM7QUFDNUJILGtCQUFBQSxJQUFJLEVBQUVBLElBRHNCO0FBRTVCa0Isa0JBQUFBLFVBQVUsRUFBRUEsVUFGZ0I7QUFHNUJHLGtCQUFBQSxRQUFRLEVBQUVYO0FBSGtCLGlCQUFELENBcEJqQjs7QUFBQTtBQW9CTlksZ0JBQUFBLEdBcEJNO0FBeUJSUCxnQkFBQUEsTUF6QlEsR0F5QkMsSUF6QkQ7O0FBMEJaLG9CQUFJTyxHQUFHLENBQUNDLElBQUosSUFBWSxHQUFoQixFQUFxQjtBQUNuQlIsa0JBQUFBLE1BQU0sR0FBR08sR0FBRyxDQUFDRSxJQUFKLENBQVNDLFFBQWxCO0FBQ0FuQixrQkFBQUEsT0FBTyxDQUFDb0IsU0FBUjtBQUNELGlCQUhELE1BR087QUFDTHBCLGtCQUFBQSxPQUFPLENBQUNXLE9BQVI7QUFDRDs7QUFDRFQsZ0JBQUFBLFVBQVUsSUFDUkEsVUFBVSxDQUFDO0FBQ1RSLGtCQUFBQSxJQUFJLEVBQUVNLE9BQU8sQ0FBQ04sSUFETDtBQUVUZSxrQkFBQUEsTUFBTSxFQUFFQSxNQUZDO0FBR1RDLGtCQUFBQSxNQUFNLEVBQUVNLEdBQUcsQ0FBQ0MsSUFBSixJQUFZLEdBQVosR0FBa0IsU0FBbEIsR0FBOEI7QUFIN0IsaUJBQUQsQ0FEWjtBQWhDWTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQXVDWmYsZ0JBQUFBLFVBQVUsSUFDUkEsVUFBVSxDQUFDO0FBQUVSLGtCQUFBQSxJQUFJLEVBQUVNLE9BQU8sQ0FBQ04sSUFBaEI7QUFBc0JlLGtCQUFBQSxNQUFNLEVBQUUsRUFBOUI7QUFBa0NDLGtCQUFBQSxNQUFNLEVBQUU7QUFBMUMsaUJBQUQsQ0FEWjtBQUVBVixnQkFBQUEsT0FBTyxDQUFDVyxPQUFSOztBQXpDWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxPOzs7Ozs7Ozs7Ozs7V0E2Q2hCLGtCQUEwQjtBQUN4QiwwQkFDRTtBQUNFLFFBQUEsYUFBYSxFQUFFLEtBQUtVLGFBQUwsQ0FBbUJDLElBQW5CLENBQXdCLElBQXhCLENBRGpCO0FBRUUsUUFBQSxRQUFRLE1BRlYsQ0FHRTs7QUFIRixTQUlNLEtBQUtyQixLQUpYLEVBREY7QUFRRDs7OztFQXpEcUJSLEtBQUssQ0FBQzhCLGE7O0FBMkQ5QixlQUFlM0IsWUFBWSxDQUFDRSxTQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5jb25zdCB7IHVwbG9hZCB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXI7XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbn1cclxuY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0geyBmaWxlTGlzdDogW10gfTtcclxuXHJcbiAgY3VzdG9tUmVxdWVzdCA9IGFzeW5jIChvcHRpb25zKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xyXG4gICAgY29uc3QgeyBvbkNvbXBsZXRlLCBvblByb2Nlc3MsIHNsaWNlU2l6ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbWF4U2l6ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChtYXhTaXplKSB7XHJcbiAgICAgIGNvbnN0IHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MgfSwgZmlsZSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKHtcclxuICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxVcGxvYWRcclxuICAgICAgICBjdXN0b21SZXF1ZXN0PXt0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKX1cclxuICAgICAgICBtdWx0aXBsZVxyXG4gICAgICAgIC8vIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgIHsuLi50aGlzLnByb3BzfVxyXG4gICAgICAvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5zY1VwbG9hZCk7XHJcbiJdfQ==
|