easy-richtextarea 4.0.29 → 4.0.31
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 +10 -15
- package/lib/richTextarea.js +3 -15
- package/lib/selection.js +8 -1
- package/package.json +1 -1
- package/src/richTextarea.js +2 -10
- package/src/selection.js +12 -4
package/lib/richTextarea.js
CHANGED
|
@@ -500,18 +500,6 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
|
|
|
500
500
|
this.setSelection(selection, setPreviousSelection);
|
|
501
501
|
}
|
|
502
502
|
},
|
|
503
|
-
{
|
|
504
|
-
key: "activateSelectionChangeHandler",
|
|
505
|
-
value: function activateSelectionChangeHandler() {
|
|
506
|
-
_easy.document.on(_eventTypes.SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
507
|
-
}
|
|
508
|
-
},
|
|
509
|
-
{
|
|
510
|
-
key: "deactivateSelectionChangeHandler",
|
|
511
|
-
value: function deactivateSelectionChangeHandler() {
|
|
512
|
-
_easy.document.off(_eventTypes.SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
513
|
-
}
|
|
514
|
-
},
|
|
515
503
|
{
|
|
516
504
|
key: "activate",
|
|
517
505
|
value: function activate() {
|
|
@@ -524,7 +512,7 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
|
|
|
524
512
|
this.on(_eventTypes.SCROLL_EVENT_TYPE, this.scrollHandler);
|
|
525
513
|
this.on(_eventTypes.KEYDOWN_EVENT_TYPE, this.keyDownHandler);
|
|
526
514
|
this.on(_eventTypes.CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
527
|
-
this.
|
|
515
|
+
_easy.document.on(_eventTypes.SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
528
516
|
this.addClass("active");
|
|
529
517
|
}
|
|
530
518
|
},
|
|
@@ -540,7 +528,7 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
|
|
|
540
528
|
this.off(_eventTypes.SCROLL_EVENT_TYPE, this.scrollHandler);
|
|
541
529
|
this.off(_eventTypes.KEYDOWN_EVENT_TYPE, this.keyDownHandler);
|
|
542
530
|
this.off(_eventTypes.CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
543
|
-
this.
|
|
531
|
+
_easy.document.off(_eventTypes.SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
544
532
|
this.removeClass("active");
|
|
545
533
|
}
|
|
546
534
|
},
|
|
@@ -662,4 +650,4 @@ function defer(func) {
|
|
|
662
650
|
setTimeout(func, 0);
|
|
663
651
|
}
|
|
664
652
|
|
|
665
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyBFbGVtZW50LCBkb2N1bWVudCB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcbmltcG9ydCBVbmRvQnVmZmVyIGZyb20gXCIuL3VuZG9CdWZmZXJcIjtcclxuaW1wb3J0IGV2ZW50TWl4aW5zIGZyb20gXCIuL21peGlucy9ldmVudFwiO1xyXG5pbXBvcnQgSW5zZXJ0T3BlcmF0aW9uIGZyb20gXCIuL29wZXJhdGlvbi9pbnNlcnRcIjtcclxuaW1wb3J0IERlbGV0ZU9wZXJhdGlvbiBmcm9tIFwiLi9vcGVyYXRpb24vZGVsZXRlXCI7XHJcbmltcG9ydCB0cmFuc2Zvcm1Db250ZW50IGZyb20gXCIuL3RyYW5zZm9ybS9jb250ZW50XCI7XHJcbmltcG9ydCB0cmFuc2Zvcm1TZWxlY3Rpb24gZnJvbSBcIi4vdHJhbnNmb3JtL3NlbGVjdGlvblwiO1xyXG5pbXBvcnQgZ2VuZXJhdGVPcGVyYXRpb25zIGZyb20gXCIuL29wZXJhdGlvbnMvZ2VuZXJhdGVcIjtcclxuXHJcbmltcG9ydCB7IFRFWFQsIEVNUFRZX1NUUklORyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGX0tFWV9DT0RFLCBaX0tFWV9DT0RFIH0gZnJvbSBcIi4va2V5Q29kZXNcIjtcclxuaW1wb3J0IHsgQ1VUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENPUFlfRVZFTlRfVFlQRSxcclxuICAgICAgICAgRklORF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIFBBU1RFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIElOUFVUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgS0VZRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBDT05URVhUTUVOVV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSB9IGZyb20gXCIuL2V2ZW50VHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJpY2hUZXh0YXJlYSBleHRlbmRzIEVsZW1lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yLCBmb2N1c2VkLCByZWFkT25seSwgdW5kb0J1ZmZlcikge1xyXG4gICAgc3VwZXIoc2VsZWN0b3IpO1xyXG5cclxuICAgIHRoaXMuZm9jdXNlZCA9IGZvY3VzZWQ7XHJcbiAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XHJcbiAgICB0aGlzLnVuZG9CdWZmZXIgPSB1bmRvQnVmZmVyO1xyXG4gIH1cclxuXHJcbiAgaXNGb2N1c2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZDtcclxuICB9XHJcblxyXG4gIGlzUmVhZE9ubHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkT25seTtcclxuICB9XHJcblxyXG4gIGdldFVuZG9CdWZmZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51bmRvQnVmZmVyO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXNlZChmb2N1c2VkKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmb2N1c2VkO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkocmVhZE9ubHkpIHtcclxuICAgIHRoaXMucmVhZE9ubHkgPSByZWFkT25seTtcclxuICB9XHJcblxyXG4gIGN1dEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbXB0eSA9IHNlbGVjdGlvbi5pc0VtcHR5KCk7XHJcblxyXG4gICAgaWYgKHNlbGVjdGlvbkVtcHR5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZENvbnRlbnQgPSB0aGlzLmdldFNlbGVjdGVkQ29udGVudCgpO1xyXG5cclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlbGVjdGVkQ29udGVudCk7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgZGVsZXRlT3BlcmF0aW9uID0gRGVsZXRlT3BlcmF0aW9uLmZyb21Db250ZW50QW5kU2VsZWN0aW9uKGNvbnRlbnQsIHNlbGVjdGlvbiksXHJcbiAgICAgICAgICBvcGVyYXRpb24gPSBkZWxldGVPcGVyYXRpb247ICAvLy9cclxuXHJcbiAgICB0aGlzLmFwcGx5T3BlcmF0aW9uKG9wZXJhdGlvbik7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgY29weUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbXB0eSA9IHNlbGVjdGlvbi5pc0VtcHR5KCk7XHJcblxyXG4gICAgaWYgKHNlbGVjdGlvbkVtcHR5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZENvbnRlbnQgPSB0aGlzLmdldFNlbGVjdGVkQ29udGVudCgpO1xyXG5cclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlbGVjdGVkQ29udGVudCk7XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIHBhc3RlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgeyBjbGlwYm9hcmREYXRhIH0gPSBldmVudCxcclxuICAgICAgICAgIHRleHREYXRhID0gY2xpcGJvYXJkRGF0YS5nZXREYXRhKFRFWFQpO1xyXG5cclxuICAgIGlmICh0ZXh0RGF0YSA9PT0gRU1QVFlfU1RSSU5HKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW1wdHkgPSBzZWxlY3Rpb24uaXNFbXB0eSgpO1xyXG5cclxuICAgIGlmICghc2VsZWN0aW9uRW1wdHkpIHtcclxuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgICBkZWxldGVPcGVyYXRpb24gPSBEZWxldGVPcGVyYXRpb24uZnJvbUNvbnRlbnRBbmRTZWxlY3Rpb24oY29udGVudCwgc2VsZWN0aW9uKSxcclxuICAgICAgICAgICAgb3BlcmF0aW9uID0gZGVsZXRlT3BlcmF0aW9uO1xyXG5cclxuICAgICAgdGhpcy5hcHBseU9wZXJhdGlvbihvcGVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0ZXh0RGF0YSwgLy8vXHJcbiAgICAgICAgICBpbnNlcnRPcGVyYXRpb24gPSBJbnNlcnRPcGVyYXRpb24uZnJvbUNvbnRlbnRBbmRTZWxlY3Rpb24oY29udGVudCwgc2VsZWN0aW9uKSxcclxuICAgICAgICAgIG9wZXJhdGlvbiA9IGluc2VydE9wZXJhdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYXBwbHlPcGVyYXRpb24ob3BlcmF0aW9uKTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpO1xyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBpbnB1dEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBibHVySGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdW5kb2FibGUgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCB1bmRvYWJsZSwgZXZlbnRUeXBlLCBzZWxlY3Rpb25DaGFuZ2VkKTtcclxuICB9XHJcblxyXG4gIGZvY3VzSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuXHJcbiAgICBkZWZlcigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHVuZG9hYmxlID0gdHJ1ZSxcclxuICAgICAgICAgICAgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIHVuZG9hYmxlLCBldmVudFR5cGUsIHNlbGVjdGlvbkNoYW5nZWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmNhbGxIYW5kbGVycyhldmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGtleURvd25IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBsZXQgcHJldmVudERlZmF1bHQgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50O1xyXG5cclxuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xyXG4gICAgICBjYXNlIFpfS0VZX0NPREU6XHJcbiAgICAgICAgcHJldmVudERlZmF1bHQgPSB0aGlzLnpLZXlEb3duKGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEZfS0VZX0NPREU6XHJcbiAgICAgICAgcHJldmVudERlZmF1bHQgPSB0aGlzLmZLZXlEb3duKGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHByZXZlbnREZWZhdWx0KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZGVmZXIoKCkgPT4ge1xyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb250ZXh0bWVudUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RDaGFuZ2VIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XHJcbiAgICAgIGVsZW1lbnQgPSB0aGlzOyAvLy9cclxuXHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnRlcm1lZGlhdGVIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB1bmRvYWJsZSA9IHRydWUsIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLCBzZWxlY3Rpb25DaGFuZ2VkID0gdGhpcy5oYXNTZWxlY3Rpb25DaGFuZ2VkKCkpID0+IHtcclxuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICAgIGNvbnRlbnQgPSBwcmV2aW91c0NvbnRlbnQ7ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0Q29udGVudChjb250ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSB0aGlzLmhhc0NvbnRlbnRDaGFuZ2VkKCksXHJcbiAgICAgICAgICBjaGFuZ2VkID0gKGNvbnRlbnRDaGFuZ2VkIHx8IHNlbGVjdGlvbkNoYW5nZWQpO1xyXG5cclxuICAgIGlmIChjaGFuZ2VkKSB7XHJcbiAgICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1bmRvYWJsZSkge1xyXG4gICAgICBpZiAoY29udGVudENoYW5nZWQpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSB0aGlzLmdldFByZXZpb3VzQ29udGVudCgpLFxyXG4gICAgICAgICAgICAgIG9wZXJhdGlvbnMgPSBnZW5lcmF0ZU9wZXJhdGlvbnMocHJldmlvdXNDb250ZW50LCBjb250ZW50KTtcclxuXHJcbiAgICAgICAgdGhpcy51bmRvQnVmZmVyLmFkZE9wZXJhdGlvbnMob3BlcmF0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcclxuICAgIGNvbnN0IGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcclxuXHJcbiAgICBldmVudExpc3RlbmVycy5mb3JFYWNoKChldmVudExpc3RlbmVyKSA9PiB7XHJcbiAgICAgIGxldCB7IGVsZW1lbnQgfSA9IGV2ZW50TGlzdGVuZXI7XHJcblxyXG4gICAgICBjb25zdCB7IGhhbmRsZXIgfSA9IGV2ZW50TGlzdGVuZXIsXHJcbiAgICAgICAgICAgIGhhbmRsZXJFbGVtZW50ID0gZWxlbWVudDsgLy8vXHJcblxyXG4gICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoIChoYW5kbGVyICE9PSB0aGlzLmN1dEhhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMuY29weUhhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMucGFzdGVIYW5kbGVyKVxyXG4gICAgICAgICYmIChoYW5kbGVyICE9PSB0aGlzLmlucHV0SGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5ibHVySGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5mb2N1c0hhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5rZXlEb3duSGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5jb250ZXh0bWVudUhhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2VsZWN0Q2hhbmdlSGFuZGxlcikgKSB7XHJcblxyXG4gICAgICAgIGhhbmRsZXIuY2FsbChoYW5kbGVyRWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHZhbHVlIH0gPSBkb21FbGVtZW50LFxyXG4gICAgICAgICAgY29udGVudCA9IHZhbHVlOyAgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSBTZWxlY3Rpb24uZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkQ29udGVudCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzdGFydCA9IHN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIGVuZCA9IGVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBzZWxlY3RlZENvbnRlbnQgPSBjb250ZW50LnNsaWNlKHN0YXJ0LCBlbmQpO1xyXG5cclxuICAgIHJldHVybiBzZWxlY3RlZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBoYXNDb250ZW50Q2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICBjb250ZW50UHJldmlvdXNDb250ZW50ID0gKGNvbnRlbnQgPT09IHByZXZpb3VzQ29udGVudCksXHJcbiAgICAgICAgICBjb250ZW50Q2hhbmdlZCA9ICFjb250ZW50UHJldmlvdXNDb250ZW50O1xyXG5cclxuICAgIHJldHVybiBjb250ZW50Q2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc1NlbGVjdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLmdldFByZXZpb3VzU2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25QcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbi5pc0VxdWFsVG8ocHJldmlvdXNTZWxlY3Rpb24pLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9ICFzZWxlY3Rpb25QcmV2aW91c1NlbGVjdGlvbjsgLy8vXHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbkNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZW50KGNvbnRlbnQsIHNldFByZXZpb3VzQ29udGVudCA9IHRydWUpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICB2YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHNldFByZXZpb3VzQ29udGVudCkge1xyXG4gICAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50OyAgLy8vXHJcblxyXG4gICAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgc2V0UHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgZG9tRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcclxuXHJcbiAgICBpZiAoc2V0UHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgICAgY29uc3QgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb247ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZktleURvd24oZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGxldCBwcmV2ZW50RGVmYXVsdCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHsgY3RybEtleSwgbWV0YUtleSB9ID0gZXZlbnQ7XHJcblxyXG4gICAgaWYgKGN0cmxLZXkgfHwgbWV0YUtleSkge1xyXG4gICAgICBjb25zdCBldmVudFR5cGUgPSBGSU5EX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgICB0aGlzLmNhbGxIYW5kbGVycyhldmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICAgIHByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcHJldmVudERlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICB6S2V5RG93bihldmVudCwgZWxlbWVudCkge1xyXG4gICAgbGV0IHByZXZlbnREZWZhdWx0ID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgeyBjdHJsS2V5LCBtZXRhS2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcblxyXG4gICAgaWYgKGN0cmxLZXkgfHwgbWV0YUtleSkge1xyXG4gICAgICBjb25zdCBvcGVyYXRpb24gPSBzaGlmdEtleSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bmRvQnVmZmVyLnJlZG8oKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuZG9CdWZmZXIudW5kbygpO1xyXG5cclxuICAgICAgaWYgKG9wZXJhdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHVuZG9hYmxlID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICAgICAgc2VsZWN0aW9uID0gU2VsZWN0aW9uLmZyb21PcGVyYXRpb24ob3BlcmF0aW9uKSxcclxuICAgICAgICAgICAgICBzZXRQcmV2aW91c1NlbGVjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmFwcGx5T3BlcmF0aW9uKG9wZXJhdGlvbik7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgc2V0UHJldmlvdXNTZWxlY3Rpb24pO1xyXG5cclxuICAgICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIHVuZG9hYmxlLCBldmVudFR5cGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBwcmV2ZW50RGVmYXVsdCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHByZXZlbnREZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKG9wZXJhdGlvbnMpIHtcclxuICAgIGxldCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2Zvcm1lZENvbnRlbnQgPSB0cmFuc2Zvcm1Db250ZW50KGNvbnRlbnQsIG9wZXJhdGlvbnMpLFxyXG4gICAgICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSB0cmFuc2Zvcm1TZWxlY3Rpb24oc2VsZWN0aW9uLCBvcGVyYXRpb25zKTtcclxuXHJcbiAgICBjb250ZW50ID0gdHJhbnNmb3JtZWRDb250ZW50OyAvLy9cclxuXHJcbiAgICBzZWxlY3Rpb24gPSB0cmFuc2Zvcm1lZFNlbGVjdGlvbjsgLy8vXHJcblxyXG4gICAgY29uc3Qgc2V0UHJldmlvdXNDb250ZW50ID0gZmFsc2UsXHJcbiAgICAgICAgICBzZXRQcmV2aW91c1NlbGVjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0Q29udGVudChjb250ZW50LCBzZXRQcmV2aW91c0NvbnRlbnQpO1xyXG5cclxuICAgIHRoaXMuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgc2V0UHJldmlvdXNTZWxlY3Rpb24pO1xyXG5cclxuICAgIHRoaXMudW5kb0J1ZmZlci50cmFuc2Zvcm0ob3BlcmF0aW9ucyk7XHJcblxyXG4gICAgY29uc3QgZXZlbnQgPSBudWxsLFxyXG4gICAgICAgICAgZWxlbWVudCA9IHRoaXMsXHJcbiAgICAgICAgICB1bmRvYWJsZSA9IGZhbHNlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCB1bmRvYWJsZSwgZXZlbnRUeXBlKTtcclxuICB9XHJcblxyXG4gIGFwcGx5T3BlcmF0aW9uKG9wZXJhdGlvbikge1xyXG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IHRyYW5zZm9ybWVkQ29udGVudCA9IG9wZXJhdGlvbi50cmFuc2Zvcm1Db250ZW50KGNvbnRlbnQpLFxyXG4gICAgICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSBvcGVyYXRpb24udHJhbnNmb3JtU2VsZWN0aW9uKHNlbGVjdGlvbik7XHJcblxyXG4gICAgY29udGVudCA9IHRyYW5zZm9ybWVkQ29udGVudDsgLy8vXHJcblxyXG4gICAgc2VsZWN0aW9uID0gdHJhbnNmb3JtZWRTZWxlY3Rpb247IC8vL1xyXG5cclxuICAgIGNvbnN0IHNldFByZXZpb3VzQ29udGVudCA9IGZhbHNlLFxyXG4gICAgICAgICAgc2V0UHJldmlvdXNTZWxlY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCwgc2V0UHJldmlvdXNDb250ZW50KTtcclxuXHJcbiAgICB0aGlzLnNldFNlbGVjdGlvbihzZWxlY3Rpb24sIHNldFByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcigpIHtcclxuICAgIGRvY3VtZW50Lm9uKFNFTEVDVElPTkNIQU5HRV9FVkVOVF9UWVBFLCB0aGlzLnNlbGVjdENoYW5nZUhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgZGVhY3RpdmF0ZVNlbGVjdGlvbkNoYW5nZUhhbmRsZXIoKSB7XHJcbiAgICBkb2N1bWVudC5vZmYoU0VMRUNUSU9OQ0hBTkdFX0VWRU5UX1RZUEUsIHRoaXMuc2VsZWN0Q2hhbmdlSGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMub24oQ1VUX0VWRU5UX1RZUEUsIHRoaXMuY3V0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbihDT1BZX0VWRU5UX1RZUEUsIHRoaXMuY29weUhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub24oUEFTVEVfRVZFTlRfVFlQRSwgdGhpcy5wYXN0ZUhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub24oSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub24oQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uKEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub24oS0VZRE9XTl9FVkVOVF9UWVBFLCB0aGlzLmtleURvd25IYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uKENPTlRFWFRNRU5VX0VWRU5UX1RZUEUsIHRoaXMuY29udGV4dG1lbnVIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLmFjdGl2YXRlU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcigpO1xyXG5cclxuICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5vZmYoQ1VUX0VWRU5UX1RZUEUsIHRoaXMuY3V0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoQ09QWV9FVkVOVF9UWVBFLCB0aGlzLmNvcHlIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9mZihQQVNURV9FVkVOVF9UWVBFLCB0aGlzLnBhc3RlSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub2ZmKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub2ZmKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub2ZmKEtFWURPV05fRVZFTlRfVFlQRSwgdGhpcy5rZXlEb3duSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSwgdGhpcy5jb250ZXh0bWVudUhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMuZGVhY3RpdmF0ZVNlbGVjdGlvbkNoYW5nZUhhbmRsZXIoKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3QgeyBwcmV2aW91c0NvbnRlbnQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSB0aGlzLmdldFN0YXRlKCk7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCkge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzQ29udGVudFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbikge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzU2VsZWN0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkZpbmQsIG9uQmx1ciwgb25Gb2N1cywgb25TY3JvbGwsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBmaW5kSGFuZGxlciA9IG9uRmluZCwgLy8vXHJcbiAgICAgICAgICBibHVySGFuZGxlciA9IG9uQmx1ciwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2U7IC8vL1xyXG5cclxuICAgIHRoaXMudXBkYXRlSW5pdGlhbFN0YXRlKCk7XHJcblxyXG4gICAgZmluZEhhbmRsZXIgJiYgdGhpcy5vbkZpbmQoZmluZEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vbkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9uU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkZpbmQsIG9uQmx1ciwgb25Gb2N1cywgb25TY3JvbGwsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgIGZpbmRIYW5kbGVyID0gb25GaW5kLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXIsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IG9uU2Nyb2xsLCAvLy9cclxuICAgICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlOyAvLy9cclxuXHJcbiAgICBmaW5kSGFuZGxlciAmJiB0aGlzLm9mZkZpbmQoZmluZEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub2ZmQmx1cihibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgZm9jdXNIYW5kbGVyICYmIHRoaXMub2ZmRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBzY3JvbGxIYW5kbGVyICYmIHRoaXMub2ZmU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vZmZDaGFuZ2UoY2hhbmdlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmIChhY3RpdmUpIHtcclxuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb247ICAvLy9cclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgY29uc3QgcHJldmlvdXNDb250ZW50ID0gbnVsbCxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXNlKCkge1xyXG4gICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJ0ZXh0YXJlYVwiO1xyXG5cclxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXHJcbiAgICBcIm9uRmluZFwiLFxyXG4gICAgXCJvbkJsdXJcIixcclxuICAgIFwib25Gb2N1c1wiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkNoYW5nZVwiXHJcbiAgXTtcclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xyXG4gICAgY2xhc3NOYW1lOiBcInJpY2hcIlxyXG4gIH07XHJcblxyXG4gIHN0YXRpYyBmcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xyXG4gICAgY29uc3QgZm9jdXNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgcmVhZE9ubHkgPSBmYWxzZSxcclxuICAgICAgICAgIHVuZG9CdWZmZXIgPSBVbmRvQnVmZmVyLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgICByaWNoVGV4dGFyZWEgPSBFbGVtZW50LmZyb21DbGFzcyhDbGFzcywgcHJvcGVydGllcywgZm9jdXNlZCwgcmVhZE9ubHksIHVuZG9CdWZmZXIsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XHJcblxyXG4gICAgcmV0dXJuIHJpY2hUZXh0YXJlYTtcclxuICB9XHJcbn1cclxuXHJcbk9iamVjdC5hc3NpZ24oUmljaFRleHRhcmVhLnByb3RvdHlwZSwgZXZlbnRNaXhpbnMpO1xyXG5cclxuZnVuY3Rpb24gZGVmZXIoZnVuYykge1xyXG4gIHNldFRpbWVvdXQoZnVuYywgMCk7XHJcbn1cclxuIl0sIm5hbWVzIjpbIlJpY2hUZXh0YXJlYSIsInNlbGVjdG9yIiwiZm9jdXNlZCIsInJlYWRPbmx5IiwidW5kb0J1ZmZlciIsImN1dEhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25FbXB0eSIsImlzRW1wdHkiLCJzZWxlY3RlZENvbnRlbnQiLCJnZXRTZWxlY3RlZENvbnRlbnQiLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJ3cml0ZVRleHQiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImRlbGV0ZU9wZXJhdGlvbiIsIkRlbGV0ZU9wZXJhdGlvbiIsImZyb21Db250ZW50QW5kU2VsZWN0aW9uIiwib3BlcmF0aW9uIiwiYXBwbHlPcGVyYXRpb24iLCJpbnRlcm1lZGlhdGVIYW5kbGVyIiwicHJldmVudERlZmF1bHQiLCJjb3B5SGFuZGxlciIsInBhc3RlSGFuZGxlciIsImNsaXBib2FyZERhdGEiLCJ0ZXh0RGF0YSIsImdldERhdGEiLCJURVhUIiwiRU1QVFlfU1RSSU5HIiwiaW5zZXJ0T3BlcmF0aW9uIiwiSW5zZXJ0T3BlcmF0aW9uIiwiaW5wdXRIYW5kbGVyIiwiYmx1ckhhbmRsZXIiLCJ1bmRvYWJsZSIsImV2ZW50VHlwZSIsIkJMVVJfRVZFTlRfVFlQRSIsInNlbGVjdGlvbkNoYW5nZWQiLCJmb2N1c0hhbmRsZXIiLCJkZWZlciIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJzY3JvbGxIYW5kbGVyIiwiU0NST0xMX0VWRU5UX1RZUEUiLCJjYWxsSGFuZGxlcnMiLCJrZXlEb3duSGFuZGxlciIsImtleUNvZGUiLCJaX0tFWV9DT0RFIiwiektleURvd24iLCJGX0tFWV9DT0RFIiwiZktleURvd24iLCJjb250ZXh0bWVudUhhbmRsZXIiLCJzZWxlY3RDaGFuZ2VIYW5kbGVyIiwiQ0hBTkdFX0VWRU5UX1RZUEUiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwicHJldmlvdXNDb250ZW50IiwiZ2V0UHJldmlvdXNDb250ZW50Iiwic2V0Q29udGVudCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJjaGFuZ2VkIiwib3BlcmF0aW9ucyIsImdlbmVyYXRlT3BlcmF0aW9ucyIsImFkZE9wZXJhdGlvbnMiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzQ29udGVudCIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNGb2N1c2VkIiwiaXNSZWFkT25seSIsImdldFVuZG9CdWZmZXIiLCJzZXRGb2N1c2VkIiwic2V0UmVhZE9ubHkiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJldmVudExpc3RlbmVycyIsImZpbmRFdmVudExpc3RlbmVycyIsImZvckVhY2giLCJldmVudExpc3RlbmVyIiwiaGFuZGxlciIsImhhbmRsZXJFbGVtZW50IiwiY2FsbCIsImlzQWN0aXZlIiwiYWN0aXZlIiwiaGFzQ2xhc3MiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInZhbHVlIiwiU2VsZWN0aW9uIiwiZnJvbURPTUVsZW1lbnQiLCJlbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzdGFydCIsImVuZCIsInNsaWNlIiwiY29udGVudFByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uUHJldmlvdXNTZWxlY3Rpb24iLCJpc0VxdWFsVG8iLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsInNldFNlbGVjdGlvblJhbmdlIiwiY3RybEtleSIsIm1ldGFLZXkiLCJGSU5EX0VWRU5UX1RZUEUiLCJzaGlmdEtleSIsInJlZG8iLCJ1bmRvIiwiZnJvbU9wZXJhdGlvbiIsInRyYW5zZm9ybSIsInRyYW5zZm9ybWVkQ29udGVudCIsInRyYW5zZm9ybUNvbnRlbnQiLCJ0cmFuc2Zvcm1lZFNlbGVjdGlvbiIsInRyYW5zZm9ybVNlbGVjdGlvbiIsImFjdGl2YXRlU2VsZWN0aW9uQ2hhbmdlSGFuZGxlciIsImRvY3VtZW50Iiwib24iLCJTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSIsImRlYWN0aXZhdGVTZWxlY3Rpb25DaGFuZ2VIYW5kbGVyIiwib2ZmIiwiYWN0aXZhdGUiLCJDVVRfRVZFTlRfVFlQRSIsIkNPUFlfRVZFTlRfVFlQRSIsIlBBU1RFX0VWRU5UX1RZUEUiLCJJTlBVVF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSIsImFkZENsYXNzIiwiZGVhY3RpdmF0ZSIsInJlbW92ZUNsYXNzIiwiZ2V0U3RhdGUiLCJ1cGRhdGVTdGF0ZSIsImRpZE1vdW50IiwicHJvcGVydGllcyIsIm9uRmluZCIsIm9uQmx1ciIsIm9uRm9jdXMiLCJvblNjcm9sbCIsIm9uQ2hhbmdlIiwiZmluZEhhbmRsZXIiLCJjaGFuZ2VIYW5kbGVyIiwidXBkYXRlSW5pdGlhbFN0YXRlIiwid2lsbFVubW91bnQiLCJvZmZGaW5kIiwib2ZmQmx1ciIsIm9mZkZvY3VzIiwib2ZmU2Nyb2xsIiwib2ZmQ2hhbmdlIiwic2V0SW5pdGlhbFN0YXRlIiwic2V0U3RhdGUiLCJpbml0aWFsaXNlIiwiZnJvbUNsYXNzIiwiQ2xhc3MiLCJFbGVtZW50IiwiVW5kb0J1ZmZlciIsImZyb21Ob3RoaW5nIiwicmljaFRleHRhcmVhIiwidGFnTmFtZSIsImlnbm9yZWRQcm9wZXJ0aWVzIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJwcm90b3R5cGUiLCJldmVudE1peGlucyIsImZ1bmMiLCJzZXRUaW1lb3V0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQTRCcUJBOzs7b0JBMUJhOzhEQUVaOytEQUNDOzBEQUNDOzJEQUNJOzJEQUNBOzREQUNDOytEQUNFOzZEQUNBO3lCQUVJO3dCQUNJOzBC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
|
|
653
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyBFbGVtZW50LCBkb2N1bWVudCB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcbmltcG9ydCBVbmRvQnVmZmVyIGZyb20gXCIuL3VuZG9CdWZmZXJcIjtcclxuaW1wb3J0IGV2ZW50TWl4aW5zIGZyb20gXCIuL21peGlucy9ldmVudFwiO1xyXG5pbXBvcnQgSW5zZXJ0T3BlcmF0aW9uIGZyb20gXCIuL29wZXJhdGlvbi9pbnNlcnRcIjtcclxuaW1wb3J0IERlbGV0ZU9wZXJhdGlvbiBmcm9tIFwiLi9vcGVyYXRpb24vZGVsZXRlXCI7XHJcbmltcG9ydCB0cmFuc2Zvcm1Db250ZW50IGZyb20gXCIuL3RyYW5zZm9ybS9jb250ZW50XCI7XHJcbmltcG9ydCB0cmFuc2Zvcm1TZWxlY3Rpb24gZnJvbSBcIi4vdHJhbnNmb3JtL3NlbGVjdGlvblwiO1xyXG5pbXBvcnQgZ2VuZXJhdGVPcGVyYXRpb25zIGZyb20gXCIuL29wZXJhdGlvbnMvZ2VuZXJhdGVcIjtcclxuXHJcbmltcG9ydCB7IFRFWFQsIEVNUFRZX1NUUklORyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGX0tFWV9DT0RFLCBaX0tFWV9DT0RFIH0gZnJvbSBcIi4va2V5Q29kZXNcIjtcclxuaW1wb3J0IHsgQ1VUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENPUFlfRVZFTlRfVFlQRSxcclxuICAgICAgICAgRklORF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIFBBU1RFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIElOUFVUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgS0VZRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBDT05URVhUTUVOVV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSB9IGZyb20gXCIuL2V2ZW50VHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJpY2hUZXh0YXJlYSBleHRlbmRzIEVsZW1lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yLCBmb2N1c2VkLCByZWFkT25seSwgdW5kb0J1ZmZlcikge1xyXG4gICAgc3VwZXIoc2VsZWN0b3IpO1xyXG5cclxuICAgIHRoaXMuZm9jdXNlZCA9IGZvY3VzZWQ7XHJcbiAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XHJcbiAgICB0aGlzLnVuZG9CdWZmZXIgPSB1bmRvQnVmZmVyO1xyXG4gIH1cclxuXHJcbiAgaXNGb2N1c2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZDtcclxuICB9XHJcblxyXG4gIGlzUmVhZE9ubHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkT25seTtcclxuICB9XHJcblxyXG4gIGdldFVuZG9CdWZmZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51bmRvQnVmZmVyO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXNlZChmb2N1c2VkKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmb2N1c2VkO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkocmVhZE9ubHkpIHtcclxuICAgIHRoaXMucmVhZE9ubHkgPSByZWFkT25seTtcclxuICB9XHJcblxyXG4gIGN1dEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbXB0eSA9IHNlbGVjdGlvbi5pc0VtcHR5KCk7XHJcblxyXG4gICAgaWYgKHNlbGVjdGlvbkVtcHR5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZENvbnRlbnQgPSB0aGlzLmdldFNlbGVjdGVkQ29udGVudCgpO1xyXG5cclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlbGVjdGVkQ29udGVudCk7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgZGVsZXRlT3BlcmF0aW9uID0gRGVsZXRlT3BlcmF0aW9uLmZyb21Db250ZW50QW5kU2VsZWN0aW9uKGNvbnRlbnQsIHNlbGVjdGlvbiksXHJcbiAgICAgICAgICBvcGVyYXRpb24gPSBkZWxldGVPcGVyYXRpb247ICAvLy9cclxuXHJcbiAgICB0aGlzLmFwcGx5T3BlcmF0aW9uKG9wZXJhdGlvbik7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgY29weUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbXB0eSA9IHNlbGVjdGlvbi5pc0VtcHR5KCk7XHJcblxyXG4gICAgaWYgKHNlbGVjdGlvbkVtcHR5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZENvbnRlbnQgPSB0aGlzLmdldFNlbGVjdGVkQ29udGVudCgpO1xyXG5cclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlbGVjdGVkQ29udGVudCk7XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIHBhc3RlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgeyBjbGlwYm9hcmREYXRhIH0gPSBldmVudCxcclxuICAgICAgICAgIHRleHREYXRhID0gY2xpcGJvYXJkRGF0YS5nZXREYXRhKFRFWFQpO1xyXG5cclxuICAgIGlmICh0ZXh0RGF0YSA9PT0gRU1QVFlfU1RSSU5HKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW1wdHkgPSBzZWxlY3Rpb24uaXNFbXB0eSgpO1xyXG5cclxuICAgIGlmICghc2VsZWN0aW9uRW1wdHkpIHtcclxuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgICBkZWxldGVPcGVyYXRpb24gPSBEZWxldGVPcGVyYXRpb24uZnJvbUNvbnRlbnRBbmRTZWxlY3Rpb24oY29udGVudCwgc2VsZWN0aW9uKSxcclxuICAgICAgICAgICAgb3BlcmF0aW9uID0gZGVsZXRlT3BlcmF0aW9uO1xyXG5cclxuICAgICAgdGhpcy5hcHBseU9wZXJhdGlvbihvcGVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0ZXh0RGF0YSwgLy8vXHJcbiAgICAgICAgICBpbnNlcnRPcGVyYXRpb24gPSBJbnNlcnRPcGVyYXRpb24uZnJvbUNvbnRlbnRBbmRTZWxlY3Rpb24oY29udGVudCwgc2VsZWN0aW9uKSxcclxuICAgICAgICAgIG9wZXJhdGlvbiA9IGluc2VydE9wZXJhdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYXBwbHlPcGVyYXRpb24ob3BlcmF0aW9uKTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpO1xyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBpbnB1dEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBibHVySGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdW5kb2FibGUgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCB1bmRvYWJsZSwgZXZlbnRUeXBlLCBzZWxlY3Rpb25DaGFuZ2VkKTtcclxuICB9XHJcblxyXG4gIGZvY3VzSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuXHJcbiAgICBkZWZlcigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHVuZG9hYmxlID0gdHJ1ZSxcclxuICAgICAgICAgICAgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIHVuZG9hYmxlLCBldmVudFR5cGUsIHNlbGVjdGlvbkNoYW5nZWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmNhbGxIYW5kbGVycyhldmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGtleURvd25IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBsZXQgcHJldmVudERlZmF1bHQgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50O1xyXG5cclxuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xyXG4gICAgICBjYXNlIFpfS0VZX0NPREU6XHJcbiAgICAgICAgcHJldmVudERlZmF1bHQgPSB0aGlzLnpLZXlEb3duKGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEZfS0VZX0NPREU6XHJcbiAgICAgICAgcHJldmVudERlZmF1bHQgPSB0aGlzLmZLZXlEb3duKGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHByZXZlbnREZWZhdWx0KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZGVmZXIoKCkgPT4ge1xyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb250ZXh0bWVudUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RDaGFuZ2VIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XHJcbiAgICAgIGVsZW1lbnQgPSB0aGlzOyAvLy9cclxuXHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnRlcm1lZGlhdGVIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB1bmRvYWJsZSA9IHRydWUsIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLCBzZWxlY3Rpb25DaGFuZ2VkID0gdGhpcy5oYXNTZWxlY3Rpb25DaGFuZ2VkKCkpID0+IHtcclxuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICAgIGNvbnRlbnQgPSBwcmV2aW91c0NvbnRlbnQ7ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0Q29udGVudChjb250ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSB0aGlzLmhhc0NvbnRlbnRDaGFuZ2VkKCksXHJcbiAgICAgICAgICBjaGFuZ2VkID0gKGNvbnRlbnRDaGFuZ2VkIHx8IHNlbGVjdGlvbkNoYW5nZWQpO1xyXG5cclxuICAgIGlmIChjaGFuZ2VkKSB7XHJcbiAgICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1bmRvYWJsZSkge1xyXG4gICAgICBpZiAoY29udGVudENoYW5nZWQpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSB0aGlzLmdldFByZXZpb3VzQ29udGVudCgpLFxyXG4gICAgICAgICAgICAgIG9wZXJhdGlvbnMgPSBnZW5lcmF0ZU9wZXJhdGlvbnMocHJldmlvdXNDb250ZW50LCBjb250ZW50KTtcclxuXHJcbiAgICAgICAgdGhpcy51bmRvQnVmZmVyLmFkZE9wZXJhdGlvbnMob3BlcmF0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcclxuICAgIGNvbnN0IGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcclxuXHJcbiAgICBldmVudExpc3RlbmVycy5mb3JFYWNoKChldmVudExpc3RlbmVyKSA9PiB7XHJcbiAgICAgIGxldCB7IGVsZW1lbnQgfSA9IGV2ZW50TGlzdGVuZXI7XHJcblxyXG4gICAgICBjb25zdCB7IGhhbmRsZXIgfSA9IGV2ZW50TGlzdGVuZXIsXHJcbiAgICAgICAgICAgIGhhbmRsZXJFbGVtZW50ID0gZWxlbWVudDsgLy8vXHJcblxyXG4gICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoIChoYW5kbGVyICE9PSB0aGlzLmN1dEhhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMuY29weUhhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMucGFzdGVIYW5kbGVyKVxyXG4gICAgICAgICYmIChoYW5kbGVyICE9PSB0aGlzLmlucHV0SGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5ibHVySGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5mb2N1c0hhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5rZXlEb3duSGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5jb250ZXh0bWVudUhhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2VsZWN0Q2hhbmdlSGFuZGxlcikgKSB7XHJcblxyXG4gICAgICAgIGhhbmRsZXIuY2FsbChoYW5kbGVyRWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHZhbHVlIH0gPSBkb21FbGVtZW50LFxyXG4gICAgICAgICAgY29udGVudCA9IHZhbHVlOyAgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSBTZWxlY3Rpb24uZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkQ29udGVudCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzdGFydCA9IHN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIGVuZCA9IGVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBzZWxlY3RlZENvbnRlbnQgPSBjb250ZW50LnNsaWNlKHN0YXJ0LCBlbmQpO1xyXG5cclxuICAgIHJldHVybiBzZWxlY3RlZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBoYXNDb250ZW50Q2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICBjb250ZW50UHJldmlvdXNDb250ZW50ID0gKGNvbnRlbnQgPT09IHByZXZpb3VzQ29udGVudCksXHJcbiAgICAgICAgICBjb250ZW50Q2hhbmdlZCA9ICFjb250ZW50UHJldmlvdXNDb250ZW50O1xyXG5cclxuICAgIHJldHVybiBjb250ZW50Q2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc1NlbGVjdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLmdldFByZXZpb3VzU2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25QcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbi5pc0VxdWFsVG8ocHJldmlvdXNTZWxlY3Rpb24pLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9ICFzZWxlY3Rpb25QcmV2aW91c1NlbGVjdGlvbjsgLy8vXHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbkNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZW50KGNvbnRlbnQsIHNldFByZXZpb3VzQ29udGVudCA9IHRydWUpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICB2YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHNldFByZXZpb3VzQ29udGVudCkge1xyXG4gICAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50OyAgLy8vXHJcblxyXG4gICAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgc2V0UHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgZG9tRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcclxuXHJcbiAgICBpZiAoc2V0UHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgICAgY29uc3QgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb247ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZktleURvd24oZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGxldCBwcmV2ZW50RGVmYXVsdCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHsgY3RybEtleSwgbWV0YUtleSB9ID0gZXZlbnQ7XHJcblxyXG4gICAgaWYgKGN0cmxLZXkgfHwgbWV0YUtleSkge1xyXG4gICAgICBjb25zdCBldmVudFR5cGUgPSBGSU5EX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgICB0aGlzLmNhbGxIYW5kbGVycyhldmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuXHJcbiAgICAgIHByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcHJldmVudERlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICB6S2V5RG93bihldmVudCwgZWxlbWVudCkge1xyXG4gICAgbGV0IHByZXZlbnREZWZhdWx0ID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgeyBjdHJsS2V5LCBtZXRhS2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcblxyXG4gICAgaWYgKGN0cmxLZXkgfHwgbWV0YUtleSkge1xyXG4gICAgICBjb25zdCBvcGVyYXRpb24gPSBzaGlmdEtleSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bmRvQnVmZmVyLnJlZG8oKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuZG9CdWZmZXIudW5kbygpO1xyXG5cclxuICAgICAgaWYgKG9wZXJhdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHVuZG9hYmxlID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICAgICAgc2VsZWN0aW9uID0gU2VsZWN0aW9uLmZyb21PcGVyYXRpb24ob3BlcmF0aW9uKSxcclxuICAgICAgICAgICAgICBzZXRQcmV2aW91c1NlbGVjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmFwcGx5T3BlcmF0aW9uKG9wZXJhdGlvbik7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgc2V0UHJldmlvdXNTZWxlY3Rpb24pO1xyXG5cclxuICAgICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIHVuZG9hYmxlLCBldmVudFR5cGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBwcmV2ZW50RGVmYXVsdCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHByZXZlbnREZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKG9wZXJhdGlvbnMpIHtcclxuICAgIGxldCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2Zvcm1lZENvbnRlbnQgPSB0cmFuc2Zvcm1Db250ZW50KGNvbnRlbnQsIG9wZXJhdGlvbnMpLFxyXG4gICAgICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSB0cmFuc2Zvcm1TZWxlY3Rpb24oc2VsZWN0aW9uLCBvcGVyYXRpb25zKTtcclxuXHJcbiAgICBjb250ZW50ID0gdHJhbnNmb3JtZWRDb250ZW50OyAvLy9cclxuXHJcbiAgICBzZWxlY3Rpb24gPSB0cmFuc2Zvcm1lZFNlbGVjdGlvbjsgLy8vXHJcblxyXG4gICAgY29uc3Qgc2V0UHJldmlvdXNDb250ZW50ID0gZmFsc2UsXHJcbiAgICAgICAgICBzZXRQcmV2aW91c1NlbGVjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0Q29udGVudChjb250ZW50LCBzZXRQcmV2aW91c0NvbnRlbnQpO1xyXG5cclxuICAgIHRoaXMuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgc2V0UHJldmlvdXNTZWxlY3Rpb24pO1xyXG5cclxuICAgIHRoaXMudW5kb0J1ZmZlci50cmFuc2Zvcm0ob3BlcmF0aW9ucyk7XHJcblxyXG4gICAgY29uc3QgZXZlbnQgPSBudWxsLFxyXG4gICAgICAgICAgZWxlbWVudCA9IHRoaXMsXHJcbiAgICAgICAgICB1bmRvYWJsZSA9IGZhbHNlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCB1bmRvYWJsZSwgZXZlbnRUeXBlKTtcclxuICB9XHJcblxyXG4gIGFwcGx5T3BlcmF0aW9uKG9wZXJhdGlvbikge1xyXG4gICAgbGV0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IHRyYW5zZm9ybWVkQ29udGVudCA9IG9wZXJhdGlvbi50cmFuc2Zvcm1Db250ZW50KGNvbnRlbnQpLFxyXG4gICAgICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSBvcGVyYXRpb24udHJhbnNmb3JtU2VsZWN0aW9uKHNlbGVjdGlvbik7XHJcblxyXG4gICAgY29udGVudCA9IHRyYW5zZm9ybWVkQ29udGVudDsgLy8vXHJcblxyXG4gICAgc2VsZWN0aW9uID0gdHJhbnNmb3JtZWRTZWxlY3Rpb247IC8vL1xyXG5cclxuICAgIGNvbnN0IHNldFByZXZpb3VzQ29udGVudCA9IGZhbHNlLFxyXG4gICAgICAgICAgc2V0UHJldmlvdXNTZWxlY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCwgc2V0UHJldmlvdXNDb250ZW50KTtcclxuXHJcbiAgICB0aGlzLnNldFNlbGVjdGlvbihzZWxlY3Rpb24sIHNldFByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5vbihDVVRfRVZFTlRfVFlQRSwgdGhpcy5jdXRIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uKENPUFlfRVZFTlRfVFlQRSwgdGhpcy5jb3B5SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbihQQVNURV9FVkVOVF9UWVBFLCB0aGlzLnBhc3RlSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbihCTFVSX0VWRU5UX1RZUEUsIHRoaXMuYmx1ckhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub24oRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub24oU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub24oQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSwgdGhpcy5jb250ZXh0bWVudUhhbmRsZXIpO1xyXG5cclxuICAgIGRvY3VtZW50Lm9uKFNFTEVDVElPTkNIQU5HRV9FVkVOVF9UWVBFLCB0aGlzLnNlbGVjdENoYW5nZUhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5vZmYoQ1VUX0VWRU5UX1RZUEUsIHRoaXMuY3V0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoQ09QWV9FVkVOVF9UWVBFLCB0aGlzLmNvcHlIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9mZihQQVNURV9FVkVOVF9UWVBFLCB0aGlzLnBhc3RlSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub2ZmKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub2ZmKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub2ZmKEtFWURPV05fRVZFTlRfVFlQRSwgdGhpcy5rZXlEb3duSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSwgdGhpcy5jb250ZXh0bWVudUhhbmRsZXIpO1xyXG5cclxuICAgIGRvY3VtZW50Lm9mZihTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSwgdGhpcy5zZWxlY3RDaGFuZ2VIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3QgeyBwcmV2aW91c0NvbnRlbnQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSB0aGlzLmdldFN0YXRlKCk7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCkge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzQ29udGVudFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbikge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzU2VsZWN0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkZpbmQsIG9uQmx1ciwgb25Gb2N1cywgb25TY3JvbGwsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBmaW5kSGFuZGxlciA9IG9uRmluZCwgLy8vXHJcbiAgICAgICAgICBibHVySGFuZGxlciA9IG9uQmx1ciwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2U7IC8vL1xyXG5cclxuICAgIHRoaXMudXBkYXRlSW5pdGlhbFN0YXRlKCk7XHJcblxyXG4gICAgZmluZEhhbmRsZXIgJiYgdGhpcy5vbkZpbmQoZmluZEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vbkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9uU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkZpbmQsIG9uQmx1ciwgb25Gb2N1cywgb25TY3JvbGwsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgIGZpbmRIYW5kbGVyID0gb25GaW5kLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXIsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IG9uU2Nyb2xsLCAvLy9cclxuICAgICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlOyAvLy9cclxuXHJcbiAgICBmaW5kSGFuZGxlciAmJiB0aGlzLm9mZkZpbmQoZmluZEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub2ZmQmx1cihibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgZm9jdXNIYW5kbGVyICYmIHRoaXMub2ZmRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBzY3JvbGxIYW5kbGVyICYmIHRoaXMub2ZmU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vZmZDaGFuZ2UoY2hhbmdlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmIChhY3RpdmUpIHtcclxuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb247ICAvLy9cclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgY29uc3QgcHJldmlvdXNDb250ZW50ID0gbnVsbCxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXNlKCkge1xyXG4gICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJ0ZXh0YXJlYVwiO1xyXG5cclxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXHJcbiAgICBcIm9uRmluZFwiLFxyXG4gICAgXCJvbkJsdXJcIixcclxuICAgIFwib25Gb2N1c1wiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkNoYW5nZVwiXHJcbiAgXTtcclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xyXG4gICAgY2xhc3NOYW1lOiBcInJpY2hcIlxyXG4gIH07XHJcblxyXG4gIHN0YXRpYyBmcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xyXG4gICAgY29uc3QgZm9jdXNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgcmVhZE9ubHkgPSBmYWxzZSxcclxuICAgICAgICAgIHVuZG9CdWZmZXIgPSBVbmRvQnVmZmVyLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgICByaWNoVGV4dGFyZWEgPSBFbGVtZW50LmZyb21DbGFzcyhDbGFzcywgcHJvcGVydGllcywgZm9jdXNlZCwgcmVhZE9ubHksIHVuZG9CdWZmZXIsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XHJcblxyXG4gICAgcmV0dXJuIHJpY2hUZXh0YXJlYTtcclxuICB9XHJcbn1cclxuXHJcbk9iamVjdC5hc3NpZ24oUmljaFRleHRhcmVhLnByb3RvdHlwZSwgZXZlbnRNaXhpbnMpO1xyXG5cclxuZnVuY3Rpb24gZGVmZXIoZnVuYykge1xyXG4gIHNldFRpbWVvdXQoZnVuYywgMCk7XHJcbn1cclxuIl0sIm5hbWVzIjpbIlJpY2hUZXh0YXJlYSIsInNlbGVjdG9yIiwiZm9jdXNlZCIsInJlYWRPbmx5IiwidW5kb0J1ZmZlciIsImN1dEhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25FbXB0eSIsImlzRW1wdHkiLCJzZWxlY3RlZENvbnRlbnQiLCJnZXRTZWxlY3RlZENvbnRlbnQiLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJ3cml0ZVRleHQiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImRlbGV0ZU9wZXJhdGlvbiIsIkRlbGV0ZU9wZXJhdGlvbiIsImZyb21Db250ZW50QW5kU2VsZWN0aW9uIiwib3BlcmF0aW9uIiwiYXBwbHlPcGVyYXRpb24iLCJpbnRlcm1lZGlhdGVIYW5kbGVyIiwicHJldmVudERlZmF1bHQiLCJjb3B5SGFuZGxlciIsInBhc3RlSGFuZGxlciIsImNsaXBib2FyZERhdGEiLCJ0ZXh0RGF0YSIsImdldERhdGEiLCJURVhUIiwiRU1QVFlfU1RSSU5HIiwiaW5zZXJ0T3BlcmF0aW9uIiwiSW5zZXJ0T3BlcmF0aW9uIiwiaW5wdXRIYW5kbGVyIiwiYmx1ckhhbmRsZXIiLCJ1bmRvYWJsZSIsImV2ZW50VHlwZSIsIkJMVVJfRVZFTlRfVFlQRSIsInNlbGVjdGlvbkNoYW5nZWQiLCJmb2N1c0hhbmRsZXIiLCJkZWZlciIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJzY3JvbGxIYW5kbGVyIiwiU0NST0xMX0VWRU5UX1RZUEUiLCJjYWxsSGFuZGxlcnMiLCJrZXlEb3duSGFuZGxlciIsImtleUNvZGUiLCJaX0tFWV9DT0RFIiwiektleURvd24iLCJGX0tFWV9DT0RFIiwiZktleURvd24iLCJjb250ZXh0bWVudUhhbmRsZXIiLCJzZWxlY3RDaGFuZ2VIYW5kbGVyIiwiQ0hBTkdFX0VWRU5UX1RZUEUiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwicHJldmlvdXNDb250ZW50IiwiZ2V0UHJldmlvdXNDb250ZW50Iiwic2V0Q29udGVudCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJjaGFuZ2VkIiwib3BlcmF0aW9ucyIsImdlbmVyYXRlT3BlcmF0aW9ucyIsImFkZE9wZXJhdGlvbnMiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzQ29udGVudCIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNGb2N1c2VkIiwiaXNSZWFkT25seSIsImdldFVuZG9CdWZmZXIiLCJzZXRGb2N1c2VkIiwic2V0UmVhZE9ubHkiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJldmVudExpc3RlbmVycyIsImZpbmRFdmVudExpc3RlbmVycyIsImZvckVhY2giLCJldmVudExpc3RlbmVyIiwiaGFuZGxlciIsImhhbmRsZXJFbGVtZW50IiwiY2FsbCIsImlzQWN0aXZlIiwiYWN0aXZlIiwiaGFzQ2xhc3MiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInZhbHVlIiwiU2VsZWN0aW9uIiwiZnJvbURPTUVsZW1lbnQiLCJlbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzdGFydCIsImVuZCIsInNsaWNlIiwiY29udGVudFByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uUHJldmlvdXNTZWxlY3Rpb24iLCJpc0VxdWFsVG8iLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsInNldFNlbGVjdGlvblJhbmdlIiwiY3RybEtleSIsIm1ldGFLZXkiLCJGSU5EX0VWRU5UX1RZUEUiLCJzaGlmdEtleSIsInJlZG8iLCJ1bmRvIiwiZnJvbU9wZXJhdGlvbiIsInRyYW5zZm9ybSIsInRyYW5zZm9ybWVkQ29udGVudCIsInRyYW5zZm9ybUNvbnRlbnQiLCJ0cmFuc2Zvcm1lZFNlbGVjdGlvbiIsInRyYW5zZm9ybVNlbGVjdGlvbiIsImFjdGl2YXRlIiwib24iLCJDVVRfRVZFTlRfVFlQRSIsIkNPUFlfRVZFTlRfVFlQRSIsIlBBU1RFX0VWRU5UX1RZUEUiLCJJTlBVVF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSIsImRvY3VtZW50IiwiU0VMRUNUSU9OQ0hBTkdFX0VWRU5UX1RZUEUiLCJhZGRDbGFzcyIsImRlYWN0aXZhdGUiLCJvZmYiLCJyZW1vdmVDbGFzcyIsImdldFN0YXRlIiwidXBkYXRlU3RhdGUiLCJkaWRNb3VudCIsInByb3BlcnRpZXMiLCJvbkZpbmQiLCJvbkJsdXIiLCJvbkZvY3VzIiwib25TY3JvbGwiLCJvbkNoYW5nZSIsImZpbmRIYW5kbGVyIiwiY2hhbmdlSGFuZGxlciIsInVwZGF0ZUluaXRpYWxTdGF0ZSIsIndpbGxVbm1vdW50Iiwib2ZmRmluZCIsIm9mZkJsdXIiLCJvZmZGb2N1cyIsIm9mZlNjcm9sbCIsIm9mZkNoYW5nZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiaW5pdGlhbGlzZSIsImZyb21DbGFzcyIsIkNsYXNzIiwiRWxlbWVudCIsIlVuZG9CdWZmZXIiLCJmcm9tTm90aGluZyIsInJpY2hUZXh0YXJlYSIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwicHJvdG90eXBlIiwiZXZlbnRNaXhpbnMiLCJmdW5jIiwic2V0VGltZW91dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUE0QnFCQTs7O29CQTFCYTs4REFFWjsrREFDQzswREFDQzsyREFDSTsyREFDQTs0REFDQzsrREFDRTs2REFDQTt5QkFFSTt3QkFDSTswQkFZSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVCLElBQUEsQUFBTUEsNkJBMmpCcEIsQUEzakJjO2NBQU1BOzhCQUFBQTthQUFBQSxhQUNQQyxRQUFRLEVBQUVDLE9BQU8sRUFB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
|
package/lib/selection.js
CHANGED
|
@@ -138,6 +138,13 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
138
138
|
return result;
|
|
139
139
|
}
|
|
140
140
|
},
|
|
141
|
+
{
|
|
142
|
+
key: "emptied",
|
|
143
|
+
value: function emptied() {
|
|
144
|
+
var startPosition = this.startPosition, endPosition = startPosition, selection = new Selection(startPosition, endPosition);
|
|
145
|
+
return selection;
|
|
146
|
+
}
|
|
147
|
+
},
|
|
141
148
|
{
|
|
142
149
|
key: "shifted",
|
|
143
150
|
value: function shifted(offset) {
|
|
@@ -210,4 +217,4 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
210
217
|
return Selection;
|
|
211
218
|
}();
|
|
212
219
|
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWxlY3Rpb24uanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB0cmFuc2Zvcm1TZWxlY3Rpb24gZnJvbSBcIi4vdHJhbnNmb3JtL3NlbGVjdGlvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbikge1xuICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247XG4gICAgdGhpcy5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuICB9XG5cbiAgZ2V0U3RhcnRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydFBvc2l0aW9uO1xuICB9XG5cbiAgZ2V0RW5kUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5kUG9zaXRpb247XG4gIH1cblxuICBpc0VtcHR5KCkge1xuICAgIGNvbnN0IGVtcHR5ID0gKHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gdGhpcy5lbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gKHRoaXMuZW5kUG9zaXRpb24gLSB0aGlzLnN0YXJ0UG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGlzRXF1YWxUbyhzZWxlY3Rpb24pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgaWYgKHNlbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXG4gICAgICAgICAgICBzZWxlY3Rpb25FbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxuICAgICAgICAgICAgc3RhcnRQb3NpdGlvbnNFcXVhbCA9ICh0aGlzLnN0YXJ0UG9zaXRpb24gPT09IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24pLFxuICAgICAgICAgICAgZW5kUG9zaXRpb25zRXF1YWwgPSAodGhpcy5lbmRQb3NpdGlvbiA9PT0gc2VsZWN0aW9uRW5kUG9zaXRpb24pO1xuXG4gICAgICBlcXVhbFRvID0gKHN0YXJ0UG9zaXRpb25zRXF1YWwgJiYgZW5kUG9zaXRpb25zRXF1YWwpO1xuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgc2V0U3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zdGFydFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjtcbiAgfVxuXG4gIHNldEVuZFBvc2l0aW9uKGVuZFBvc2l0aW9uKSB7XG4gICAgdGhpcy5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuICB9XG5cbiAgc3RhcnRQb3NpdGlvblNoaWZ0ZWQoc3RhcnRPZmZzZXQpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uICsgc3RhcnRPZmZzZXQsXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSB0aGlzLmVuZFBvc2l0aW9uLFxuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIGVuZFBvc2l0aW9uU2hpZnRlZChlbmRPZmZzZXQpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gdGhpcy5lbmRQb3NpdGlvbiArIGVuZE9mZnNldCxcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBlbXB0aWVkVG9TdGFydCgpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uLFxuICAgICAgZW5kUG9zaXRpb24gPSBzdGFydFBvc2l0aW9uLCAgLy8vXG4gICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBlbXB0aWVkVG9FbmQoKSB7XG4gICAgY29uc3QgZW5kUG9zaXRpb24gPSB0aGlzLmVuZFBvc2l0aW9uLFxuICAgICAgc3RhcnRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uLCAgLy8vXG4gICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICB0cmFuc2Zvcm1lZChvcGVyYXRpb25zKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSB0cmFuc2Zvcm1TZWxlY3Rpb24oc2VsZWN0aW9uLCBvcGVyYXRpb25zKTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm1lZFNlbGVjdGlvbjtcbiAgfVxuXG4gIGNvbXBhcmVUbyhzZWxlY3Rpb24pIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcblxuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuc3RhcnRQb3NpdGlvbiA+IHN0YXJ0UG9zaXRpb24pIHtcbiAgICAgIHJlc3VsdCA9ICsxO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXJ0UG9zaXRpb24gPCBzdGFydFBvc2l0aW9uKSB7XG4gICAgICByZXN1bHQgPSAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2hpZnRlZChvZmZzZXQpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uICsgb2Zmc2V0LFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gdGhpcy5lbmRQb3NpdGlvbiArIG9mZnNldCxcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHRoaXMuc3RhcnRQb3NpdGlvbiwgdGhpcy5lbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSB0aGlzLnN0YXJ0UG9zaXRpb24sXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSB0aGlzLmVuZFBvc2l0aW9uLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uLFxuICAgICAgICAgICAgZW5kUG9zaXRpb25cbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24gfSA9IGpzb24sXG4gICAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSAwLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gMCxcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU9wZXJhdGlvbihvcGVyYXRpb24pIHtcbiAgICBjb25zdCBjb250ZW50ID0gb3BlcmF0aW9uLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBwb3NpdGlvbiA9IG9wZXJhdGlvbi5nZXRQb3NpdGlvbigpLFxuICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSBjb250ZW50Lmxlbmd0aCxcbiAgICAgICAgICBzdGFydFBvc2l0aW9uID0gcG9zaXRpb24gKyBjb250ZW50TGVuZ3RoLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbiwgIC8vL1xuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU2VsZWN0aW9uKHNlbGVjdGlvbikge1xuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCk7XG5cbiAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsgIC8vL1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRE9NRWxlbWVudChkb21FbGVtZW50KSB7XG4gICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIH0gPSBkb21FbGVtZW50LFxuICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb25TdGFydCwgLy8vXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSBzZWxlY3Rpb25FbmQsIC8vL1xuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcblxuICB9XG5cbiAgc3RhdGljIGZyb21TdGFydFBvc2l0aW9uQW5kRW5kUG9zaXRpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiU2VsZWN0aW9uIiwic3RhcnRQb3NpdGlvbiIsImVuZFBvc2l0aW9uIiwiZ2V0U3RhcnRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwiaXNFbXB0eSIsImVtcHR5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiaXNFcXVhbFRvIiwic2VsZWN0aW9uIiwiZXF1YWxUbyIsInNlbGVjdGlvblN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsInN0YXJ0UG9zaXRpb25zRXF1YWwiLCJlbmRQb3NpdGlvbnNFcXVhbCIsInNldFN0YXJ0UG9zaXRpb24iLCJzZXRFbmRQb3NpdGlvbiIsInN0YXJ0UG9zaXRpb25TaGlmdGVkIiwic3RhcnRPZmZzZXQiLCJlbmRQb3NpdGlvblNoaWZ0ZWQiLCJlbmRPZmZzZXQiLCJlbXB0aWVkVG9TdGFydCIsImVtcHRpZWRUb0VuZCIsInRyYW5zZm9ybWVkIiwib3BlcmF0aW9ucyIsInRyYW5zZm9ybWVkU2VsZWN0aW9uIiwidHJhbnNmb3JtU2VsZWN0aW9uIiwiY29tcGFyZVRvIiwicmVzdWx0Iiwic2hpZnRlZCIsIm9mZnNldCIsImNsb25lIiwidG9KU09OIiwianNvbiIsImZyb21KU09OIiwiZnJvbU5vdGhpbmciLCJmcm9tT3BlcmF0aW9uIiwib3BlcmF0aW9uIiwiY29udGVudCIsImdldENvbnRlbnQiLCJwb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiY29udGVudExlbmd0aCIsImZyb21TZWxlY3Rpb24iLCJmcm9tRE9NRWxlbWVudCIsImRvbUVsZW1lbnQiLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsImZy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
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWxlY3Rpb24uanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB0cmFuc2Zvcm1TZWxlY3Rpb24gZnJvbSBcIi4vdHJhbnNmb3JtL3NlbGVjdGlvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbikge1xuICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247XG4gICAgdGhpcy5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuICB9XG5cbiAgZ2V0U3RhcnRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydFBvc2l0aW9uO1xuICB9XG5cbiAgZ2V0RW5kUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5kUG9zaXRpb247XG4gIH1cblxuICBpc0VtcHR5KCkge1xuICAgIGNvbnN0IGVtcHR5ID0gKHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gdGhpcy5lbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gKHRoaXMuZW5kUG9zaXRpb24gLSB0aGlzLnN0YXJ0UG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGlzRXF1YWxUbyhzZWxlY3Rpb24pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgaWYgKHNlbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXG4gICAgICAgICAgICBzZWxlY3Rpb25FbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxuICAgICAgICAgICAgc3RhcnRQb3NpdGlvbnNFcXVhbCA9ICh0aGlzLnN0YXJ0UG9zaXRpb24gPT09IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24pLFxuICAgICAgICAgICAgZW5kUG9zaXRpb25zRXF1YWwgPSAodGhpcy5lbmRQb3NpdGlvbiA9PT0gc2VsZWN0aW9uRW5kUG9zaXRpb24pO1xuXG4gICAgICBlcXVhbFRvID0gKHN0YXJ0UG9zaXRpb25zRXF1YWwgJiYgZW5kUG9zaXRpb25zRXF1YWwpO1xuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgc2V0U3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zdGFydFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjtcbiAgfVxuXG4gIHNldEVuZFBvc2l0aW9uKGVuZFBvc2l0aW9uKSB7XG4gICAgdGhpcy5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuICB9XG5cbiAgc3RhcnRQb3NpdGlvblNoaWZ0ZWQoc3RhcnRPZmZzZXQpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uICsgc3RhcnRPZmZzZXQsXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSB0aGlzLmVuZFBvc2l0aW9uLFxuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIGVuZFBvc2l0aW9uU2hpZnRlZChlbmRPZmZzZXQpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gdGhpcy5lbmRQb3NpdGlvbiArIGVuZE9mZnNldCxcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBlbXB0aWVkVG9TdGFydCgpIHtcbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbiwgIC8vL1xuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIGVtcHRpZWRUb0VuZCgpIHtcbiAgICBjb25zdCBlbmRQb3NpdGlvbiA9IHRoaXMuZW5kUG9zaXRpb24sXG4gICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uLCAgLy8vXG4gICAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgdHJhbnNmb3JtZWQob3BlcmF0aW9ucykge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMsIC8vL1xuICAgICAgICAgIHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gdHJhbnNmb3JtU2VsZWN0aW9uKHNlbGVjdGlvbiwgb3BlcmF0aW9ucyk7XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtZWRTZWxlY3Rpb247XG4gIH1cblxuICBjb21wYXJlVG8oc2VsZWN0aW9uKSB7XG4gICAgbGV0IHJlc3VsdCA9IDA7XG5cbiAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKTtcblxuICAgIGlmICh0aGlzLnN0YXJ0UG9zaXRpb24gPiBzdGFydFBvc2l0aW9uKSB7XG4gICAgICByZXN1bHQgPSArMTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGFydFBvc2l0aW9uIDwgc3RhcnRQb3NpdGlvbikge1xuICAgICAgcmVzdWx0ID0gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGVtcHRpZWQoKSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHRoaXMuc3RhcnRQb3NpdGlvbixcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb24sICAvLy9cbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBzaGlmdGVkKG9mZnNldCkge1xuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSB0aGlzLnN0YXJ0UG9zaXRpb24gKyBvZmZzZXQsXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSB0aGlzLmVuZFBvc2l0aW9uICsgb2Zmc2V0LFxuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24odGhpcy5zdGFydFBvc2l0aW9uLCB0aGlzLmVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHRoaXMuc3RhcnRQb3NpdGlvbixcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHRoaXMuZW5kUG9zaXRpb24sXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24sXG4gICAgICAgICAgICBlbmRQb3NpdGlvblxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbiB9ID0ganNvbixcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IDAsXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSAwLFxuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT3BlcmF0aW9uKG9wZXJhdGlvbikge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBvcGVyYXRpb24uZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHBvc2l0aW9uID0gb3BlcmF0aW9uLmdldFBvc2l0aW9uKCksXG4gICAgICAgICAgY29udGVudExlbmd0aCA9IGNvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBwb3NpdGlvbiArIGNvbnRlbnRMZW5ndGgsXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSBzdGFydFBvc2l0aW9uLCAgLy8vXG4gICAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21TZWxlY3Rpb24oc2VsZWN0aW9uKSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKTtcblxuICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pOyAgLy8vXG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21ET01FbGVtZW50KGRvbUVsZW1lbnQpIHtcbiAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgfSA9IGRvbUVsZW1lbnQsXG4gICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvblN0YXJ0LCAvLy9cbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHNlbGVjdGlvbkVuZCwgLy8vXG4gICAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuXG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXJ0UG9zaXRpb25BbmRFbmRQb3NpdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbikge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJTZWxlY3Rpb24iLCJzdGFydFBvc2l0aW9uIiwiZW5kUG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJpc0VtcHR5IiwiZW1wdHkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJpc0VxdWFsVG8iLCJzZWxlY3Rpb24iLCJlcXVhbFRvIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvbnNFcXVhbCIsImVuZFBvc2l0aW9uc0VxdWFsIiwic2V0U3RhcnRQb3NpdGlvbiIsInNldEVuZFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvblNoaWZ0ZWQiLCJzdGFydE9mZnNldCIsImVuZFBvc2l0aW9uU2hpZnRlZCIsImVuZE9mZnNldCIsImVtcHRpZWRUb1N0YXJ0IiwiZW1wdGllZFRvRW5kIiwidHJhbnNmb3JtZWQiLCJvcGVyYXRpb25zIiwidHJhbnNmb3JtZWRTZWxlY3Rpb24iLCJ0cmFuc2Zvcm1TZWxlY3Rpb24iLCJjb21wYXJlVG8iLCJyZXN1bHQiLCJlbXB0aWVkIiwic2hpZnRlZCIsIm9mZnNldCIsImNsb25lIiwidG9KU09OIiwianNvbiIsImZyb21KU09OIiwiZnJvbU5vdGhpbmciLCJmcm9tT3BlcmF0aW9uIiwib3BlcmF0aW9uIiwiY29udGVudCIsImdldENvbnRlbnQiLCJwb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiY29udGVudExlbmd0aCIsImZyb21TZWxlY3Rpb24iLCJmcm9tRE9NRWxlbWVudCIsImRvbUVsZW1lbnQiLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsImZyb21TdGFydFBvc2l0aW9uQW5kRW5kUG9zaXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7OzhEQUZVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhCLElBQUEsQUFBTUEsMEJBQU47YUFBTUEsVUFDUEMsYUFBYSxFQUFFQyxXQUFXOzhCQURuQkY7UUFFakIsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO1FBQ3JCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTs7aUJBSEZGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQjtnQkFDakIsT0FBTyxJQUFJLENBQUNGLGFBQWE7WUFDM0I7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCO2dCQUNmLE9BQU8sSUFBSSxDQUFDRixXQUFXO1lBQ3pCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVU7Z0JBQ1IsSUFBTUMsUUFBUyxJQUFJLENBQUNMLGFBQWEsS0FBSyxJQUFJLENBQUNDLFdBQVc7Z0JBRXRELE9BQU9JO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWTtnQkFDVixJQUFNQyxTQUFVLElBQUksQ0FBQ04sV0FBVyxHQUFHLElBQUksQ0FBQ0QsYUFBYTtnQkFFckQsT0FBT087WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVQyxTQUFTLEVBQUU7Z0JBQ25CLElBQUlDLFVBQVUsS0FBSztnQkFFbkIsSUFBSUQsY0FBYyxJQUFJLEVBQUU7b0JBQ3RCLElBQU1FLHlC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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easy-richtextarea",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.31",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/easy-richtextarea",
|
|
7
7
|
"description": "A textarea element that handles and hands off events well.",
|
package/src/richTextarea.js
CHANGED
|
@@ -430,14 +430,6 @@ export default class RichTextarea extends Element {
|
|
|
430
430
|
this.setSelection(selection, setPreviousSelection);
|
|
431
431
|
}
|
|
432
432
|
|
|
433
|
-
activateSelectionChangeHandler() {
|
|
434
|
-
document.on(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
deactivateSelectionChangeHandler() {
|
|
438
|
-
document.off(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
439
|
-
}
|
|
440
|
-
|
|
441
433
|
activate() {
|
|
442
434
|
this.on(CUT_EVENT_TYPE, this.cutHandler);
|
|
443
435
|
|
|
@@ -457,7 +449,7 @@ export default class RichTextarea extends Element {
|
|
|
457
449
|
|
|
458
450
|
this.on(CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
459
451
|
|
|
460
|
-
this.
|
|
452
|
+
document.on(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
461
453
|
|
|
462
454
|
this.addClass("active");
|
|
463
455
|
}
|
|
@@ -481,7 +473,7 @@ export default class RichTextarea extends Element {
|
|
|
481
473
|
|
|
482
474
|
this.off(CONTEXTMENU_EVENT_TYPE, this.contextmenuHandler);
|
|
483
475
|
|
|
484
|
-
this.
|
|
476
|
+
document.off(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
|
|
485
477
|
|
|
486
478
|
this.removeClass("active");
|
|
487
479
|
}
|
package/src/selection.js
CHANGED
|
@@ -69,16 +69,16 @@ export default class Selection {
|
|
|
69
69
|
|
|
70
70
|
emptiedToStart() {
|
|
71
71
|
const startPosition = this.startPosition,
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
endPosition = startPosition, ///
|
|
73
|
+
selection = new Selection(startPosition, endPosition);
|
|
74
74
|
|
|
75
75
|
return selection;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
emptiedToEnd() {
|
|
79
79
|
const endPosition = this.endPosition,
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
startPosition = endPosition, ///
|
|
81
|
+
selection = new Selection(startPosition, endPosition);
|
|
82
82
|
|
|
83
83
|
return selection;
|
|
84
84
|
}
|
|
@@ -106,6 +106,14 @@ export default class Selection {
|
|
|
106
106
|
return result;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
emptied() {
|
|
110
|
+
const startPosition = this.startPosition,
|
|
111
|
+
endPosition = startPosition, ///
|
|
112
|
+
selection = new Selection(startPosition, endPosition);
|
|
113
|
+
|
|
114
|
+
return selection;
|
|
115
|
+
}
|
|
116
|
+
|
|
109
117
|
shifted(offset) {
|
|
110
118
|
const startPosition = this.startPosition + offset,
|
|
111
119
|
endPosition = this.endPosition + offset,
|