easy-file-system 1.3.105 → 1.3.109
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/example.js +1666 -1667
- package/lib/button/name.js +4 -4
- package/lib/button/toggle.js +6 -20
- package/lib/div/item/entry/directoryName.js +4 -4
- package/lib/div/item/entry/fileName.js +4 -4
- package/lib/div/item/entry/marker.js +4 -4
- package/lib/div/item/entry.js +7 -7
- package/lib/example/explorer.js +4 -4
- package/lib/example/item/entry/drag/directoryName.js +6 -6
- package/lib/example/view.js +7 -7
- package/lib/explorer.js +10 -10
- package/lib/item/entry/drag/directoryName.js +8 -29
- package/lib/item/entry/drag/fileName.js +8 -22
- package/lib/item/entry/drag.js +4 -4
- package/lib/item/entry/marker/directoryName.js +4 -4
- package/lib/item/entry/marker/fileName.js +4 -4
- package/lib/item/entry/marker.js +6 -13
- package/lib/item/entry.js +7 -7
- package/lib/list/entries.js +29 -29
- package/lib/rubbishBin.js +9 -23
- package/lib/svg/directoryName.js +7 -7
- package/lib/svg/fileName.js +7 -7
- package/lib/svg/marker.js +7 -7
- package/lib/svg/rubbishBin/closed.js +7 -7
- package/lib/svg/rubbishBin/open.js +7 -7
- package/lib/svg/toggle/down.js +7 -7
- package/lib/svg/toggle/up.js +7 -7
- package/package.json +3 -3
- package/src/button/toggle.js +1 -14
- package/src/item/entry/drag/directoryName.js +3 -23
- package/src/item/entry/drag/fileName.js +2 -15
- package/src/item/entry/marker.js +1 -7
- package/src/rubbishBin.js +1 -14
package/lib/list/entries.js
CHANGED
|
@@ -38,7 +38,7 @@ function isNativeReflectConstruct() {
|
|
|
38
38
|
return false;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
function _construct(
|
|
41
|
+
function _construct(Parent, args, Class) {
|
|
42
42
|
if (isNativeReflectConstruct()) {
|
|
43
43
|
_construct = Reflect.construct;
|
|
44
44
|
} else {
|
|
@@ -82,11 +82,11 @@ function _defineProperty(obj, key, value) {
|
|
|
82
82
|
}
|
|
83
83
|
return obj;
|
|
84
84
|
}
|
|
85
|
-
function _getPrototypeOf(
|
|
85
|
+
function _getPrototypeOf(o) {
|
|
86
86
|
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
|
|
87
87
|
return o.__proto__ || Object.getPrototypeOf(o);
|
|
88
88
|
};
|
|
89
|
-
return _getPrototypeOf(
|
|
89
|
+
return _getPrototypeOf(o);
|
|
90
90
|
}
|
|
91
91
|
function _inherits(subClass, superClass) {
|
|
92
92
|
if (typeof superClass !== "function" && superClass !== null) {
|
|
@@ -121,12 +121,12 @@ function _possibleConstructorReturn(self, call) {
|
|
|
121
121
|
}
|
|
122
122
|
return _assertThisInitialized(self);
|
|
123
123
|
}
|
|
124
|
-
function _setPrototypeOf(
|
|
124
|
+
function _setPrototypeOf(o, p) {
|
|
125
125
|
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
126
126
|
o.__proto__ = p;
|
|
127
127
|
return o;
|
|
128
128
|
};
|
|
129
|
-
return _setPrototypeOf(
|
|
129
|
+
return _setPrototypeOf(o, p);
|
|
130
130
|
}
|
|
131
131
|
function _taggedTemplateLiteral(strings, raw) {
|
|
132
132
|
if (!raw) {
|
|
@@ -153,7 +153,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
153
153
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
154
154
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
155
155
|
}
|
|
156
|
-
function _wrapNativeSuper(
|
|
156
|
+
function _wrapNativeSuper(Class) {
|
|
157
157
|
var _cache = typeof Map === "function" ? new Map() : undefined;
|
|
158
158
|
_wrapNativeSuper = function _wrapNativeSuper(Class) {
|
|
159
159
|
if (Class === null || !_isNativeFunction(Class)) return Class;
|
|
@@ -177,7 +177,7 @@ function _wrapNativeSuper(Class2) {
|
|
|
177
177
|
});
|
|
178
178
|
return _setPrototypeOf(Wrapper, Class);
|
|
179
179
|
};
|
|
180
|
-
return _wrapNativeSuper(
|
|
180
|
+
return _wrapNativeSuper(Class);
|
|
181
181
|
}
|
|
182
182
|
function _isNativeReflectConstruct() {
|
|
183
183
|
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
@@ -402,22 +402,22 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
402
402
|
},
|
|
403
403
|
{
|
|
404
404
|
key: "addEntryItem",
|
|
405
|
-
value: function addEntryItem(
|
|
406
|
-
var explorer = this.getExplorer(), nextEntryItem =
|
|
405
|
+
value: function addEntryItem(entryItem) {
|
|
406
|
+
var explorer = this.getExplorer(), nextEntryItem = entryItem, previousEntryItem = this.findEntryItem(function(entryItem) {
|
|
407
407
|
var nextEntryBeforeEntryItem = nextEntryItem.isBefore(entryItem);
|
|
408
408
|
if (nextEntryBeforeEntryItem) {
|
|
409
409
|
return true;
|
|
410
410
|
}
|
|
411
411
|
});
|
|
412
412
|
if (previousEntryItem === null) {
|
|
413
|
-
this.append(
|
|
413
|
+
this.append(entryItem);
|
|
414
414
|
} else {
|
|
415
|
-
|
|
415
|
+
entryItem.insertBefore(previousEntryItem);
|
|
416
416
|
}
|
|
417
417
|
var explorerMounted = explorer.isMounted();
|
|
418
418
|
if (explorerMounted) {
|
|
419
|
-
var entryItemDescendantElements =
|
|
420
|
-
|
|
419
|
+
var entryItemDescendantElements = entryItem.getDescendantElements(), entryItemElements = [
|
|
420
|
+
entryItem
|
|
421
421
|
].concat(_toConsumableArray(entryItemDescendantElements));
|
|
422
422
|
entryItemElements.reverse();
|
|
423
423
|
entryItemElements.forEach(function(entryItemElement) {
|
|
@@ -454,7 +454,7 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
454
454
|
{
|
|
455
455
|
key: "addMarkerEntryItem",
|
|
456
456
|
value: function addMarkerEntryItem(markerEntryItemName, dragEntryItemType) {
|
|
457
|
-
var
|
|
457
|
+
var markerEntryItem;
|
|
458
458
|
var name = markerEntryItemName, type = dragEntryItemType; ///
|
|
459
459
|
switch(type){
|
|
460
460
|
case _entryTypes.FILE_NAME_DRAG_ENTRY_TYPE:
|
|
@@ -463,7 +463,7 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
463
463
|
name: name,
|
|
464
464
|
explorer: explorer
|
|
465
465
|
});
|
|
466
|
-
|
|
466
|
+
markerEntryItem = fileNameMarkerEntryItem; ///
|
|
467
467
|
break;
|
|
468
468
|
}
|
|
469
469
|
case _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE:
|
|
@@ -472,25 +472,25 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
472
472
|
name: name,
|
|
473
473
|
explorer: explorer1
|
|
474
474
|
});
|
|
475
|
-
|
|
475
|
+
markerEntryItem = directoryNameMarkerEntryItem; ///
|
|
476
476
|
break;
|
|
477
477
|
}
|
|
478
478
|
}
|
|
479
|
-
var entryItem =
|
|
479
|
+
var entryItem = markerEntryItem; ///
|
|
480
480
|
this.addEntryItem(entryItem);
|
|
481
481
|
Object.assign(globalThis, {
|
|
482
|
-
markerEntryItem:
|
|
482
|
+
markerEntryItem: markerEntryItem
|
|
483
483
|
});
|
|
484
484
|
}
|
|
485
485
|
},
|
|
486
486
|
{
|
|
487
487
|
key: "removeMarkerEntryItem",
|
|
488
488
|
value: function removeMarkerEntryItem() {
|
|
489
|
-
var
|
|
490
|
-
|
|
491
|
-
|
|
489
|
+
var markerEntryItem = this.retrieveMarkerEntryItem();
|
|
490
|
+
markerEntryItem.remove();
|
|
491
|
+
markerEntryItem = null;
|
|
492
492
|
Object.assign(globalThis, {
|
|
493
|
-
markerEntryItem:
|
|
493
|
+
markerEntryItem: markerEntryItem
|
|
494
494
|
});
|
|
495
495
|
}
|
|
496
496
|
},
|
|
@@ -591,7 +591,7 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
591
591
|
for(var _len = arguments.length, types = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
592
592
|
types[_key - 1] = arguments[_key];
|
|
593
593
|
}
|
|
594
|
-
var entryItems = this.getEntryItems(),
|
|
594
|
+
var entryItems = this.getEntryItems(), entryItem = entryItems.find(function(entryItem) {
|
|
595
595
|
var entryItemType = entryItem.getType(), typesIncludesEntryItemType = types.includes(entryItemType);
|
|
596
596
|
if (typesIncludesEntryItemType) {
|
|
597
597
|
var result = callback(entryItem);
|
|
@@ -600,7 +600,7 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
600
600
|
}
|
|
601
601
|
}
|
|
602
602
|
}) || null; ///;
|
|
603
|
-
return
|
|
603
|
+
return entryItem;
|
|
604
604
|
}
|
|
605
605
|
},
|
|
606
606
|
{
|
|
@@ -609,7 +609,7 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
609
609
|
for(var _len = arguments.length, types = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
610
610
|
types[_key - 1] = arguments[_key];
|
|
611
611
|
}
|
|
612
|
-
var
|
|
612
|
+
var entryItem = this.findEntryItemByTypes.apply(this, [
|
|
613
613
|
function(entryItem) {
|
|
614
614
|
var entryItemName = entryItem.getName();
|
|
615
615
|
if (entryItemName === name) {
|
|
@@ -617,7 +617,7 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
617
617
|
}
|
|
618
618
|
}
|
|
619
619
|
].concat(_toConsumableArray(types))) || null;
|
|
620
|
-
return
|
|
620
|
+
return entryItem;
|
|
621
621
|
}
|
|
622
622
|
},
|
|
623
623
|
{
|
|
@@ -637,8 +637,8 @@ var EntriesList = /*#__PURE__*/ function(Element) {
|
|
|
637
637
|
{
|
|
638
638
|
key: "retrieveMarkerEntryItem",
|
|
639
639
|
value: function retrieveMarkerEntryItem() {
|
|
640
|
-
var
|
|
641
|
-
return
|
|
640
|
+
var markerEntryItem = globalThis.markerEntryItem;
|
|
641
|
+
return markerEntryItem;
|
|
642
642
|
}
|
|
643
643
|
},
|
|
644
644
|
{
|
|
@@ -720,4 +720,4 @@ _defineProperty(EntriesList, "defaultProperties", {
|
|
|
720
720
|
var _default = (0, _easyWithStyle).default(EntriesList)(_templateObject(), _styles.entriesListPaddingLeft);
|
|
721
721
|
exports.default = _default;
|
|
722
722
|
|
|
723
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saXN0L2VudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcGF0aFV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgZW50cmllc0xpc3RQYWRkaW5nTGVmdCB9IGZyb20gXCIuLi9zdHlsZXNcIjtcbmltcG9ydCB7IEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUsIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSB9IGZyb20gXCIuLi9lbnRyeVR5cGVzXCI7XG5cbmNvbnN0IHsgdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCwgcGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzO1xuXG5jb25zdCBtYXJrZXJFbnRyeUl0ZW0gPSBudWxsO1xuXG5PYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgbWFya2VyRW50cnlJdGVtXG59KTtcblxuY2xhc3MgRW50cmllc0xpc3QgZXh0ZW5kcyBFbGVtZW50IHtcbiAgaXNUb3Btb3N0KCkge1xuICAgIGNvbnN0IHsgdG9wbW9zdCB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgcmV0dXJuIHRvcG1vc3Q7XG4gIH1cblxuICBnZXRFeHBsb3JlcigpIHtcblx0XHRjb25zdCB7IGV4cGxvcmVyIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cblx0XHRyZXR1cm4gZXhwbG9yZXI7XG5cdH1cblxuXHRnZXRFbnRyeUl0ZW1zKCkge1xuXHRcdGNvbnN0IGNoaWxkRW50cnlJdGVtRWxlbWVudHMgPSB0aGlzLmdldENoaWxkRWxlbWVudHMoXCJsaS5lbnRyeVwiKSxcblx0XHRcdFx0XHRlbnRyeUl0ZW1zID0gY2hpbGRFbnRyeUl0ZW1FbGVtZW50czsgIC8vL1xuXG5cdFx0cmV0dXJuIGVudHJ5SXRlbXM7XG5cdH1cblxuXHRnZXRFbnRyeUl0ZW1zTGVuZ3RoKCkge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKSxcbiAgICAgICAgICBlbnRyeUl0ZW1zTGVuZ3RoID0gZW50cnlJdGVtcy5sZW5ndGg7XG5cbiAgICByZXR1cm4gZW50cnlJdGVtc0xlbmd0aDtcbiAgfVxuXG4gIGlzQ29sbGFwc2VkKCkge1xuICAgIGNvbnN0IGNvbGxhcHNlZCA9IHRoaXMuaGFzQ2xhc3MoXCJjb2xsYXBzZWRcIik7XG5cbiAgICByZXR1cm4gY29sbGFwc2VkO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW1zID0gdGhpcy5nZXRFbnRyeUl0ZW1zKCksXG4gICAgICAgICAgZW50cnlJdGVtc0xlbmd0aCA9IGVudHJ5SXRlbXMubGVuZ3RoLFxuICAgICAgICAgIGVtcHR5ID0gKGVudHJ5SXRlbXNMZW5ndGggPT09IDApO1xuXG4gICAgcmV0dXJuIGVtcHR5O1xuICB9XG5cbiAgYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKSB7XG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKG1hcmtlckVudHJ5SXRlbVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBtYXJrZXJFbnRyeUl0ZW1OYW1lID0gbWFya2VyRW50cnlJdGVtUGF0aDsgIC8vL1xuXG4gICAgICB0aGlzLmFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcbiAgICAgICAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgobWFya2VyRW50cnlJdGVtUGF0aCk7XG5cbiAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGggPSBtYXJrZXJFbnRyeUl0ZW1QYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lOyAvLy9cblxuICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtLmFkZE1hcmtlcihtYXJrZXJFbnRyeUl0ZW1QYXRoLCBkcmFnRW50cnlJdGVtVHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlTWFya2VyKCkge1xuICAgIHRoaXMucmVtb3ZlTWFya2VyRW50cnlJdGVtKCk7XG4gIH1cblxuICBhZGRGaWxlUGF0aChmaWxlUGF0aCkge1xuXHRcdGxldCBmaWxlTmFtZURyYWdFbnRyeUl0ZW07XG5cbiAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZmlsZVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGVQYXRoOyAgLy8vXG5cbiAgICAgIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZEZpbGVOYW1lRHJhZ0VudHJ5SXRlbShmaWxlTmFtZSk7XG5cbiAgICAgIGlmIChmaWxlTmFtZURyYWdFbnRyeUl0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgZmlsZU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5jcmVhdGVGaWxlTmFtZURyYWdFbnRyeUl0ZW0oZmlsZU5hbWUpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSh0b3Btb3N0RGlyZWN0b3J5TmFtZSk7XG5cbiAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY29sbGFwc2VkID0gdHJ1ZTtcblxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBjb2xsYXBzZWQpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGVQYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lID0gcGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKGZpbGVQYXRoKTtcblxuICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZTsgLy8vXG5cbiAgICAgIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbS5hZGRGaWxlUGF0aChmaWxlUGF0aCk7XG4gICAgfVxuXG5cdFx0cmV0dXJuIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbTtcblx0fVxuXG4gIHJlbW92ZUZpbGVQYXRoKGZpbGVQYXRoLCByZW1vdmVFbXB0eVBhcmVudERpcmVjdG9yaWVzID0gZmFsc2UpIHtcbiAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZmlsZVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGVQYXRoLCAgLy8vXG4gICAgICAgICAgICBmaWxlTmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmRGaWxlTmFtZURyYWdFbnRyeUl0ZW0oZmlsZU5hbWUpO1xuXG4gICAgICBpZiAoZmlsZU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRW50cnlJdGVtKGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmaWxlUGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZSA9IHBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChmaWxlUGF0aCk7XG5cbiAgICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZTsgLy8vXG5cbiAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtLnJlbW92ZUZpbGVQYXRoKGZpbGVQYXRoLCByZW1vdmVFbXB0eVBhcmVudERpcmVjdG9yaWVzKTtcblxuICAgICAgICBpZiAocmVtb3ZlRW1wdHlQYXJlbnREaXJlY3Rvcmllcykge1xuICAgICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbUVtcHR5ID0gdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtLmlzRW1wdHkoKTtcblxuICAgICAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW1FbXB0eSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVFbnRyeUl0ZW0odG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmVBbGxQYXRocygpIHtcbiAgICB0aGlzLnJlbW92ZUVudHJ5SXRlbXMoKTtcbiAgfVxuXG4gIGFkZERpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCwgY29sbGFwc2VkID0gdHJ1ZSkge1xuICAgIGxldCBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTtcblxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChkaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGlyZWN0b3J5TmFtZSA9IGRpcmVjdG9yeVBhdGg7ICAvLy9cblxuICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShkaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5jcmVhdGVEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShkaXJlY3RvcnlOYW1lLCBjb2xsYXBzZWQpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbGxhcHNlZCA/XG4gICAgICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0uY29sbGFwc2UoKSA6XG4gICAgICAgICAgICBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbS5leHBhbmQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9PT0gbnVsbCkge1xuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBjb2xsYXBzZWQpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgIGRpcmVjdG9yeVBhdGggPSBkaXJlY3RvcnlQYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lOyAvLy9cblxuICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0uYWRkRGlyZWN0b3J5UGF0aChkaXJlY3RvcnlQYXRoLCBjb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHJldHVybiBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTtcbiAgfVxuXG4gIHJlbW92ZURpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCwgcmVtb3ZlRW1wdHlQYXJlbnREaXJlY3RvcmllcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKGRpcmVjdG9yeVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBkaXJlY3RvcnlOYW1lID0gZGlyZWN0b3J5UGF0aCwgIC8vL1xuICAgICAgICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShkaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRW50cnlJdGVtKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5maW5kRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0odG9wbW9zdERpcmVjdG9yeU5hbWUpO1xuXG4gICAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgZGlyZWN0b3J5UGF0aCA9IGRpcmVjdG9yeVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWU7IC8vL1xuXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbS5yZW1vdmVEaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgsIHJlbW92ZUVtcHR5UGFyZW50RGlyZWN0b3JpZXMpO1xuXG4gICAgICAgIGlmIChyZW1vdmVFbXB0eVBhcmVudERpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtRW1wdHkgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0uaXNFbXB0eSgpO1xuXG4gICAgICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbUVtcHR5KSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUVudHJ5SXRlbSh0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZEVudHJ5SXRlbShlbnRyeUl0ZW0pIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuZXh0RW50cnlJdGVtID0gZW50cnlJdGVtLCAgLy8vXG4gICAgICAgICAgcHJldmlvdXNFbnRyeUl0ZW0gPSB0aGlzLmZpbmRFbnRyeUl0ZW0oKGVudHJ5SXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV4dEVudHJ5QmVmb3JlRW50cnlJdGVtID0gbmV4dEVudHJ5SXRlbS5pc0JlZm9yZShlbnRyeUl0ZW0pO1xuXG4gICAgICAgICAgICBpZiAobmV4dEVudHJ5QmVmb3JlRW50cnlJdGVtKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKHByZXZpb3VzRW50cnlJdGVtID09PSBudWxsKSB7XG4gICAgICB0aGlzLmFwcGVuZChlbnRyeUl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnRyeUl0ZW0uaW5zZXJ0QmVmb3JlKHByZXZpb3VzRW50cnlJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBsb3Jlck1vdW50ZWQgPSBleHBsb3Jlci5pc01vdW50ZWQoKTtcblxuICAgIGlmIChleHBsb3Jlck1vdW50ZWQpIHtcbiAgICAgIGNvbnN0IGVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50cyA9IGVudHJ5SXRlbS5nZXREZXNjZW5kYW50RWxlbWVudHMoKSxcbiAgICAgICAgICAgIGVudHJ5SXRlbUVsZW1lbnRzID0gW1xuICAgICAgICAgICAgICBlbnRyeUl0ZW0sXG4gICAgICAgICAgICAgIC4uLmVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50c1xuICAgICAgICAgICAgXTtcblxuICAgICAgZW50cnlJdGVtRWxlbWVudHMucmV2ZXJzZSgpO1xuXG4gICAgICBlbnRyeUl0ZW1FbGVtZW50cy5mb3JFYWNoKChlbnRyeUl0ZW1FbGVtZW50KSA9PiAoZW50cnlJdGVtRWxlbWVudC5kaWRNb3VudCAmJiBlbnRyeUl0ZW1FbGVtZW50LmRpZE1vdW50KCkpKTsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUVudHJ5SXRlbShlbnRyeUl0ZW0pIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBleHBsb3Jlck1vdW50ZWQgPSBleHBsb3Jlci5pc01vdW50ZWQoKTtcblxuICAgIGlmIChleHBsb3Jlck1vdW50ZWQpIHtcbiAgICAgIGNvbnN0IGVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50cyA9IGVudHJ5SXRlbS5nZXREZXNjZW5kYW50RWxlbWVudHMoKSxcbiAgICAgICAgICAgIGVudHJ5SXRlbUVsZW1lbnRzID0gW1xuICAgICAgICAgICAgICBlbnRyeUl0ZW0sXG4gICAgICAgICAgICAgIC4uLmVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50c1xuICAgICAgICAgICAgXTtcblxuICAgICAgZW50cnlJdGVtRWxlbWVudHMuZm9yRWFjaCgoZW50cnlJdGVtRWxlbWVudCkgPT4gKGVudHJ5SXRlbUVsZW1lbnQud2lsbFVubW91bnQgJiYgZW50cnlJdGVtRWxlbWVudC53aWxsVW5tb3VudCgpKSk7ICAvLy9cbiAgICB9XG5cbiAgICBlbnRyeUl0ZW0ucmVtb3ZlKCk7XG4gIH1cblxuICByZW1vdmVFbnRyeUl0ZW1zKCkge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKTtcblxuICAgIGVudHJ5SXRlbXMuZm9yRWFjaCgoZW50cnlJdGVtKSA9PiB0aGlzLnJlbW92ZUVudHJ5SXRlbShlbnRyeUl0ZW0pKTtcbiAgfVxuXG4gIGFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSkge1xuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW07XG5cbiAgICBjb25zdCBuYW1lID0gbWFya2VyRW50cnlJdGVtTmFtZSwgLy8vXG4gICAgICAgICAgdHlwZSA9IGRyYWdFbnRyeUl0ZW1UeXBlOyAgLy8vXG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgICAgIEZpbGVOYW1lTWFya2VyRW50cnlJdGVtID0gZXhwbG9yZXIuZ2V0RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0oKSxcbiAgICAgICAgICAgICAgZmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0gPVxuXG4gICAgICAgICAgICAgICAgPEZpbGVOYW1lTWFya2VyRW50cnlJdGVtIG5hbWU9e25hbWV9IGV4cGxvcmVyPXtleHBsb3Jlcn0gLz5cblxuICAgICAgICAgICAgICA7XG5cbiAgICAgICAgbWFya2VyRW50cnlJdGVtID0gZmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW07ICAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUgOiB7XG4gICAgICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuICAgICAgICAgICAgICBEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtID0gZXhwbG9yZXIuZ2V0RGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSgpLFxuICAgICAgICAgICAgICBkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtID1cblxuICAgICAgICAgICAgICAgIDxEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIG5hbWU9e25hbWV9IGV4cGxvcmVyPXtleHBsb3Jlcn0gLz5cblxuICAgICAgICAgICAgICA7XG5cbiAgICAgICAgbWFya2VyRW50cnlJdGVtID0gZGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbTsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlJdGVtID0gbWFya2VyRW50cnlJdGVtOyAvLy9cblxuICAgIHRoaXMuYWRkRW50cnlJdGVtKGVudHJ5SXRlbSk7XG5cbiAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW0gPSB0aGlzLnJldHJpZXZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICBtYXJrZXJFbnRyeUl0ZW0ucmVtb3ZlKCk7XG5cbiAgICBtYXJrZXJFbnRyeUl0ZW0gPSBudWxsO1xuXG4gICAgT2JqZWN0LmFzc2lnbihnbG9iYWxUaGlzLCB7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1cbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUZpbGVOYW1lRHJhZ0VudHJ5SXRlbShmaWxlTmFtZSkge1xuXHRcdGNvbnN0IG5hbWUgPSBmaWxlTmFtZSxcdC8vL1xuXHRcdFx0XHRcdGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuXHRcdFx0XHRcdEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9IGV4cGxvcmVyLmdldEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSgpLFxuXHRcdFx0XHRcdGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9XG5cblx0XHRcdFx0XHRcdDxGaWxlTmFtZURyYWdFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG5cdFx0XHRcdFx0O1xuXG5cdFx0cmV0dXJuIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbTtcblx0fVxuXG5cdGNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKGRpcmVjdG9yeU5hbWUsIGNvbGxhcHNlZCkge1xuXHRcdGNvbnN0IG5hbWUgPSBkaXJlY3RvcnlOYW1lLFx0Ly8vXG5cdFx0XHRcdFx0ZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG5cdFx0XHRcdFx0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSBleHBsb3Jlci5nZXREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSgpLFxuXHRcdFx0XHRcdGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID1cblxuXHRcdFx0XHRcdFx0PERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIG5hbWU9e25hbWV9IGNvbGxhcHNlZD17Y29sbGFwc2VkfSBleHBsb3Jlcj17ZXhwbG9yZXJ9IC8+XG5cblx0XHRcdFx0XHQ7XG5cblx0XHRyZXR1cm4gZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW07XG5cdH1cblxuXHRpc0ZpbGVOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQoZmlsZU5hbWUpIHtcblx0XHRjb25zdCBmaWxlTmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmRGaWxlTmFtZURyYWdFbnRyeUl0ZW0oZmlsZU5hbWUpLFxuXHRcdFx0XHRcdGZpbGVOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQgPSAoZmlsZU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKTtcblxuXHRcdHJldHVybiBmaWxlTmFtZURyYWdFbnRyeUl0ZW1QcmVzZW50O1xuXHR9XG5cblx0aXNEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQoZGlyZWN0b3J5TmFtZSkge1xuXHRcdGNvbnN0IGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5maW5kRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0oZGlyZWN0b3J5TmFtZSksXG5cdFx0XHRcdFx0ZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW1QcmVzZW50ID0gKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKTtcblxuXHRcdHJldHVybiBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQ7XG5cdH1cblxuICBmb3JFYWNoRW50cnlJdGVtQnlUeXBlcyhjYWxsYmFjaywgLi4udHlwZXMpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW1zID0gdGhpcy5nZXRFbnRyeUl0ZW1zKCk7XG5cbiAgICBlbnRyeUl0ZW1zLmZvckVhY2goKGVudHJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgZW50cnlJdGVtVHlwZSA9IGVudHJ5SXRlbS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUgPSB0eXBlcy5pbmNsdWRlcyhlbnRyeUl0ZW1UeXBlKTtcblxuICAgICAgaWYgKHR5cGVzSW5jbHVkZXNFbnRyeUl0ZW1UeXBlKSB7XG4gICAgICAgIGNhbGxiYWNrKGVudHJ5SXRlbSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmb3JFYWNoRHJhZ0VudHJ5SXRlbShjYWxsYmFjaykgeyB0aGlzLmZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFLCBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpOyB9XG5cbiAgZm9yRWFjaEZpbGVOYW1lRHJhZ0VudHJ5SXRlbShjYWxsYmFjaykgeyB0aGlzLmZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFKTsgfVxuXG4gIGZvckVhY2hEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShjYWxsYmFjaykgeyB0aGlzLmZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpOyB9XG5cbiAgc29tZUVudHJ5SXRlbUJ5VHlwZXMoY2FsbGJhY2ssIC4uLnR5cGVzKSB7XG4gICAgY29uc3QgZW50cnlJdGVtcyA9IHRoaXMuZ2V0RW50cnlJdGVtcygpO1xuXG4gICAgcmV0dXJuIGVudHJ5SXRlbXMuc29tZSgoZW50cnlJdGVtKSA9PiB7XG4gICAgICBjb25zdCBlbnRyeUl0ZW1UeXBlID0gZW50cnlJdGVtLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlc0luY2x1ZGVzRW50cnlJdGVtVHlwZSA9IHR5cGVzLmluY2x1ZGVzKGVudHJ5SXRlbVR5cGUpO1xuXG4gICAgICBpZiAodHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soZW50cnlJdGVtKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZmluZEVudHJ5SXRlbShjYWxsYmFjaykge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKSxcbiAgICAgICAgICBlbnRyeUl0ZW0gPSBlbnRyeUl0ZW1zLmZpbmQoY2FsbGJhY2spIHx8IG51bGw7IC8vL1xuXG4gICAgcmV0dXJuIGVudHJ5SXRlbTtcbiAgfVxuXG4gIGZpbmRFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCAuLi50eXBlcykge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKSxcbiAgICAgICAgZW50cnlJdGVtID0gZW50cnlJdGVtcy5maW5kKChlbnRyeUl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBlbnRyeUl0ZW1UeXBlID0gZW50cnlJdGVtLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgdHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUgPSB0eXBlcy5pbmNsdWRlcyhlbnRyeUl0ZW1UeXBlKTtcblxuICAgICAgICAgIGlmICh0eXBlc0luY2x1ZGVzRW50cnlJdGVtVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soZW50cnlJdGVtKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7IC8vLztcblxuICAgIHJldHVybiBlbnRyeUl0ZW07XG4gIH1cblxuICBmaW5kRW50cnlJdGVtQnlOYW1lQW5kVHlwZXMobmFtZSwgLi4udHlwZXMpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW0gPSB0aGlzLmZpbmRFbnRyeUl0ZW1CeVR5cGVzKChlbnRyeUl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGVudHJ5SXRlbU5hbWUgPSBlbnRyeUl0ZW0uZ2V0TmFtZSgpO1xuXG4gICAgICBpZiAoZW50cnlJdGVtTmFtZSA9PT0gbmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCAuLi50eXBlcykgfHwgbnVsbDtcblxuICAgIHJldHVybiBlbnRyeUl0ZW07XG4gIH1cblxuICBmaW5kRmlsZU5hbWVEcmFnRW50cnlJdGVtKGZpbGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZSA9IGZpbGVOYW1lLCAgLy8vXG4gICAgICAgICAgZW50cnlJdGVtID0gdGhpcy5maW5kRW50cnlJdGVtQnlOYW1lQW5kVHlwZXMobmFtZSwgRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSksXG4gICAgICAgICAgZmlsZU5hbWVEcmFnRW50cnlJdGVtID0gZW50cnlJdGVtOyAgLy8vXG5cbiAgICByZXR1cm4gZmlsZU5hbWVEcmFnRW50cnlJdGVtO1xuICB9XG5cbiAgZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKGRpcmVjdG9yeU5hbWUpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW0gPSB0aGlzLmZpbmRFbnRyeUl0ZW1CeU5hbWVBbmRUeXBlcyhkaXJlY3RvcnlOYW1lLCBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpLFxuICAgICAgICAgIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gZW50cnlJdGVtOyAvLy9cblxuICAgIHJldHVybiBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTtcbiAgfVxuXG4gIHJldHJpZXZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGNvbnN0IHsgbWFya2VyRW50cnlJdGVtIH0gPSBnbG9iYWxUaGlzO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbTtcbiAgfVxuXG4gIHJldHJpZXZlRHJhZ0VudHJ5SXRlbXMoZHJhZ0VudHJ5SXRlbXMgPSBbXSkge1xuICAgIHRoaXMuZm9yRWFjaERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKChkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtOyAvLy9cblxuICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ucmV0cmlldmVEcmFnRW50cnlJdGVtcyhkcmFnRW50cnlJdGVtcyk7XG5cbiAgICAgIGRyYWdFbnRyeUl0ZW1zLnB1c2goZHJhZ0VudHJ5SXRlbSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvckVhY2hGaWxlTmFtZURyYWdFbnRyeUl0ZW0oKGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGZpbGVOYW1lRHJhZ0VudHJ5SXRlbTsgIC8vL1xuXG4gICAgICBkcmFnRW50cnlJdGVtcy5wdXNoKGRyYWdFbnRyeUl0ZW0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRyYWdFbnRyeUl0ZW1zO1xuICB9XG5cbiAgY29sbGFwc2UoKSB7XG5cdCAgdGhpcy5hZGRDbGFzcyhcImNvbGxhcHNlZFwiKTtcbiAgfVxuXG5cdGV4cGFuZCgpIHtcblx0ICB0aGlzLnJlbW92ZUNsYXNzKFwiY29sbGFwc2VkXCIpO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgdG9wbW9zdCA9IHRoaXMuaXNUb3Btb3N0KCk7XG5cbiAgICBpZiAodG9wbW9zdCkge1xuICAgICAgdGhpcy5hZGRDbGFzcyhcInRvcG1vc3RcIik7XG4gICAgfVxuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgLy8vXG4gIH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuXHRcdGNvbnN0IGV4cGFuZEVudHJpZXNMaXN0ID0gdGhpcy5leHBhbmQuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIGNvbGxhcHNlRW50cmllc0xpc3QgPSB0aGlzLmNvbGxhcHNlLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICBpc0VudHJpZXNMaXN0Q29sbGFwc2VkID0gdGhpcy5pc0NvbGxhcHNlZC5iaW5kKHRoaXMpLCAvLy9cbiAgICAgICAgICBpc0VtcHR5ID0gdGhpcy5pc0VtcHR5LmJpbmQodGhpcyksXG4gICAgICAgICAgYWRkTWFya2VyID0gdGhpcy5hZGRNYXJrZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICBhZGRGaWxlUGF0aCA9IHRoaXMuYWRkRmlsZVBhdGguYmluZCh0aGlzKSxcbiAgICAgICAgICByZW1vdmVNYXJrZXIgPSB0aGlzLnJlbW92ZU1hcmtlci5iaW5kKHRoaXMpLFxuICAgICAgICAgIHJlbW92ZUZpbGVQYXRoID0gdGhpcy5yZW1vdmVGaWxlUGF0aC5iaW5kKHRoaXMpLFxuICAgICAgICAgIHJlbW92ZUFsbFBhdGhzID0gdGhpcy5yZW1vdmVBbGxQYXRocy5iaW5kKHRoaXMpLFxuICAgICAgICAgIGFkZERpcmVjdG9yeVBhdGggPSB0aGlzLmFkZERpcmVjdG9yeVBhdGguYmluZCh0aGlzKSxcbiAgICAgICAgICByZW1vdmVEaXJlY3RvcnlQYXRoID0gdGhpcy5yZW1vdmVEaXJlY3RvcnlQYXRoLmJpbmQodGhpcyksXG4gICAgICAgICAgZm9yRWFjaERyYWdFbnRyeUl0ZW0gPSB0aGlzLmZvckVhY2hEcmFnRW50cnlJdGVtLmJpbmQodGhpcyksXG4gICAgICAgICAgcmV0cmlldmVEcmFnRW50cnlJdGVtcyA9IHRoaXMucmV0cmlldmVEcmFnRW50cnlJdGVtcy5iaW5kKHRoaXMpLFxuICAgICAgICAgIHJldHJpZXZlTWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbS5iaW5kKHRoaXMpO1xuXG5cdFx0cmV0dXJuICh7XG4gICAgICBleHBhbmRFbnRyaWVzTGlzdCxcbiAgICAgIGNvbGxhcHNlRW50cmllc0xpc3QsXG4gICAgICBpc0VudHJpZXNMaXN0Q29sbGFwc2VkLFxuICAgICAgaXNFbXB0eSxcbiAgICAgIGFkZE1hcmtlcixcblx0XHRcdGFkZEZpbGVQYXRoLFxuICAgICAgcmVtb3ZlTWFya2VyLFxuICAgICAgcmVtb3ZlRmlsZVBhdGgsXG4gICAgICByZW1vdmVBbGxQYXRocyxcbiAgICAgIGFkZERpcmVjdG9yeVBhdGgsXG4gICAgICByZW1vdmVEaXJlY3RvcnlQYXRoLFxuICAgICAgZm9yRWFjaERyYWdFbnRyeUl0ZW0sXG4gICAgICByZXRyaWV2ZURyYWdFbnRyeUl0ZW1zLFxuICAgICAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW1cblx0XHR9KTtcblx0fVxuXG5cdHN0YXRpYyB0YWdOYW1lID0gXCJ1bFwiO1xuXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcbiAgICBcInRvcG1vc3RcIixcbiAgICBcImV4cGxvcmVyXCJcbiAgXTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImVudHJpZXNcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoRW50cmllc0xpc3QpYFxuXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogJHtlbnRyaWVzTGlzdFBhZGRpbmdMZWZ0fTtcbiAgXG4gIC50b3Btb3N0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgXG4gIC5jb2xsYXBzZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgICAgIFxuYDtcbiJdLCJuYW1lcyI6WyJ0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIiwicGF0aFV0aWxpdGllcyIsInBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCIsIm1hcmtlckVudHJ5SXRlbSIsIk9iamVjdCIsImFzc2lnbiIsImdsb2JhbFRoaXMiLCJFbnRyaWVzTGlzdCIsImlzVG9wbW9zdCIsInRvcG1vc3QiLCJwcm9wZXJ0aWVzIiwiZ2V0RXhwbG9yZXIiLCJleHBsb3JlciIsImdldEVudHJ5SXRlbXMiLCJjaGlsZEVudHJ5SXRlbUVsZW1lbnRzIiwiZ2V0Q2hpbGRFbGVtZW50cyIsImVudHJ5SXRlbXMiLCJnZXRFbnRyeUl0ZW1zTGVuZ3RoIiwiZW50cnlJdGVtc0xlbmd0aCIsImxlbmd0aCIsImlzQ29sbGFwc2VkIiwiY29sbGFwc2VkIiwiaGFzQ2xhc3MiLCJpc0VtcHR5IiwiZW1wdHkiLCJhZGRNYXJrZXIiLCJtYXJrZXJFbnRyeUl0ZW1QYXRoIiwiZHJhZ0VudHJ5SXRlbVR5cGUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsIm1hcmtlckVudHJ5SXRlbU5hbWUiLCJhZGRNYXJrZXJFbnRyeUl0ZW0iLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJmaW5kRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJtYXJrZXJFbnRyeUl0ZW1QYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lIiwicmVtb3ZlTWFya2VyIiwicmVtb3ZlTWFya2VyRW50cnlJdGVtIiwiYWRkRmlsZVBhdGgiLCJmaWxlUGF0aCIsImZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImZpbGVOYW1lIiwiZmluZEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImNyZWF0ZUZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImFkZEVudHJ5SXRlbSIsImNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIiwiZmlsZVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUiLCJyZW1vdmVGaWxlUGF0aCIsInJlbW92ZUVtcHR5UGFyZW50RGlyZWN0b3JpZXMiLCJyZW1vdmVFbnRyeUl0ZW0iLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW1FbXB0eSIsInJlbW92ZUFsbFBhdGhzIiwicmVtb3ZlRW50cnlJdGVtcyIsImFkZERpcmVjdG9yeVBhdGgiLCJkaXJlY3RvcnlQYXRoIiwiZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJkaXJlY3RvcnlOYW1lIiwiY29sbGFwc2UiLCJleHBhbmQiLCJkaXJlY3RvcnlQYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lIiwicmVtb3ZlRGlyZWN0b3J5UGF0aCIsImVudHJ5SXRlbSIsIm5leHRFbnRyeUl0ZW0iLCJwcmV2aW91c0VudHJ5SXRlbSIsImZpbmRFbnRyeUl0ZW0iLCJuZXh0RW50cnlCZWZvcmVFbnRyeUl0ZW0iLCJpc0JlZm9yZSIsImFwcGVuZCIsImluc2VydEJlZm9yZSIsImV4cGxvcmVyTW91bnRlZCIsImlzTW91bnRlZCIsImVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50cyIsImdldERlc2NlbmRhbnRFbGVtZW50cyIsImVudHJ5SXRlbUVsZW1lbnRzIiwicmV2ZXJzZSIsImZvckVhY2giLCJlbnRyeUl0ZW1FbGVtZW50IiwiZGlkTW91bnQiLCJ3aWxsVW5tb3VudCIsInJlbW92ZSIsIm5hbWUiLCJ0eXBlIiwiRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsIkZpbGVOYW1lTWFya2VyRW50cnlJdGVtIiwiZ2V0RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJmaWxlTmFtZU1hcmtlckVudHJ5SXRlbSIsIkRJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsIkRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJnZXREaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIiwiZGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSIsInJldHJpZXZlTWFya2VyRW50cnlJdGVtIiwiRmlsZU5hbWVEcmFnRW50cnlJdGVtIiwiZ2V0RmlsZU5hbWVEcmFnRW50cnlJdGVtIiwiRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJnZXREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsImlzRmlsZU5hbWVEcmFnRW50cnlJdGVtUHJlc2VudCIsImZpbGVOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQiLCJpc0RpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtUHJlc2VudCIsImRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtUHJlc2VudCIsImZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzIiwiY2FsbGJhY2siLCJ0eXBlcyIsImVudHJ5SXRlbVR5cGUiLCJnZXRUeXBlIiwidHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUiLCJpbmNsdWRlcyIsImZvckVhY2hEcmFnRW50cnlJdGVtIiwiZm9yRWFjaEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImZvckVhY2hEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsInNvbWVFbnRyeUl0ZW1CeVR5cGVzIiwic29tZSIsInJlc3VsdCIsImZpbmQiLCJmaW5kRW50cnlJdGVtQnlUeXBlcyIsImZpbmRFbnRyeUl0ZW1CeU5hbWVBbmRUeXBlcyIsImVudHJ5SXRlbU5hbWUiLCJnZXROYW1lIiwicmV0cmlldmVEcmFnRW50cnlJdGVtcyIsImRyYWdFbnRyeUl0ZW1zIiwiZHJhZ0VudHJ5SXRlbSIsInB1c2giLCJhZGRDbGFzcyIsInJlbW92ZUNsYXNzIiwicGFyZW50Q29udGV4dCIsImV4cGFuZEVudHJpZXNMaXN0IiwiYmluZCIsImNvbGxhcHNlRW50cmllc0xpc3QiLCJpc0VudHJpZXNMaXN0Q29sbGFwc2VkIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIiwiZW50cmllc0xpc3RQYWRkaW5nTGVmdCJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7OztBQUVTLElBQUEsY0FBaUIsa0NBQWpCLGlCQUFpQixFQUFBO0FBRWYsSUFBQSxLQUFNLFdBQU4sTUFBTSxDQUFBO0FBQ0EsSUFBQSxVQUFXLFdBQVgsV0FBVyxDQUFBO0FBRUYsSUFBQSxPQUFXLFdBQVgsV0FBVyxDQUFBO0FBQ3dCLElBQUEsV0FBZSxX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
|
|
723
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saXN0L2VudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcGF0aFV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgZW50cmllc0xpc3RQYWRkaW5nTGVmdCB9IGZyb20gXCIuLi9zdHlsZXNcIjtcbmltcG9ydCB7IEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUsIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSB9IGZyb20gXCIuLi9lbnRyeVR5cGVzXCI7XG5cbmNvbnN0IHsgdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCwgcGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzO1xuXG5jb25zdCBtYXJrZXJFbnRyeUl0ZW0gPSBudWxsO1xuXG5PYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgbWFya2VyRW50cnlJdGVtXG59KTtcblxuY2xhc3MgRW50cmllc0xpc3QgZXh0ZW5kcyBFbGVtZW50IHtcbiAgaXNUb3Btb3N0KCkge1xuICAgIGNvbnN0IHsgdG9wbW9zdCB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgcmV0dXJuIHRvcG1vc3Q7XG4gIH1cblxuICBnZXRFeHBsb3JlcigpIHtcblx0XHRjb25zdCB7IGV4cGxvcmVyIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cblx0XHRyZXR1cm4gZXhwbG9yZXI7XG5cdH1cblxuXHRnZXRFbnRyeUl0ZW1zKCkge1xuXHRcdGNvbnN0IGNoaWxkRW50cnlJdGVtRWxlbWVudHMgPSB0aGlzLmdldENoaWxkRWxlbWVudHMoXCJsaS5lbnRyeVwiKSxcblx0XHRcdFx0XHRlbnRyeUl0ZW1zID0gY2hpbGRFbnRyeUl0ZW1FbGVtZW50czsgIC8vL1xuXG5cdFx0cmV0dXJuIGVudHJ5SXRlbXM7XG5cdH1cblxuXHRnZXRFbnRyeUl0ZW1zTGVuZ3RoKCkge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKSxcbiAgICAgICAgICBlbnRyeUl0ZW1zTGVuZ3RoID0gZW50cnlJdGVtcy5sZW5ndGg7XG5cbiAgICByZXR1cm4gZW50cnlJdGVtc0xlbmd0aDtcbiAgfVxuXG4gIGlzQ29sbGFwc2VkKCkge1xuICAgIGNvbnN0IGNvbGxhcHNlZCA9IHRoaXMuaGFzQ2xhc3MoXCJjb2xsYXBzZWRcIik7XG5cbiAgICByZXR1cm4gY29sbGFwc2VkO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW1zID0gdGhpcy5nZXRFbnRyeUl0ZW1zKCksXG4gICAgICAgICAgZW50cnlJdGVtc0xlbmd0aCA9IGVudHJ5SXRlbXMubGVuZ3RoLFxuICAgICAgICAgIGVtcHR5ID0gKGVudHJ5SXRlbXNMZW5ndGggPT09IDApO1xuXG4gICAgcmV0dXJuIGVtcHR5O1xuICB9XG5cbiAgYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKSB7XG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKG1hcmtlckVudHJ5SXRlbVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBtYXJrZXJFbnRyeUl0ZW1OYW1lID0gbWFya2VyRW50cnlJdGVtUGF0aDsgIC8vL1xuXG4gICAgICB0aGlzLmFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcbiAgICAgICAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgobWFya2VyRW50cnlJdGVtUGF0aCk7XG5cbiAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGggPSBtYXJrZXJFbnRyeUl0ZW1QYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lOyAvLy9cblxuICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtLmFkZE1hcmtlcihtYXJrZXJFbnRyeUl0ZW1QYXRoLCBkcmFnRW50cnlJdGVtVHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlTWFya2VyKCkge1xuICAgIHRoaXMucmVtb3ZlTWFya2VyRW50cnlJdGVtKCk7XG4gIH1cblxuICBhZGRGaWxlUGF0aChmaWxlUGF0aCkge1xuXHRcdGxldCBmaWxlTmFtZURyYWdFbnRyeUl0ZW07XG5cbiAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZmlsZVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGVQYXRoOyAgLy8vXG5cbiAgICAgIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZEZpbGVOYW1lRHJhZ0VudHJ5SXRlbShmaWxlTmFtZSk7XG5cbiAgICAgIGlmIChmaWxlTmFtZURyYWdFbnRyeUl0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgZmlsZU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5jcmVhdGVGaWxlTmFtZURyYWdFbnRyeUl0ZW0oZmlsZU5hbWUpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSh0b3Btb3N0RGlyZWN0b3J5TmFtZSk7XG5cbiAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY29sbGFwc2VkID0gdHJ1ZTtcblxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBjb2xsYXBzZWQpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGVQYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lID0gcGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKGZpbGVQYXRoKTtcblxuICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZTsgLy8vXG5cbiAgICAgIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbS5hZGRGaWxlUGF0aChmaWxlUGF0aCk7XG4gICAgfVxuXG5cdFx0cmV0dXJuIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbTtcblx0fVxuXG4gIHJlbW92ZUZpbGVQYXRoKGZpbGVQYXRoLCByZW1vdmVFbXB0eVBhcmVudERpcmVjdG9yaWVzID0gZmFsc2UpIHtcbiAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZmlsZVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGVQYXRoLCAgLy8vXG4gICAgICAgICAgICBmaWxlTmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmRGaWxlTmFtZURyYWdFbnRyeUl0ZW0oZmlsZU5hbWUpO1xuXG4gICAgICBpZiAoZmlsZU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRW50cnlJdGVtKGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmaWxlUGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZSA9IHBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChmaWxlUGF0aCk7XG5cbiAgICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aFdpdGhvdXRUb3Btb3N0RGlyZWN0b3J5TmFtZTsgLy8vXG5cbiAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtLnJlbW92ZUZpbGVQYXRoKGZpbGVQYXRoLCByZW1vdmVFbXB0eVBhcmVudERpcmVjdG9yaWVzKTtcblxuICAgICAgICBpZiAocmVtb3ZlRW1wdHlQYXJlbnREaXJlY3Rvcmllcykge1xuICAgICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbUVtcHR5ID0gdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtLmlzRW1wdHkoKTtcblxuICAgICAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW1FbXB0eSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVFbnRyeUl0ZW0odG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmVBbGxQYXRocygpIHtcbiAgICB0aGlzLnJlbW92ZUVudHJ5SXRlbXMoKTtcbiAgfVxuXG4gIGFkZERpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCwgY29sbGFwc2VkID0gdHJ1ZSkge1xuICAgIGxldCBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTtcblxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChkaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGlyZWN0b3J5TmFtZSA9IGRpcmVjdG9yeVBhdGg7ICAvLy9cblxuICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShkaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5jcmVhdGVEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShkaXJlY3RvcnlOYW1lLCBjb2xsYXBzZWQpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbGxhcHNlZCA/XG4gICAgICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0uY29sbGFwc2UoKSA6XG4gICAgICAgICAgICBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbS5leHBhbmQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9IHRoaXMuZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSA9PT0gbnVsbCkge1xuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBjb2xsYXBzZWQpO1xuXG4gICAgICAgIHRoaXMuYWRkRW50cnlJdGVtKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgIGRpcmVjdG9yeVBhdGggPSBkaXJlY3RvcnlQYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lOyAvLy9cblxuICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0uYWRkRGlyZWN0b3J5UGF0aChkaXJlY3RvcnlQYXRoLCBjb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHJldHVybiBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTtcbiAgfVxuXG4gIHJlbW92ZURpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCwgcmVtb3ZlRW1wdHlQYXJlbnREaXJlY3RvcmllcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKGRpcmVjdG9yeVBhdGgpO1xuXG4gICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lID09PSBudWxsKSB7XG4gICAgICBjb25zdCBkaXJlY3RvcnlOYW1lID0gZGlyZWN0b3J5UGF0aCwgIC8vL1xuICAgICAgICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShkaXJlY3RvcnlOYW1lKTtcblxuICAgICAgaWYgKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRW50cnlJdGVtKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5maW5kRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0odG9wbW9zdERpcmVjdG9yeU5hbWUpO1xuXG4gICAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgoZGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgZGlyZWN0b3J5UGF0aCA9IGRpcmVjdG9yeVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWU7IC8vL1xuXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbS5yZW1vdmVEaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgsIHJlbW92ZUVtcHR5UGFyZW50RGlyZWN0b3JpZXMpO1xuXG4gICAgICAgIGlmIChyZW1vdmVFbXB0eVBhcmVudERpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtRW1wdHkgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0uaXNFbXB0eSgpO1xuXG4gICAgICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbUVtcHR5KSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUVudHJ5SXRlbSh0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZEVudHJ5SXRlbShlbnRyeUl0ZW0pIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBuZXh0RW50cnlJdGVtID0gZW50cnlJdGVtLCAgLy8vXG4gICAgICAgICAgcHJldmlvdXNFbnRyeUl0ZW0gPSB0aGlzLmZpbmRFbnRyeUl0ZW0oKGVudHJ5SXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV4dEVudHJ5QmVmb3JlRW50cnlJdGVtID0gbmV4dEVudHJ5SXRlbS5pc0JlZm9yZShlbnRyeUl0ZW0pO1xuXG4gICAgICAgICAgICBpZiAobmV4dEVudHJ5QmVmb3JlRW50cnlJdGVtKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKHByZXZpb3VzRW50cnlJdGVtID09PSBudWxsKSB7XG4gICAgICB0aGlzLmFwcGVuZChlbnRyeUl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnRyeUl0ZW0uaW5zZXJ0QmVmb3JlKHByZXZpb3VzRW50cnlJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBsb3Jlck1vdW50ZWQgPSBleHBsb3Jlci5pc01vdW50ZWQoKTtcblxuICAgIGlmIChleHBsb3Jlck1vdW50ZWQpIHtcbiAgICAgIGNvbnN0IGVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50cyA9IGVudHJ5SXRlbS5nZXREZXNjZW5kYW50RWxlbWVudHMoKSxcbiAgICAgICAgICAgIGVudHJ5SXRlbUVsZW1lbnRzID0gW1xuICAgICAgICAgICAgICBlbnRyeUl0ZW0sXG4gICAgICAgICAgICAgIC4uLmVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50c1xuICAgICAgICAgICAgXTtcblxuICAgICAgZW50cnlJdGVtRWxlbWVudHMucmV2ZXJzZSgpO1xuXG4gICAgICBlbnRyeUl0ZW1FbGVtZW50cy5mb3JFYWNoKChlbnRyeUl0ZW1FbGVtZW50KSA9PiAoZW50cnlJdGVtRWxlbWVudC5kaWRNb3VudCAmJiBlbnRyeUl0ZW1FbGVtZW50LmRpZE1vdW50KCkpKTsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUVudHJ5SXRlbShlbnRyeUl0ZW0pIHtcbiAgICBjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBleHBsb3Jlck1vdW50ZWQgPSBleHBsb3Jlci5pc01vdW50ZWQoKTtcblxuICAgIGlmIChleHBsb3Jlck1vdW50ZWQpIHtcbiAgICAgIGNvbnN0IGVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50cyA9IGVudHJ5SXRlbS5nZXREZXNjZW5kYW50RWxlbWVudHMoKSxcbiAgICAgICAgICAgIGVudHJ5SXRlbUVsZW1lbnRzID0gW1xuICAgICAgICAgICAgICBlbnRyeUl0ZW0sXG4gICAgICAgICAgICAgIC4uLmVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50c1xuICAgICAgICAgICAgXTtcblxuICAgICAgZW50cnlJdGVtRWxlbWVudHMuZm9yRWFjaCgoZW50cnlJdGVtRWxlbWVudCkgPT4gKGVudHJ5SXRlbUVsZW1lbnQud2lsbFVubW91bnQgJiYgZW50cnlJdGVtRWxlbWVudC53aWxsVW5tb3VudCgpKSk7ICAvLy9cbiAgICB9XG5cbiAgICBlbnRyeUl0ZW0ucmVtb3ZlKCk7XG4gIH1cblxuICByZW1vdmVFbnRyeUl0ZW1zKCkge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKTtcblxuICAgIGVudHJ5SXRlbXMuZm9yRWFjaCgoZW50cnlJdGVtKSA9PiB0aGlzLnJlbW92ZUVudHJ5SXRlbShlbnRyeUl0ZW0pKTtcbiAgfVxuXG4gIGFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSkge1xuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW07XG5cbiAgICBjb25zdCBuYW1lID0gbWFya2VyRW50cnlJdGVtTmFtZSwgLy8vXG4gICAgICAgICAgdHlwZSA9IGRyYWdFbnRyeUl0ZW1UeXBlOyAgLy8vXG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgICAgIEZpbGVOYW1lTWFya2VyRW50cnlJdGVtID0gZXhwbG9yZXIuZ2V0RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0oKSxcbiAgICAgICAgICAgICAgZmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0gPVxuXG4gICAgICAgICAgICAgICAgPEZpbGVOYW1lTWFya2VyRW50cnlJdGVtIG5hbWU9e25hbWV9IGV4cGxvcmVyPXtleHBsb3Jlcn0gLz5cblxuICAgICAgICAgICAgICA7XG5cbiAgICAgICAgbWFya2VyRW50cnlJdGVtID0gZmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW07ICAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUgOiB7XG4gICAgICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuICAgICAgICAgICAgICBEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtID0gZXhwbG9yZXIuZ2V0RGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSgpLFxuICAgICAgICAgICAgICBkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtID1cblxuICAgICAgICAgICAgICAgIDxEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIG5hbWU9e25hbWV9IGV4cGxvcmVyPXtleHBsb3Jlcn0gLz5cblxuICAgICAgICAgICAgICA7XG5cbiAgICAgICAgbWFya2VyRW50cnlJdGVtID0gZGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbTsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlJdGVtID0gbWFya2VyRW50cnlJdGVtOyAvLy9cblxuICAgIHRoaXMuYWRkRW50cnlJdGVtKGVudHJ5SXRlbSk7XG5cbiAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW0gPSB0aGlzLnJldHJpZXZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICBtYXJrZXJFbnRyeUl0ZW0ucmVtb3ZlKCk7XG5cbiAgICBtYXJrZXJFbnRyeUl0ZW0gPSBudWxsO1xuXG4gICAgT2JqZWN0LmFzc2lnbihnbG9iYWxUaGlzLCB7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1cbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUZpbGVOYW1lRHJhZ0VudHJ5SXRlbShmaWxlTmFtZSkge1xuXHRcdGNvbnN0IG5hbWUgPSBmaWxlTmFtZSxcdC8vL1xuXHRcdFx0XHRcdGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuXHRcdFx0XHRcdEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9IGV4cGxvcmVyLmdldEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSgpLFxuXHRcdFx0XHRcdGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSA9XG5cblx0XHRcdFx0XHRcdDxGaWxlTmFtZURyYWdFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG5cdFx0XHRcdFx0O1xuXG5cdFx0cmV0dXJuIGZpbGVOYW1lRHJhZ0VudHJ5SXRlbTtcblx0fVxuXG5cdGNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKGRpcmVjdG9yeU5hbWUsIGNvbGxhcHNlZCkge1xuXHRcdGNvbnN0IG5hbWUgPSBkaXJlY3RvcnlOYW1lLFx0Ly8vXG5cdFx0XHRcdFx0ZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG5cdFx0XHRcdFx0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gPSBleHBsb3Jlci5nZXREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSgpLFxuXHRcdFx0XHRcdGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID1cblxuXHRcdFx0XHRcdFx0PERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIG5hbWU9e25hbWV9IGNvbGxhcHNlZD17Y29sbGFwc2VkfSBleHBsb3Jlcj17ZXhwbG9yZXJ9IC8+XG5cblx0XHRcdFx0XHQ7XG5cblx0XHRyZXR1cm4gZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW07XG5cdH1cblxuXHRpc0ZpbGVOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQoZmlsZU5hbWUpIHtcblx0XHRjb25zdCBmaWxlTmFtZURyYWdFbnRyeUl0ZW0gPSB0aGlzLmZpbmRGaWxlTmFtZURyYWdFbnRyeUl0ZW0oZmlsZU5hbWUpLFxuXHRcdFx0XHRcdGZpbGVOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQgPSAoZmlsZU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKTtcblxuXHRcdHJldHVybiBmaWxlTmFtZURyYWdFbnRyeUl0ZW1QcmVzZW50O1xuXHR9XG5cblx0aXNEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQoZGlyZWN0b3J5TmFtZSkge1xuXHRcdGNvbnN0IGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gdGhpcy5maW5kRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0oZGlyZWN0b3J5TmFtZSksXG5cdFx0XHRcdFx0ZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW1QcmVzZW50ID0gKGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtICE9PSBudWxsKTtcblxuXHRcdHJldHVybiBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQ7XG5cdH1cblxuICBmb3JFYWNoRW50cnlJdGVtQnlUeXBlcyhjYWxsYmFjaywgLi4udHlwZXMpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW1zID0gdGhpcy5nZXRFbnRyeUl0ZW1zKCk7XG5cbiAgICBlbnRyeUl0ZW1zLmZvckVhY2goKGVudHJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgZW50cnlJdGVtVHlwZSA9IGVudHJ5SXRlbS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUgPSB0eXBlcy5pbmNsdWRlcyhlbnRyeUl0ZW1UeXBlKTtcblxuICAgICAgaWYgKHR5cGVzSW5jbHVkZXNFbnRyeUl0ZW1UeXBlKSB7XG4gICAgICAgIGNhbGxiYWNrKGVudHJ5SXRlbSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmb3JFYWNoRHJhZ0VudHJ5SXRlbShjYWxsYmFjaykgeyB0aGlzLmZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFLCBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpOyB9XG5cbiAgZm9yRWFjaEZpbGVOYW1lRHJhZ0VudHJ5SXRlbShjYWxsYmFjaykgeyB0aGlzLmZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFKTsgfVxuXG4gIGZvckVhY2hEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShjYWxsYmFjaykgeyB0aGlzLmZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpOyB9XG5cbiAgc29tZUVudHJ5SXRlbUJ5VHlwZXMoY2FsbGJhY2ssIC4uLnR5cGVzKSB7XG4gICAgY29uc3QgZW50cnlJdGVtcyA9IHRoaXMuZ2V0RW50cnlJdGVtcygpO1xuXG4gICAgcmV0dXJuIGVudHJ5SXRlbXMuc29tZSgoZW50cnlJdGVtKSA9PiB7XG4gICAgICBjb25zdCBlbnRyeUl0ZW1UeXBlID0gZW50cnlJdGVtLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlc0luY2x1ZGVzRW50cnlJdGVtVHlwZSA9IHR5cGVzLmluY2x1ZGVzKGVudHJ5SXRlbVR5cGUpO1xuXG4gICAgICBpZiAodHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soZW50cnlJdGVtKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZmluZEVudHJ5SXRlbShjYWxsYmFjaykge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKSxcbiAgICAgICAgICBlbnRyeUl0ZW0gPSBlbnRyeUl0ZW1zLmZpbmQoY2FsbGJhY2spIHx8IG51bGw7IC8vL1xuXG4gICAgcmV0dXJuIGVudHJ5SXRlbTtcbiAgfVxuXG4gIGZpbmRFbnRyeUl0ZW1CeVR5cGVzKGNhbGxiYWNrLCAuLi50eXBlcykge1xuICAgIGNvbnN0IGVudHJ5SXRlbXMgPSB0aGlzLmdldEVudHJ5SXRlbXMoKSxcbiAgICAgICAgZW50cnlJdGVtID0gZW50cnlJdGVtcy5maW5kKChlbnRyeUl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBlbnRyeUl0ZW1UeXBlID0gZW50cnlJdGVtLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgdHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUgPSB0eXBlcy5pbmNsdWRlcyhlbnRyeUl0ZW1UeXBlKTtcblxuICAgICAgICAgIGlmICh0eXBlc0luY2x1ZGVzRW50cnlJdGVtVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soZW50cnlJdGVtKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7IC8vLztcblxuICAgIHJldHVybiBlbnRyeUl0ZW07XG4gIH1cblxuICBmaW5kRW50cnlJdGVtQnlOYW1lQW5kVHlwZXMobmFtZSwgLi4udHlwZXMpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW0gPSB0aGlzLmZpbmRFbnRyeUl0ZW1CeVR5cGVzKChlbnRyeUl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGVudHJ5SXRlbU5hbWUgPSBlbnRyeUl0ZW0uZ2V0TmFtZSgpO1xuXG4gICAgICBpZiAoZW50cnlJdGVtTmFtZSA9PT0gbmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCAuLi50eXBlcykgfHwgbnVsbDtcblxuICAgIHJldHVybiBlbnRyeUl0ZW07XG4gIH1cblxuICBmaW5kRmlsZU5hbWVEcmFnRW50cnlJdGVtKGZpbGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZSA9IGZpbGVOYW1lLCAgLy8vXG4gICAgICAgICAgZW50cnlJdGVtID0gdGhpcy5maW5kRW50cnlJdGVtQnlOYW1lQW5kVHlwZXMobmFtZSwgRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSksXG4gICAgICAgICAgZmlsZU5hbWVEcmFnRW50cnlJdGVtID0gZW50cnlJdGVtOyAgLy8vXG5cbiAgICByZXR1cm4gZmlsZU5hbWVEcmFnRW50cnlJdGVtO1xuICB9XG5cbiAgZmluZERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKGRpcmVjdG9yeU5hbWUpIHtcbiAgICBjb25zdCBlbnRyeUl0ZW0gPSB0aGlzLmZpbmRFbnRyeUl0ZW1CeU5hbWVBbmRUeXBlcyhkaXJlY3RvcnlOYW1lLCBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUpLFxuICAgICAgICAgIGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtID0gZW50cnlJdGVtOyAvLy9cblxuICAgIHJldHVybiBkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbTtcbiAgfVxuXG4gIHJldHJpZXZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGNvbnN0IHsgbWFya2VyRW50cnlJdGVtIH0gPSBnbG9iYWxUaGlzO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbTtcbiAgfVxuXG4gIHJldHJpZXZlRHJhZ0VudHJ5SXRlbXMoZHJhZ0VudHJ5SXRlbXMgPSBbXSkge1xuICAgIHRoaXMuZm9yRWFjaERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKChkaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtOyAvLy9cblxuICAgICAgZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ucmV0cmlldmVEcmFnRW50cnlJdGVtcyhkcmFnRW50cnlJdGVtcyk7XG5cbiAgICAgIGRyYWdFbnRyeUl0ZW1zLnB1c2goZHJhZ0VudHJ5SXRlbSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvckVhY2hGaWxlTmFtZURyYWdFbnRyeUl0ZW0oKGZpbGVOYW1lRHJhZ0VudHJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGZpbGVOYW1lRHJhZ0VudHJ5SXRlbTsgIC8vL1xuXG4gICAgICBkcmFnRW50cnlJdGVtcy5wdXNoKGRyYWdFbnRyeUl0ZW0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRyYWdFbnRyeUl0ZW1zO1xuICB9XG5cbiAgY29sbGFwc2UoKSB7XG5cdCAgdGhpcy5hZGRDbGFzcyhcImNvbGxhcHNlZFwiKTtcbiAgfVxuXG5cdGV4cGFuZCgpIHtcblx0ICB0aGlzLnJlbW92ZUNsYXNzKFwiY29sbGFwc2VkXCIpO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgdG9wbW9zdCA9IHRoaXMuaXNUb3Btb3N0KCk7XG5cbiAgICBpZiAodG9wbW9zdCkge1xuICAgICAgdGhpcy5hZGRDbGFzcyhcInRvcG1vc3RcIik7XG4gICAgfVxuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgLy8vXG4gIH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuXHRcdGNvbnN0IGV4cGFuZEVudHJpZXNMaXN0ID0gdGhpcy5leHBhbmQuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIGNvbGxhcHNlRW50cmllc0xpc3QgPSB0aGlzLmNvbGxhcHNlLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICBpc0VudHJpZXNMaXN0Q29sbGFwc2VkID0gdGhpcy5pc0NvbGxhcHNlZC5iaW5kKHRoaXMpLCAvLy9cbiAgICAgICAgICBpc0VtcHR5ID0gdGhpcy5pc0VtcHR5LmJpbmQodGhpcyksXG4gICAgICAgICAgYWRkTWFya2VyID0gdGhpcy5hZGRNYXJrZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICBhZGRGaWxlUGF0aCA9IHRoaXMuYWRkRmlsZVBhdGguYmluZCh0aGlzKSxcbiAgICAgICAgICByZW1vdmVNYXJrZXIgPSB0aGlzLnJlbW92ZU1hcmtlci5iaW5kKHRoaXMpLFxuICAgICAgICAgIHJlbW92ZUZpbGVQYXRoID0gdGhpcy5yZW1vdmVGaWxlUGF0aC5iaW5kKHRoaXMpLFxuICAgICAgICAgIHJlbW92ZUFsbFBhdGhzID0gdGhpcy5yZW1vdmVBbGxQYXRocy5iaW5kKHRoaXMpLFxuICAgICAgICAgIGFkZERpcmVjdG9yeVBhdGggPSB0aGlzLmFkZERpcmVjdG9yeVBhdGguYmluZCh0aGlzKSxcbiAgICAgICAgICByZW1vdmVEaXJlY3RvcnlQYXRoID0gdGhpcy5yZW1vdmVEaXJlY3RvcnlQYXRoLmJpbmQodGhpcyksXG4gICAgICAgICAgZm9yRWFjaERyYWdFbnRyeUl0ZW0gPSB0aGlzLmZvckVhY2hEcmFnRW50cnlJdGVtLmJpbmQodGhpcyksXG4gICAgICAgICAgcmV0cmlldmVEcmFnRW50cnlJdGVtcyA9IHRoaXMucmV0cmlldmVEcmFnRW50cnlJdGVtcy5iaW5kKHRoaXMpLFxuICAgICAgICAgIHJldHJpZXZlTWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbS5iaW5kKHRoaXMpO1xuXG5cdFx0cmV0dXJuICh7XG4gICAgICBleHBhbmRFbnRyaWVzTGlzdCxcbiAgICAgIGNvbGxhcHNlRW50cmllc0xpc3QsXG4gICAgICBpc0VudHJpZXNMaXN0Q29sbGFwc2VkLFxuICAgICAgaXNFbXB0eSxcbiAgICAgIGFkZE1hcmtlcixcblx0XHRcdGFkZEZpbGVQYXRoLFxuICAgICAgcmVtb3ZlTWFya2VyLFxuICAgICAgcmVtb3ZlRmlsZVBhdGgsXG4gICAgICByZW1vdmVBbGxQYXRocyxcbiAgICAgIGFkZERpcmVjdG9yeVBhdGgsXG4gICAgICByZW1vdmVEaXJlY3RvcnlQYXRoLFxuICAgICAgZm9yRWFjaERyYWdFbnRyeUl0ZW0sXG4gICAgICByZXRyaWV2ZURyYWdFbnRyeUl0ZW1zLFxuICAgICAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW1cblx0XHR9KTtcblx0fVxuXG5cdHN0YXRpYyB0YWdOYW1lID0gXCJ1bFwiO1xuXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcbiAgICBcInRvcG1vc3RcIixcbiAgICBcImV4cGxvcmVyXCJcbiAgXTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImVudHJpZXNcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoRW50cmllc0xpc3QpYFxuXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogJHtlbnRyaWVzTGlzdFBhZGRpbmdMZWZ0fTtcbiAgXG4gIC50b3Btb3N0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgXG4gIC5jb2xsYXBzZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgICAgIFxuYDtcbiJdLCJuYW1lcyI6WyJ0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIiwicGF0aFV0aWxpdGllcyIsInBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCIsIm1hcmtlckVudHJ5SXRlbSIsIk9iamVjdCIsImFzc2lnbiIsImdsb2JhbFRoaXMiLCJFbnRyaWVzTGlzdCIsImlzVG9wbW9zdCIsInRvcG1vc3QiLCJwcm9wZXJ0aWVzIiwiZ2V0RXhwbG9yZXIiLCJleHBsb3JlciIsImdldEVudHJ5SXRlbXMiLCJjaGlsZEVudHJ5SXRlbUVsZW1lbnRzIiwiZ2V0Q2hpbGRFbGVtZW50cyIsImVudHJ5SXRlbXMiLCJnZXRFbnRyeUl0ZW1zTGVuZ3RoIiwiZW50cnlJdGVtc0xlbmd0aCIsImxlbmd0aCIsImlzQ29sbGFwc2VkIiwiY29sbGFwc2VkIiwiaGFzQ2xhc3MiLCJpc0VtcHR5IiwiZW1wdHkiLCJhZGRNYXJrZXIiLCJtYXJrZXJFbnRyeUl0ZW1QYXRoIiwiZHJhZ0VudHJ5SXRlbVR5cGUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsIm1hcmtlckVudHJ5SXRlbU5hbWUiLCJhZGRNYXJrZXJFbnRyeUl0ZW0iLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJmaW5kRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJtYXJrZXJFbnRyeUl0ZW1QYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lIiwicmVtb3ZlTWFya2VyIiwicmVtb3ZlTWFya2VyRW50cnlJdGVtIiwiYWRkRmlsZVBhdGgiLCJmaWxlUGF0aCIsImZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImZpbGVOYW1lIiwiZmluZEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImNyZWF0ZUZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImFkZEVudHJ5SXRlbSIsImNyZWF0ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIiwiZmlsZVBhdGhXaXRob3V0VG9wbW9zdERpcmVjdG9yeU5hbWUiLCJyZW1vdmVGaWxlUGF0aCIsInJlbW92ZUVtcHR5UGFyZW50RGlyZWN0b3JpZXMiLCJyZW1vdmVFbnRyeUl0ZW0iLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW1FbXB0eSIsInJlbW92ZUFsbFBhdGhzIiwicmVtb3ZlRW50cnlJdGVtcyIsImFkZERpcmVjdG9yeVBhdGgiLCJkaXJlY3RvcnlQYXRoIiwiZGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJkaXJlY3RvcnlOYW1lIiwiY29sbGFwc2UiLCJleHBhbmQiLCJkaXJlY3RvcnlQYXRoV2l0aG91dFRvcG1vc3REaXJlY3RvcnlOYW1lIiwicmVtb3ZlRGlyZWN0b3J5UGF0aCIsImVudHJ5SXRlbSIsIm5leHRFbnRyeUl0ZW0iLCJwcmV2aW91c0VudHJ5SXRlbSIsImZpbmRFbnRyeUl0ZW0iLCJuZXh0RW50cnlCZWZvcmVFbnRyeUl0ZW0iLCJpc0JlZm9yZSIsImFwcGVuZCIsImluc2VydEJlZm9yZSIsImV4cGxvcmVyTW91bnRlZCIsImlzTW91bnRlZCIsImVudHJ5SXRlbURlc2NlbmRhbnRFbGVtZW50cyIsImdldERlc2NlbmRhbnRFbGVtZW50cyIsImVudHJ5SXRlbUVsZW1lbnRzIiwicmV2ZXJzZSIsImZvckVhY2giLCJlbnRyeUl0ZW1FbGVtZW50IiwiZGlkTW91bnQiLCJ3aWxsVW5tb3VudCIsInJlbW92ZSIsIm5hbWUiLCJ0eXBlIiwiRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsIkZpbGVOYW1lTWFya2VyRW50cnlJdGVtIiwiZ2V0RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJmaWxlTmFtZU1hcmtlckVudHJ5SXRlbSIsIkRJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsIkRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJnZXREaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIiwiZGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSIsInJldHJpZXZlTWFya2VyRW50cnlJdGVtIiwiRmlsZU5hbWVEcmFnRW50cnlJdGVtIiwiZ2V0RmlsZU5hbWVEcmFnRW50cnlJdGVtIiwiRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJnZXREaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsImlzRmlsZU5hbWVEcmFnRW50cnlJdGVtUHJlc2VudCIsImZpbGVOYW1lRHJhZ0VudHJ5SXRlbVByZXNlbnQiLCJpc0RpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtUHJlc2VudCIsImRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtUHJlc2VudCIsImZvckVhY2hFbnRyeUl0ZW1CeVR5cGVzIiwiY2FsbGJhY2siLCJ0eXBlcyIsImVudHJ5SXRlbVR5cGUiLCJnZXRUeXBlIiwidHlwZXNJbmNsdWRlc0VudHJ5SXRlbVR5cGUiLCJpbmNsdWRlcyIsImZvckVhY2hEcmFnRW50cnlJdGVtIiwiZm9yRWFjaEZpbGVOYW1lRHJhZ0VudHJ5SXRlbSIsImZvckVhY2hEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsInNvbWVFbnRyeUl0ZW1CeVR5cGVzIiwic29tZSIsInJlc3VsdCIsImZpbmQiLCJmaW5kRW50cnlJdGVtQnlUeXBlcyIsImZpbmRFbnRyeUl0ZW1CeU5hbWVBbmRUeXBlcyIsImVudHJ5SXRlbU5hbWUiLCJnZXROYW1lIiwicmV0cmlldmVEcmFnRW50cnlJdGVtcyIsImRyYWdFbnRyeUl0ZW1zIiwiZHJhZ0VudHJ5SXRlbSIsInB1c2giLCJhZGRDbGFzcyIsInJlbW92ZUNsYXNzIiwicGFyZW50Q29udGV4dCIsImV4cGFuZEVudHJpZXNMaXN0IiwiYmluZCIsImNvbGxhcHNlRW50cmllc0xpc3QiLCJpc0VudHJpZXNMaXN0Q29sbGFwc2VkIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIiwiZW50cmllc0xpc3RQYWRkaW5nTGVmdCJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7OztBQUVTLElBQUEsY0FBaUIsa0NBQWpCLGlCQUFpQixFQUFBO0FBRWYsSUFBQSxLQUFNLFdBQU4sTUFBTSxDQUFBO0FBQ0EsSUFBQSxVQUFXLFdBQVgsV0FBVyxDQUFBO0FBRUYsSUFBQSxPQUFXLFdBQVgsV0FBVyxDQUFBO0FBQ3dCLElBQUEsV0FBZSxX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
|
package/lib/rubbishBin.js
CHANGED
|
@@ -35,7 +35,7 @@ function isNativeReflectConstruct() {
|
|
|
35
35
|
return false;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
function _construct(
|
|
38
|
+
function _construct(Parent, args, Class) {
|
|
39
39
|
if (isNativeReflectConstruct()) {
|
|
40
40
|
_construct = Reflect.construct;
|
|
41
41
|
} else {
|
|
@@ -79,11 +79,11 @@ function _defineProperty(obj, key, value) {
|
|
|
79
79
|
}
|
|
80
80
|
return obj;
|
|
81
81
|
}
|
|
82
|
-
function _getPrototypeOf(
|
|
82
|
+
function _getPrototypeOf(o) {
|
|
83
83
|
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
|
|
84
84
|
return o.__proto__ || Object.getPrototypeOf(o);
|
|
85
85
|
};
|
|
86
|
-
return _getPrototypeOf(
|
|
86
|
+
return _getPrototypeOf(o);
|
|
87
87
|
}
|
|
88
88
|
function _inherits(subClass, superClass) {
|
|
89
89
|
if (typeof superClass !== "function" && superClass !== null) {
|
|
@@ -112,12 +112,12 @@ function _possibleConstructorReturn(self, call) {
|
|
|
112
112
|
}
|
|
113
113
|
return _assertThisInitialized(self);
|
|
114
114
|
}
|
|
115
|
-
function _setPrototypeOf(
|
|
115
|
+
function _setPrototypeOf(o, p) {
|
|
116
116
|
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
117
117
|
o.__proto__ = p;
|
|
118
118
|
return o;
|
|
119
119
|
};
|
|
120
|
-
return _setPrototypeOf(
|
|
120
|
+
return _setPrototypeOf(o, p);
|
|
121
121
|
}
|
|
122
122
|
function _taggedTemplateLiteral(strings, raw) {
|
|
123
123
|
if (!raw) {
|
|
@@ -133,7 +133,7 @@ var _typeof = function(obj) {
|
|
|
133
133
|
"@swc/helpers - typeof";
|
|
134
134
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
135
135
|
};
|
|
136
|
-
function _wrapNativeSuper(
|
|
136
|
+
function _wrapNativeSuper(Class) {
|
|
137
137
|
var _cache = typeof Map === "function" ? new Map() : undefined;
|
|
138
138
|
_wrapNativeSuper = function _wrapNativeSuper(Class) {
|
|
139
139
|
if (Class === null || !_isNativeFunction(Class)) return Class;
|
|
@@ -157,7 +157,7 @@ function _wrapNativeSuper(Class2) {
|
|
|
157
157
|
});
|
|
158
158
|
return _setPrototypeOf(Wrapper, Class);
|
|
159
159
|
};
|
|
160
|
-
return _wrapNativeSuper(
|
|
160
|
+
return _wrapNativeSuper(Class);
|
|
161
161
|
}
|
|
162
162
|
function _isNativeReflectConstruct() {
|
|
163
163
|
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
@@ -215,20 +215,6 @@ var RubbishBin = /*#__PURE__*/ function(Element) {
|
|
|
215
215
|
return ignoredReferences;
|
|
216
216
|
}
|
|
217
217
|
},
|
|
218
|
-
{
|
|
219
|
-
key: "getOpenRubbishBinSVG",
|
|
220
|
-
value: function getOpenRubbishBinSVG() {
|
|
221
|
-
var _$OpenRubbishBinSVG = this.constructor.OpenRubbishBinSVG;
|
|
222
|
-
return _$OpenRubbishBinSVG;
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
key: "getClosedRubbishBinSVG",
|
|
227
|
-
value: function getClosedRubbishBinSVG() {
|
|
228
|
-
var _$ClosedRubbishBinSVG = this.constructor.ClosedRubbishBinSVG;
|
|
229
|
-
return _$ClosedRubbishBinSVG;
|
|
230
|
-
}
|
|
231
|
-
},
|
|
232
218
|
{
|
|
233
219
|
key: "retrieveMarkerEntryItem",
|
|
234
220
|
value: function retrieveMarkerEntryItem() {
|
|
@@ -466,7 +452,7 @@ var RubbishBin = /*#__PURE__*/ function(Element) {
|
|
|
466
452
|
{
|
|
467
453
|
key: "childElements",
|
|
468
454
|
value: function childElements() {
|
|
469
|
-
var _$OpenRubbishBinSVG =
|
|
455
|
+
var _constructor = this.constructor, _$OpenRubbishBinSVG = _constructor.OpenRubbishBinSVG, _$ClosedRubbishBinSVG = _constructor.ClosedRubbishBinSVG;
|
|
470
456
|
return [
|
|
471
457
|
/*#__PURE__*/ React.createElement(_$OpenRubbishBinSVG, null),
|
|
472
458
|
/*#__PURE__*/ React.createElement(_$ClosedRubbishBinSVG, null)
|
|
@@ -501,4 +487,4 @@ Object.assign(RubbishBin.prototype, _easyDragAndDrop.dropMixins);
|
|
|
501
487
|
var _default = (0, _easyWithStyle).default(RubbishBin)(_templateObject());
|
|
502
488
|
exports.default = _default;
|
|
503
489
|
|
|
504
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWJiaXNoQmluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBkcm9wTWl4aW5zIH0gZnJvbSBcImVhc3ktZHJhZy1hbmQtZHJvcFwiO1xuaW1wb3J0IHsgRWxlbWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XG5pbXBvcnQgeyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBPcGVuUnViYmlzaEJpblNWRyBmcm9tIFwiLi9zdmcvcnViYmlzaEJpbi9vcGVuXCI7XG5pbXBvcnQgQ2xvc2VkUnViYmlzaEJpblNWRyBmcm9tIFwiLi9zdmcvcnViYmlzaEJpbi9jbG9zZWRcIjtcbmltcG9ydCBGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSBmcm9tIFwiLi9pdGVtL2VudHJ5L21hcmtlci9maWxlTmFtZVwiO1xuaW1wb3J0IERpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gZnJvbSBcIi4vaXRlbS9lbnRyeS9tYXJrZXIvZGlyZWN0b3J5TmFtZVwiO1xuXG5pbXBvcnQgeyBub25OdWxsUGF0aEZyb21OYW1lIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhdGhNYXBcIjtcbmltcG9ydCB7IHNvdXJjZUVudHJ5UGF0aEZyb21EcmFnRW50cnlJdGVtUGF0aCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5pbXBvcnQgeyBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUsIEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUgfSBmcm9tIFwiLi9lbnRyeVR5cGVzXCI7XG5cbmNvbnN0IHsgZm9yRWFjaCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzLFxuICAgICAgeyBSRU1PVkVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcblxuY2xhc3MgUnViYmlzaEJpbiBleHRlbmRzIEVsZW1lbnQge1xuICBpc0V4cGxvcmVySWdub3JlZChleHBsb3Jlcikge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IGV4cGxvcmVyLmdldFJlZmVyZW5jZSgpLFxuICAgICAgICAgIGlnbm9yZWRSZWZlcmVuY2VzID0gdGhpcy5nZXRJZ25vcmVkUmVmZXJlbmNlcygpLFxuICAgICAgICAgIGlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2UgPSBpZ25vcmVkUmVmZXJlbmNlcy5pbmNsdWRlcyhyZWZlcmVuY2UpLFxuICAgICAgICAgIGV4cGxvcmVySWdub3JlZCA9IGlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2U7XHQvLy9cblxuICAgIHJldHVybiBleHBsb3Jlcklnbm9yZWQ7XG4gIH1cblxuICBnZXRJZ25vcmVkUmVmZXJlbmNlcygpIHtcbiAgICBjb25zdCB7IGlnbm9yZWRSZWZlcmVuY2VzID0gW10gfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiBpZ25vcmVkUmVmZXJlbmNlcztcbiAgfVxuXG4gIGdldE9wZW5SdWJiaXNoQmluU1ZHKCkge1xuICAgIGNvbnN0IHsgT3BlblJ1YmJpc2hCaW5TVkcgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICByZXR1cm4gT3BlblJ1YmJpc2hCaW5TVkc7XG4gIH1cblxuICBnZXRDbG9zZWRSdWJiaXNoQmluU1ZHKCkge1xuICAgIGNvbnN0IHsgQ2xvc2VkUnViYmlzaEJpblNWRyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIHJldHVybiBDbG9zZWRSdWJiaXNoQmluU1ZHO1xuICB9XG5cbiAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgeyBtYXJrZXJFbnRyeUl0ZW0gfSA9IGdsb2JhbFRoaXM7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtO1xuICB9XG5cbiAgYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtTmFtZSA9IG1hcmtlckVudHJ5SXRlbVBhdGg7ICAvLy9cblxuICAgIHRoaXMuYWRkTWFya2VyRW50cnlJdGVtKG1hcmtlckVudHJ5SXRlbU5hbWUsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcblxuICAgIHRoaXMub3BlbigpO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyKCkge1xuICAgIHRoaXMucmVtb3ZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuc2hvd09wZW5SdWJiaXNoQmluU1ZHKCk7XG4gICAgdGhpcy5oaWRlQ2xvc2VkUnViYmlzaEJpblNWRygpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5oaWRlT3BlblJ1YmJpc2hCaW5TVkcoKTtcbiAgICB0aGlzLnNob3dDbG9zZWRSdWJiaXNoQmluU1ZHKCk7XG4gIH1cblxuICByZW1vdmVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSB7XG4gICAgY29uc3QgeyBlbnRyeURpcmVjdG9yeSB9ID0gcGF0aE1hcDtcblxuICAgIGVudHJ5RGlyZWN0b3J5ID9cbiAgICAgIHRoaXMucmVtb3ZlRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpIDpcbiAgICAgICAgdGhpcy5yZW1vdmVGaWxlTmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpO1xuICB9XG5cbiAgcmVtb3ZlRHJhZ0VudHJ5SXRlbXMocGF0aE1hcHMsIGV4cGxvcmVyLCBkb25lKSB7XG4gICAgdGhpcy5jYWxsUmVtb3ZlSGFuZGxlcnNBc3luYyhwYXRoTWFwcywgKCkgPT4ge1xuICAgICAgcGF0aE1hcHMuZm9yRWFjaCgocGF0aE1hcCkgPT4gdGhpcy5yZW1vdmVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSk7XG5cbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSkge1xuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW07XG5cbiAgICBjb25zdCBuYW1lID0gbWFya2VyRW50cnlJdGVtTmFtZSwgLy8vXG4gICAgICAgICAgdHlwZSA9IGRyYWdFbnRyeUl0ZW1UeXBlOyAgLy8vXG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICAgIGZpbGVOYW1lTWFya2VyRW50cnlJdGVtID1cblxuICAgICAgICAgICAgICAgIDxGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSBuYW1lPXtuYW1lfSBleHBsb3Jlcj17ZXhwbG9yZXJ9IC8+XG5cbiAgICAgICAgICAgICAgO1xuXG4gICAgICAgIG1hcmtlckVudHJ5SXRlbSA9IGZpbGVOYW1lTWFya2VyRW50cnlJdGVtOyAgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFIDoge1xuICAgICAgICBjb25zdCBleHBsb3JlciA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgICAgZGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSA9XG5cbiAgICAgICAgICAgICAgICA8RGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSBuYW1lPXtuYW1lfSBleHBsb3Jlcj17ZXhwbG9yZXJ9IC8+XG5cbiAgICAgICAgICAgICAgO1xuXG4gICAgICAgIG1hcmtlckVudHJ5SXRlbSA9IGRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW07IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgICAgbWFya2VyRW50cnlJdGVtXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgICAgbWFya2VyRW50cnlJdGVtXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVGaWxlTmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpIHtcbiAgICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcDtcblxuICAgIGlmIChzb3VyY2VFbnRyeVBhdGggPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgLy8vXG5cbiAgICBleHBsb3Jlci5yZW1vdmVGaWxlUGF0aChmaWxlUGF0aCk7XG4gIH1cblxuICByZW1vdmVEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShwYXRoTWFwLCBleHBsb3Jlcikge1xuICAgIGNvbnN0IHsgc291cmNlRW50cnlQYXRoIH0gPSBwYXRoTWFwO1xuXG4gICAgaWYgKHNvdXJjZUVudHJ5UGF0aCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGV4cGxvcmVyLnJlbW92ZURpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCk7XG4gIH1cblxuICBjYWxsUmVtb3ZlSGFuZGxlcnNBc3luYyhwYXRoTWFwcywgZG9uZSkge1xuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFJFTU9WRV9FVkVOVF9UWVBFLFxuICAgICAgICAgIGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcblxuICAgIGZvckVhY2goZXZlbnRMaXN0ZW5lcnMsIChldmVudExpc3RlbmVyLCBuZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQgfSA9IGV2ZW50TGlzdGVuZXIsXG4gICAgICAgICAgICByZW1vdmVIYW5kbGVyID0gaGFuZGxlciwgIC8vL1xuICAgICAgICAgICAgZG9uZSA9IG5leHQ7ICAvLy9cblxuICAgICAgcmVtb3ZlSGFuZGxlci5jYWxsKGVsZW1lbnQsIHBhdGhNYXBzLCBkb25lKTtcbiAgICB9LCBkb25lKTtcbiAgfVxuXG4gIG9uUmVtb3ZlKHJlbW92ZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBldmVudFR5cGUgPSBSRU1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgICBoYW5kbGVyID0gcmVtb3ZlSGFuZGxlcjsgIC8vL1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG4gIH1cblxuICBvZmZSZW1vdmUocmVtb3ZlSGFuZGxlciwgZWxlbWVudCkge1xuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFJFTU9WRV9FVkVOVF9UWVBFLFxuICAgICAgICAgIGhhbmRsZXIgPSByZW1vdmVIYW5kbGVyOyAgLy8vXG5cbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcbiAgfVxuXG4gIGRyb3BIYW5kbGVyKGRyYWdFbGVtZW50LCBhYm9ydGVkLCBlbGVtZW50LCBkb25lKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSgpLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtLmdldEV4cGxvcmVyKCk7XG5cbiAgICBpZiAoYWJvcnRlZCkge1xuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYWdFbnRyeUl0ZW0gPSBkcmFnRWxlbWVudDsgIC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuZHJvcERyYWdFbnRyeUl0ZW0oZHJhZ0VudHJ5SXRlbSwgZG9uZSk7XG4gIH1cblxuICBkcmFnT3ZlckhhbmRsZXIoZHJhZ0VsZW1lbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gZHJhZ0VsZW1lbnQsICAvLy9cbiAgICAgICAgICBkcmFnRW50cnlJdGVtRXhwbG9yZXIgPSBkcmFnRW50cnlJdGVtLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgZHJhZ0VudHJ5SXRlbUV4cGxvcmVySWdub3JlZCA9IHRoaXMuaXNFeHBsb3Jlcklnbm9yZWQoZHJhZ0VudHJ5SXRlbUV4cGxvcmVyKTtcblxuICAgIGlmIChkcmFnRW50cnlJdGVtRXhwbG9yZXJJZ25vcmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSgpO1xuXG4gICAgbGV0IG1hcmtlckVudHJ5SXRlbVBhdGggPSBtYXJrZXJFbnRyeUl0ZW0uZ2V0UGF0aCgpLFxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG1hcmtlckVudHJ5SXRlbS5nZXRFeHBsb3JlcigpLFxuICAgICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbVBhdGggPSBtYXJrZXJFbnRyeUl0ZW1QYXRoLCAvLy9cbiAgICAgICAgcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyOyAvLy9cblxuICAgIG1hcmtlckVudHJ5SXRlbVBhdGggPSBudWxsOyAvLy9cblxuICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gdGhpczsgIC8vL1xuXG4gICAgaWYgKChtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciAhPT0gcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcikgfHwgKG1hcmtlckVudHJ5SXRlbVBhdGggIT09IHByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCkpIHtcbiAgICAgIGNvbnN0IGRyYWdFbnRyeUl0ZW1UeXBlID0gZHJhZ0VudHJ5SXRlbS5nZXRUeXBlKCk7XG5cbiAgICAgIHByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmFkZE1hcmtlcihtYXJrZXJFbnRyeUl0ZW1QYXRoLCBkcmFnRW50cnlJdGVtVHlwZSk7XG4gICAgfVxuICB9XG5cbiAgZHJvcERyYWdFbnRyeUl0ZW0oZHJhZ0VudHJ5SXRlbSwgZG9uZSkge1xuICAgIGNvbnN0IGRyYWdFbnRyeUl0ZW1QYXRoID0gZHJhZ0VudHJ5SXRlbS5nZXRQYXRoKCksXG4gICAgICAgICAgZHJhZ0VudHJ5SXRlbUV4cGxvcmVyID0gZHJhZ0VudHJ5SXRlbS5nZXRFeHBsb3JlcigpLFxuICAgICAgICAgIHNvdXJjZUVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aEZyb21EcmFnRW50cnlJdGVtUGF0aChkcmFnRW50cnlJdGVtUGF0aCksXG4gICAgICAgICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbCxcbiAgICAgICAgICBwYXRoTWFwcyA9IGRyYWdFbnRyeUl0ZW0uZ2V0UGF0aE1hcHMoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpLFxuICAgICAgICAgIGV4cGxvcmVyID0gZHJhZ0VudHJ5SXRlbUV4cGxvcmVyOyAgLy8vXG5cbiAgICB0aGlzLnJlbW92ZURyYWdFbnRyeUl0ZW1zKHBhdGhNYXBzLCBleHBsb3JlciwgKCkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVNYXJrZXIoKTtcblxuICAgICAgZG9uZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBvblJlbW92ZSB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIHJlbW92ZUhhbmRsZXIgPSBvblJlbW92ZTsgLy8vXG5cbiAgICB0aGlzLmVuYWJsZURyb3AoKTtcblxuICAgIHRoaXMub25Ecm9wKHRoaXMuZHJvcEhhbmRsZXIsIHRoaXMpO1xuXG4gICAgdGhpcy5vbkRyYWdPdmVyKHRoaXMuZHJhZ092ZXJIYW5kbGVyLCB0aGlzKTtcblxuICAgIHJlbW92ZUhhbmRsZXIgJiYgdGhpcy5vblJlbW92ZShyZW1vdmVIYW5kbGVyKTtcblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgb25SZW1vdmUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICByZW1vdmVIYW5kbGVyID0gb25SZW1vdmU7IC8vL1xuXG4gICAgdGhpcy5kaXNhYmxlRHJvcCgpO1xuXG4gICAgdGhpcy5vZmZEcm9wKHRoaXMuZHJvcEhhbmRsZXIsIHRoaXMpO1xuXG4gICAgdGhpcy5vZmZEcmFnT3Zlcih0aGlzLmRyYWdPdmVySGFuZGxlciwgdGhpcyk7XG5cbiAgICByZW1vdmVIYW5kbGVyICYmIHRoaXMub2ZmUmVtb3ZlKHJlbW92ZUhhbmRsZXIpO1xuICB9XG5cbiAgZ2V0TWFya2VyRW50cnlJdGVtUGF0aCgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoKSxcbiAgICAgICAgICB7IG1hcmtlckVudHJ5SXRlbVBhdGggfSA9IHN0YXRlO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbVBhdGg7XG4gIH1cblxuICBnZXRNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcigpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoKSxcbiAgICAgICAgICB7IG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIH0gPSBzdGF0ZTtcblxuICAgIHJldHVybiBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcjtcbiAgfVxuXG4gIHNldE1hcmtlckVudHJ5SXRlbVBhdGgobWFya2VyRW50cnlJdGVtUGF0aCkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgbWFya2VyRW50cnlJdGVtUGF0aFxuICAgIH0pO1xuICB9XG5cbiAgc2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIobWFya2VyRW50cnlJdGVtRXhwbG9yZXIpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyXG4gICAgfSk7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IE9wZW5SdWJiaXNoQmluU1ZHID0gdGhpcy5nZXRPcGVuUnViYmlzaEJpblNWRygpLFxuICAgICAgICAgIENsb3NlZFJ1YmJpc2hCaW5TVkcgPSB0aGlzLmdldENsb3NlZFJ1YmJpc2hCaW5TVkcoKTtcblxuICAgIHJldHVybiAoW1xuXG4gICAgICA8T3BlblJ1YmJpc2hCaW5TVkcvPixcbiAgICAgIDxDbG9zZWRSdWJiaXNoQmluU1ZHLz5cblxuICAgIF0pO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICBjb25zdCBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gbnVsbCxcbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG51bGw7XG5cbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbWFya2VyRW50cnlJdGVtUGF0aCxcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgT3BlblJ1YmJpc2hCaW5TVkcgPSBPcGVuUnViYmlzaEJpblNWRztcblxuICBzdGF0aWMgQ2xvc2VkUnViYmlzaEJpblNWRyA9IENsb3NlZFJ1YmJpc2hCaW5TVkc7XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcbiAgICBcIm9uUmVtb3ZlXCIsXG4gICAgXCJpZ25vcmVkUmVmZXJlbmNlc1wiXG4gIF07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJydWJiaXNoLWJpblwiXG4gIH07XG59XG5cbk9iamVjdC5hc3NpZ24oUnViYmlzaEJpbi5wcm90b3R5cGUsIGRyb3BNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoUnViYmlzaEJpbilgXG4gIFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBcbmA7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsIlJFTU9WRV9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIlJ1YmJpc2hCaW4iLCJpc0V4cGxvcmVySWdub3JlZCIsImV4cGxvcmVyIiwicmVmZXJlbmNlIiwiZ2V0UmVmZXJlbmNlIiwiaWdub3JlZFJlZmVyZW5jZXMiLCJnZXRJZ25vcmVkUmVmZXJlbmNlcyIsImlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2UiLCJpbmNsdWRlcyIsImV4cGxvcmVySWdub3JlZCIsInByb3BlcnRpZXMiLCJnZXRPcGVuUnViYmlzaEJpblNWRyIsIk9wZW5SdWJiaXNoQmluU1ZHIiwiY29uc3RydWN0b3IiLCJnZXRDbG9zZWRSdWJiaXNoQmluU1ZHIiwiQ2xvc2VkUnViYmlzaEJpblNWRyIsInJldHJpZXZlTWFya2VyRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtIiwiZ2xvYmFsVGhpcyIsImFkZE1hcmtlciIsIm1hcmtlckVudHJ5SXRlbVBhdGgiLCJkcmFnRW50cnlJdGVtVHlwZSIsIm1hcmtlckVudHJ5SXRlbU5hbWUiLCJhZGRNYXJrZXJFbnRyeUl0ZW0iLCJvcGVuIiwicmVtb3ZlTWFya2VyIiwicmVtb3ZlTWFya2VyRW50cnlJdGVtIiwiY2xvc2UiLCJzaG93T3BlblJ1YmJpc2hCaW5TVkciLCJoaWRlQ2xvc2VkUnViYmlzaEJpblNWRyIsImhpZGVPcGVuUnViYmlzaEJpblNWRyIsInNob3dDbG9zZWRSdWJiaXNoQmluU1ZHIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbSIsInBhdGhNYXAiLCJlbnRyeURpcmVjdG9yeSIsInJlbW92ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIiwicmVtb3ZlRmlsZU5hbWVEcmFnRW50cnlJdGVtIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbXMiLCJwYXRoTWFwcyIsImRvbmUiLCJjYWxsUmVtb3ZlSGFuZGxlcnNBc3luYyIsIm5hbWUiLCJ0eXBlIiwiRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsImZpbGVOYW1lTWFya2VyRW50cnlJdGVtIiwiRmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIiwiRGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSIsIk9iamVjdCIsImFzc2lnbiIsInNvdXJjZUVudHJ5UGF0aCIsImZpbGVQYXRoIiwicmVtb3ZlRmlsZVBhdGgiLCJkaXJlY3RvcnlQYXRoIiwicmVtb3ZlRGlyZWN0b3J5UGF0aCIsImV2ZW50VHlwZSIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZXZlbnRMaXN0ZW5lciIsIm5leHQiLCJoYW5kbGVyIiwiZWxlbWVudCIsInJlbW92ZUhhbmRsZXIiLCJjYWxsIiwib25SZW1vdmUiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmUmVtb3ZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRyb3BIYW5kbGVyIiwiZHJhZ0VsZW1lbnQiLCJhYm9ydGVkIiwibWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJnZXRFeHBsb3JlciIsImRyYWdFbnRyeUl0ZW0iLCJkcm9wRHJhZ0VudHJ5SXRlbSIsImRyYWdPdmVySGFuZGxlciIsImRyYWdFbnRyeUl0ZW1FeHBsb3JlciIsImRyYWdFbnRyeUl0ZW1FeHBsb3Jlcklnbm9yZWQiLCJnZXRQYXRoIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsImdldFR5cGUiLCJkcmFnRW50cnlJdGVtUGF0aCIsInNvdXJjZUVudHJ5UGF0aEZyb21EcmFnRW50cnlJdGVtUGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImdldFBhdGhNYXBzIiwiZGlkTW91bnQiLCJlbmFibGVEcm9wIiwib25Ecm9wIiwib25EcmFnT3ZlciIsIndpbGxVbm1vdW50IiwiZGlzYWJsZURyb3AiLCJvZmZEcm9wIiwib2ZmRHJhZ092ZXIiLCJnZXRNYXJrZXJFbnRyeUl0ZW1QYXRoIiwic3RhdGUiLCJnZXRTdGF0ZSIsImdldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwic2V0TWFya2VyRW50cnlJdGVtUGF0aCIsInVwZGF0ZVN0YXRlIiwic2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJjaGlsZEVsZW1lbnRzIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJzZXRTdGF0ZSIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsInByb3RvdHlwZSIsImRyb3BNaXhpbnMiLCJ3aXRoU3R5bGUiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7QUFFUyxJQUFBLGNBQWlCLGtDQUFqQixpQkFBaUIsRUFBQTtBQUVaLElBQUEsZ0JBQW9CLFdBQXBCLG9CQUFvQixDQUFBO0FBQ1gsSUFBQSxLQUFNLFdBQU4sTUFBTSxDQUFBO0FBQ0osSUFBQSxVQUFXLFdBQVgsV0FBVyxDQUFBO0FBRW5CLElBQUEsS0FBdUIsa0NBQXZCLHVCQUF1QixFQUFBO0FBQ3JCLElBQUEsT0FBeUIsa0NBQXpCLHlCQUF5QixFQUFBO0FBQ3JCLElBQUEsU0FBOEIsa0NBQTlCLDhCQUE4QixFQUFBO0FBQ3pCLElBQUEsY0FBbUMsa0NBQW5DLG1DQUFtQyxFQUFBO0FBRXhDLElBQUEsUUFBcUIsV0FBckIscUJBQXFCLENBQUE7QUFFaUIsSUFBQSxXQUFjLFdBQWQsY0FBYyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
490
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWJiaXNoQmluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBkcm9wTWl4aW5zIH0gZnJvbSBcImVhc3ktZHJhZy1hbmQtZHJvcFwiO1xuaW1wb3J0IHsgRWxlbWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XG5pbXBvcnQgeyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBPcGVuUnViYmlzaEJpblNWRyBmcm9tIFwiLi9zdmcvcnViYmlzaEJpbi9vcGVuXCI7XG5pbXBvcnQgQ2xvc2VkUnViYmlzaEJpblNWRyBmcm9tIFwiLi9zdmcvcnViYmlzaEJpbi9jbG9zZWRcIjtcbmltcG9ydCBGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSBmcm9tIFwiLi9pdGVtL2VudHJ5L21hcmtlci9maWxlTmFtZVwiO1xuaW1wb3J0IERpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gZnJvbSBcIi4vaXRlbS9lbnRyeS9tYXJrZXIvZGlyZWN0b3J5TmFtZVwiO1xuXG5pbXBvcnQgeyBub25OdWxsUGF0aEZyb21OYW1lIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhdGhNYXBcIjtcbmltcG9ydCB7IHNvdXJjZUVudHJ5UGF0aEZyb21EcmFnRW50cnlJdGVtUGF0aCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5pbXBvcnQgeyBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUsIEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUgfSBmcm9tIFwiLi9lbnRyeVR5cGVzXCI7XG5cbmNvbnN0IHsgZm9yRWFjaCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzLFxuICAgICAgeyBSRU1PVkVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcblxuY2xhc3MgUnViYmlzaEJpbiBleHRlbmRzIEVsZW1lbnQge1xuICBpc0V4cGxvcmVySWdub3JlZChleHBsb3Jlcikge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IGV4cGxvcmVyLmdldFJlZmVyZW5jZSgpLFxuICAgICAgICAgIGlnbm9yZWRSZWZlcmVuY2VzID0gdGhpcy5nZXRJZ25vcmVkUmVmZXJlbmNlcygpLFxuICAgICAgICAgIGlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2UgPSBpZ25vcmVkUmVmZXJlbmNlcy5pbmNsdWRlcyhyZWZlcmVuY2UpLFxuICAgICAgICAgIGV4cGxvcmVySWdub3JlZCA9IGlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2U7XHQvLy9cblxuICAgIHJldHVybiBleHBsb3Jlcklnbm9yZWQ7XG4gIH1cblxuICBnZXRJZ25vcmVkUmVmZXJlbmNlcygpIHtcbiAgICBjb25zdCB7IGlnbm9yZWRSZWZlcmVuY2VzID0gW10gfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiBpZ25vcmVkUmVmZXJlbmNlcztcbiAgfVxuXG4gIHJldHJpZXZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGNvbnN0IHsgbWFya2VyRW50cnlJdGVtIH0gPSBnbG9iYWxUaGlzO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbTtcbiAgfVxuXG4gIGFkZE1hcmtlcihtYXJrZXJFbnRyeUl0ZW1QYXRoLCBkcmFnRW50cnlJdGVtVHlwZSkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbU5hbWUgPSBtYXJrZXJFbnRyeUl0ZW1QYXRoOyAgLy8vXG5cbiAgICB0aGlzLmFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSk7XG5cbiAgICB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIHJlbW92ZU1hcmtlcigpIHtcbiAgICB0aGlzLnJlbW92ZU1hcmtlckVudHJ5SXRlbSgpO1xuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLnNob3dPcGVuUnViYmlzaEJpblNWRygpO1xuICAgIHRoaXMuaGlkZUNsb3NlZFJ1YmJpc2hCaW5TVkcoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaGlkZU9wZW5SdWJiaXNoQmluU1ZHKCk7XG4gICAgdGhpcy5zaG93Q2xvc2VkUnViYmlzaEJpblNWRygpO1xuICB9XG5cbiAgcmVtb3ZlRHJhZ0VudHJ5SXRlbShwYXRoTWFwLCBleHBsb3Jlcikge1xuICAgIGNvbnN0IHsgZW50cnlEaXJlY3RvcnkgfSA9IHBhdGhNYXA7XG5cbiAgICBlbnRyeURpcmVjdG9yeSA/XG4gICAgICB0aGlzLnJlbW92ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSA6XG4gICAgICAgIHRoaXMucmVtb3ZlRmlsZU5hbWVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKTtcbiAgfVxuXG4gIHJlbW92ZURyYWdFbnRyeUl0ZW1zKHBhdGhNYXBzLCBleHBsb3JlciwgZG9uZSkge1xuICAgIHRoaXMuY2FsbFJlbW92ZUhhbmRsZXJzQXN5bmMocGF0aE1hcHMsICgpID0+IHtcbiAgICAgIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHRoaXMucmVtb3ZlRHJhZ0VudHJ5SXRlbShwYXRoTWFwLCBleHBsb3JlcikpO1xuXG4gICAgICBkb25lKCk7XG4gICAgfSk7XG4gIH1cblxuICBhZGRNYXJrZXJFbnRyeUl0ZW0obWFya2VyRW50cnlJdGVtTmFtZSwgZHJhZ0VudHJ5SXRlbVR5cGUpIHtcbiAgICBsZXQgbWFya2VyRW50cnlJdGVtO1xuXG4gICAgY29uc3QgbmFtZSA9IG1hcmtlckVudHJ5SXRlbU5hbWUsIC8vL1xuICAgICAgICAgIHR5cGUgPSBkcmFnRW50cnlJdGVtVHlwZTsgIC8vL1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUgOiB7XG4gICAgICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgICBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbSA9XG5cbiAgICAgICAgICAgICAgICA8RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbTsgIC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICAgIGRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gPVxuXG4gICAgICAgICAgICAgICAgPERpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IG51bGw7XG5cbiAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlRmlsZU5hbWVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSB7XG4gICAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXA7XG5cbiAgICBpZiAoc291cmNlRW50cnlQYXRoID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7IC8vL1xuXG4gICAgZXhwbG9yZXIucmVtb3ZlRmlsZVBhdGgoZmlsZVBhdGgpO1xuICB9XG5cbiAgcmVtb3ZlRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpIHtcbiAgICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcDtcblxuICAgIGlmIChzb3VyY2VFbnRyeVBhdGggPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG5cbiAgICBleHBsb3Jlci5yZW1vdmVEaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgpO1xuICB9XG5cbiAgY2FsbFJlbW92ZUhhbmRsZXJzQXN5bmMocGF0aE1hcHMsIGRvbmUpIHtcbiAgICBjb25zdCBldmVudFR5cGUgPSBSRU1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgICBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XG5cbiAgICBmb3JFYWNoKGV2ZW50TGlzdGVuZXJzLCAoZXZlbnRMaXN0ZW5lciwgbmV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBoYW5kbGVyLCBlbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxuICAgICAgICAgICAgcmVtb3ZlSGFuZGxlciA9IGhhbmRsZXIsICAvLy9cbiAgICAgICAgICAgIGRvbmUgPSBuZXh0OyAgLy8vXG5cbiAgICAgIHJlbW92ZUhhbmRsZXIuY2FsbChlbGVtZW50LCBwYXRoTWFwcywgZG9uZSk7XG4gICAgfSwgZG9uZSk7XG4gIH1cblxuICBvblJlbW92ZShyZW1vdmVIYW5kbGVyLCBlbGVtZW50KSB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gUkVNT1ZFX0VWRU5UX1RZUEUsXG4gICAgICAgICAgaGFuZGxlciA9IHJlbW92ZUhhbmRsZXI7ICAvLy9cblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xuICB9XG5cbiAgb2ZmUmVtb3ZlKHJlbW92ZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBldmVudFR5cGUgPSBSRU1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgICBoYW5kbGVyID0gcmVtb3ZlSGFuZGxlcjsgIC8vL1xuXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG4gIH1cblxuICBkcm9wSGFuZGxlcihkcmFnRWxlbWVudCwgYWJvcnRlZCwgZWxlbWVudCwgZG9uZSkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IHRoaXMucmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSxcbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG1hcmtlckVudHJ5SXRlbS5nZXRFeHBsb3JlcigpO1xuXG4gICAgaWYgKGFib3J0ZWQpIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLnJlbW92ZU1hcmtlcigpO1xuXG4gICAgICBkb25lKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gZHJhZ0VsZW1lbnQ7ICAvLy9cblxuICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmRyb3BEcmFnRW50cnlJdGVtKGRyYWdFbnRyeUl0ZW0sIGRvbmUpO1xuICB9XG5cbiAgZHJhZ092ZXJIYW5kbGVyKGRyYWdFbGVtZW50LCBlbGVtZW50KSB7XG4gICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGRyYWdFbGVtZW50LCAgLy8vXG4gICAgICAgICAgZHJhZ0VudHJ5SXRlbUV4cGxvcmVyID0gZHJhZ0VudHJ5SXRlbS5nZXRFeHBsb3JlcigpLFxuICAgICAgICAgIGRyYWdFbnRyeUl0ZW1FeHBsb3Jlcklnbm9yZWQgPSB0aGlzLmlzRXhwbG9yZXJJZ25vcmVkKGRyYWdFbnRyeUl0ZW1FeHBsb3Jlcik7XG5cbiAgICBpZiAoZHJhZ0VudHJ5SXRlbUV4cGxvcmVySWdub3JlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IHRoaXMucmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKTtcblxuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gbWFya2VyRW50cnlJdGVtLmdldFBhdGgoKSxcbiAgICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoID0gbWFya2VyRW50cnlJdGVtUGF0aCwgLy8vXG4gICAgICAgIHByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcjsgLy8vXG5cbiAgICBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gbnVsbDsgLy8vXG5cbiAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IHRoaXM7ICAvLy9cblxuICAgIGlmICgobWFya2VyRW50cnlJdGVtRXhwbG9yZXIgIT09IHByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIpIHx8IChtYXJrZXJFbnRyeUl0ZW1QYXRoICE9PSBwcmV2aW91c01hcmtlckVudHJ5SXRlbVBhdGgpKSB7XG4gICAgICBjb25zdCBkcmFnRW50cnlJdGVtVHlwZSA9IGRyYWdFbnRyeUl0ZW0uZ2V0VHlwZSgpO1xuXG4gICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyLnJlbW92ZU1hcmtlcigpO1xuXG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlci5hZGRNYXJrZXIobWFya2VyRW50cnlJdGVtUGF0aCwgZHJhZ0VudHJ5SXRlbVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIGRyb3BEcmFnRW50cnlJdGVtKGRyYWdFbnRyeUl0ZW0sIGRvbmUpIHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtUGF0aCA9IGRyYWdFbnRyeUl0ZW0uZ2V0UGF0aCgpLFxuICAgICAgICAgIGRyYWdFbnRyeUl0ZW1FeHBsb3JlciA9IGRyYWdFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBzb3VyY2VFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGhGcm9tRHJhZ0VudHJ5SXRlbVBhdGgoZHJhZ0VudHJ5SXRlbVBhdGgpLFxuICAgICAgICAgIHRhcmdldEVudHJ5UGF0aCA9IG51bGwsXG4gICAgICAgICAgcGF0aE1hcHMgPSBkcmFnRW50cnlJdGVtLmdldFBhdGhNYXBzKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKSxcbiAgICAgICAgICBleHBsb3JlciA9IGRyYWdFbnRyeUl0ZW1FeHBsb3JlcjsgIC8vL1xuXG4gICAgdGhpcy5yZW1vdmVEcmFnRW50cnlJdGVtcyhwYXRoTWFwcywgZXhwbG9yZXIsICgpID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgb25SZW1vdmUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICByZW1vdmVIYW5kbGVyID0gb25SZW1vdmU7IC8vL1xuXG4gICAgdGhpcy5lbmFibGVEcm9wKCk7XG5cbiAgICB0aGlzLm9uRHJvcCh0aGlzLmRyb3BIYW5kbGVyLCB0aGlzKTtcblxuICAgIHRoaXMub25EcmFnT3Zlcih0aGlzLmRyYWdPdmVySGFuZGxlciwgdGhpcyk7XG5cbiAgICByZW1vdmVIYW5kbGVyICYmIHRoaXMub25SZW1vdmUocmVtb3ZlSGFuZGxlcik7XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICB3aWxsVW5tb3VudCgpIHtcbiAgICBjb25zdCB7IG9uUmVtb3ZlIH0gPSB0aGlzLnByb3BlcnRpZXMsXG4gICAgICAgICAgcmVtb3ZlSGFuZGxlciA9IG9uUmVtb3ZlOyAvLy9cblxuICAgIHRoaXMuZGlzYWJsZURyb3AoKTtcblxuICAgIHRoaXMub2ZmRHJvcCh0aGlzLmRyb3BIYW5kbGVyLCB0aGlzKTtcblxuICAgIHRoaXMub2ZmRHJhZ092ZXIodGhpcy5kcmFnT3ZlckhhbmRsZXIsIHRoaXMpO1xuXG4gICAgcmVtb3ZlSGFuZGxlciAmJiB0aGlzLm9mZlJlbW92ZShyZW1vdmVIYW5kbGVyKTtcbiAgfVxuXG4gIGdldE1hcmtlckVudHJ5SXRlbVBhdGgoKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXG4gICAgICAgICAgeyBtYXJrZXJFbnRyeUl0ZW1QYXRoIH0gPSBzdGF0ZTtcblxuICAgIHJldHVybiBtYXJrZXJFbnRyeUl0ZW1QYXRoO1xuICB9XG5cbiAgZ2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIoKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXG4gICAgICAgICAgeyBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciB9ID0gc3RhdGU7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7XG4gIH1cblxuICBzZXRNYXJrZXJFbnRyeUl0ZW1QYXRoKG1hcmtlckVudHJ5SXRlbVBhdGgpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGhcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlclxuICAgIH0pO1xuICB9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcbiAgICBjb25zdCB7IE9wZW5SdWJiaXNoQmluU1ZHLCBDbG9zZWRSdWJiaXNoQmluU1ZHIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgcmV0dXJuIChbXG5cbiAgICAgIDxPcGVuUnViYmlzaEJpblNWRy8+LFxuICAgICAgPENsb3NlZFJ1YmJpc2hCaW5TVkcvPlxuXG4gICAgXSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbVBhdGggPSBudWxsLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbnVsbDtcblxuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1QYXRoLFxuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXJcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBPcGVuUnViYmlzaEJpblNWRyA9IE9wZW5SdWJiaXNoQmluU1ZHO1xuXG4gIHN0YXRpYyBDbG9zZWRSdWJiaXNoQmluU1ZHID0gQ2xvc2VkUnViYmlzaEJpblNWRztcblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwib25SZW1vdmVcIixcbiAgICBcImlnbm9yZWRSZWZlcmVuY2VzXCJcbiAgXTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInJ1YmJpc2gtYmluXCJcbiAgfTtcbn1cblxuT2JqZWN0LmFzc2lnbihSdWJiaXNoQmluLnByb3RvdHlwZSwgZHJvcE1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShSdWJiaXNoQmluKWBcbiAgXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIFxuYDtcbiJdLCJuYW1lcyI6WyJmb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiUkVNT1ZFX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiUnViYmlzaEJpbiIsImlzRXhwbG9yZXJJZ25vcmVkIiwiZXhwbG9yZXIiLCJyZWZlcmVuY2UiLCJnZXRSZWZlcmVuY2UiLCJpZ25vcmVkUmVmZXJlbmNlcyIsImdldElnbm9yZWRSZWZlcmVuY2VzIiwiaWdub3JlZFJlZmVyZW5jZXNJbmNsdWRlc1JlZmVyZW5jZSIsImluY2x1ZGVzIiwiZXhwbG9yZXJJZ25vcmVkIiwicHJvcGVydGllcyIsInJldHJpZXZlTWFya2VyRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtIiwiZ2xvYmFsVGhpcyIsImFkZE1hcmtlciIsIm1hcmtlckVudHJ5SXRlbVBhdGgiLCJkcmFnRW50cnlJdGVtVHlwZSIsIm1hcmtlckVudHJ5SXRlbU5hbWUiLCJhZGRNYXJrZXJFbnRyeUl0ZW0iLCJvcGVuIiwicmVtb3ZlTWFya2VyIiwicmVtb3ZlTWFya2VyRW50cnlJdGVtIiwiY2xvc2UiLCJzaG93T3BlblJ1YmJpc2hCaW5TVkciLCJoaWRlQ2xvc2VkUnViYmlzaEJpblNWRyIsImhpZGVPcGVuUnViYmlzaEJpblNWRyIsInNob3dDbG9zZWRSdWJiaXNoQmluU1ZHIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbSIsInBhdGhNYXAiLCJlbnRyeURpcmVjdG9yeSIsInJlbW92ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIiwicmVtb3ZlRmlsZU5hbWVEcmFnRW50cnlJdGVtIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbXMiLCJwYXRoTWFwcyIsImRvbmUiLCJjYWxsUmVtb3ZlSGFuZGxlcnNBc3luYyIsIm5hbWUiLCJ0eXBlIiwiRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsImZpbGVOYW1lTWFya2VyRW50cnlJdGVtIiwiRmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIiwiRGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSIsIk9iamVjdCIsImFzc2lnbiIsInNvdXJjZUVudHJ5UGF0aCIsImZpbGVQYXRoIiwicmVtb3ZlRmlsZVBhdGgiLCJkaXJlY3RvcnlQYXRoIiwicmVtb3ZlRGlyZWN0b3J5UGF0aCIsImV2ZW50VHlwZSIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZXZlbnRMaXN0ZW5lciIsIm5leHQiLCJoYW5kbGVyIiwiZWxlbWVudCIsInJlbW92ZUhhbmRsZXIiLCJjYWxsIiwib25SZW1vdmUiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmUmVtb3ZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRyb3BIYW5kbGVyIiwiZHJhZ0VsZW1lbnQiLCJhYm9ydGVkIiwibWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJnZXRFeHBsb3JlciIsImRyYWdFbnRyeUl0ZW0iLCJkcm9wRHJhZ0VudHJ5SXRlbSIsImRyYWdPdmVySGFuZGxlciIsImRyYWdFbnRyeUl0ZW1FeHBsb3JlciIsImRyYWdFbnRyeUl0ZW1FeHBsb3Jlcklnbm9yZWQiLCJnZXRQYXRoIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsImdldFR5cGUiLCJkcmFnRW50cnlJdGVtUGF0aCIsInNvdXJjZUVudHJ5UGF0aEZyb21EcmFnRW50cnlJdGVtUGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImdldFBhdGhNYXBzIiwiZGlkTW91bnQiLCJlbmFibGVEcm9wIiwib25Ecm9wIiwib25EcmFnT3ZlciIsIndpbGxVbm1vdW50IiwiZGlzYWJsZURyb3AiLCJvZmZEcm9wIiwib2ZmRHJhZ092ZXIiLCJnZXRNYXJrZXJFbnRyeUl0ZW1QYXRoIiwic3RhdGUiLCJnZXRTdGF0ZSIsImdldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwic2V0TWFya2VyRW50cnlJdGVtUGF0aCIsInVwZGF0ZVN0YXRlIiwic2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJjaGlsZEVsZW1lbnRzIiwiY29uc3RydWN0b3IiLCJPcGVuUnViYmlzaEJpblNWRyIsIkNsb3NlZFJ1YmJpc2hCaW5TVkciLCJpbml0aWFsaXNlIiwiYXNzaWduQ29udGV4dCIsInNldFN0YXRlIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwicHJvdG90eXBlIiwiZHJvcE1peGlucyIsIndpdGhTdHlsZSJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7OztBQUVTLElBQUEsY0FBaUIsa0NBQWpCLGlCQUFpQixFQUFBO0FBRVosSUFBQSxnQkFBb0IsV0FBcEIsb0JBQW9CLENBQUE7QUFDWCxJQUFBLEtBQU0sV0FBTixNQUFNLENBQUE7QUFDSixJQUFBLFVBQVcsV0FBWCxXQUFXLENBQUE7QUFFbkIsSUFBQSxLQUF1QixrQ0FBdkIsdUJBQXVCLEVBQUE7QUFDckIsSUFBQSxPQUF5QixrQ0FBekIseUJBQXlCLEVBQUE7QUFDckIsSUFBQSxTQUE4QixrQ0FBOUIsOEJBQThCLEVBQUE7QUFDekIsSUFBQSxjQUFtQyxrQ0FBbkMsbUNBQW1DLEVBQUE7QUFFeEMsSUFBQSxRQUFxQixXQUFyQixxQkFBcUIsQ0FBQTtBQUVpQixJQUFBLFdBQWMsV0FBZCxjQUFjLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4RixJQUFNLEFBQUVBLE9BQU8sR0FBS0MsVUFBcUIsc0JBQUEsQ0FBakNELE9BQU8sQUFBMEIsRUFDbkMsQUFBRUUsaUJBQWlCLEdBQUtDLEtBQVUsV0FBQSxDQUFoQ0QsaUJBQWlCLEFBQWUsQUFBQztBQUV6QyxJQUFBLEFBQU1FLFVBQVUsaUJBMFRiLEFBMVRIOzs7YUFBTUEsVUFBVTs7Ozs7O1lBQ2RDLEdBQWlCLEVBQWpCQSxtQkFBaUI7bUJBQWpCQSxTQUFBQSxpQkFBaUIsQ0FBQ0MsUUFBUSxFQUFFO2dCQUMxQixJQUFNQyxTQUFTLEdBQUdELFFBQVEsQ0FBQ0UsWUFBWSxF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
|