Socket
Socket
Sign inDemoInstall

angular-mydatepicker

Package Overview
Dependencies
5
Maintainers
1
Versions
84
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.2 to 0.0.3

10

CHANGELOG.md

@@ -20,1 +20,11 @@ # 0.0.1 (2019-05-08)

* none
# 0.0.3 (2019-05-11)
### Bug Fixes
* none
### Features
* Now possible to mark or highlight repeatedly. For example value of those options can be {year: 0, month: 0, day: 10} which means that it affects every 10th day.

6

esm2015/lib/services/angular-mydatepicker.util.service.js

@@ -222,3 +222,3 @@ /**

for (let d of md.dates) {
if (d.year === date.year && d.month === date.month && d.day === date.day) {
if ((d.year === 0 || d.year === date.year) && (d.month === 0 || d.month === date.month) && d.day === date.day) {
return { marked: true, color: md.color };

@@ -251,3 +251,3 @@ }

for (let d of highlightDates) {
if (d.year === date.year && d.month === date.month && d.day === date.day) {
if ((d.year === 0 || d.year === date.year) && (d.month === 0 || d.month === date.month) && d.day === date.day) {
return true;

@@ -502,2 +502,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1teWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUd0RyxNQUFNLE9BQU8sV0FBVztJQUR4QjtRQUVFLGFBQVEsR0FBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQTRXekQsQ0FBQzs7Ozs7O0lBMVdDLFdBQVcsQ0FBQyxPQUFlLEVBQUUsT0FBbUI7WUFDMUMsRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUMsR0FBRyxPQUFPOztZQUVyRCxVQUFVLEdBQVksSUFBSSxDQUFDLFNBQVMsRUFBRTs7WUFDdEMsV0FBVyxHQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDOztZQUM3RSxVQUFVLEdBQVksVUFBVSxD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QUcsS0FBSyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQy9ELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUMxQjthQUNJLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDM0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ3hCO2FBQ0ksSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFVBQVUsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUNqRSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDM0I7YUFDSSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsU0FBUyxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQy9ELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUMxQjthQUNJLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDbkQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ3BCO2FBQ0ksSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLEtBQUssSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN2RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDdEI7YUFDSTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzs7WUE3V0YsVUFBVTs7OztJQUVULCtCQUF1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SU15RGF0ZU1vZGVsLCBJTXlTaW5nbGVEYXRlTW9kZWwsIElNeURhdGVSYW5nZU1vZGVsLCBJTXlEYXRlLCBJTXlEYXRlUmFuZ2UsIElNeU1vbnRoLCBJTXlNb250aExhYmVscywgSU15TWFya2VkRGF0ZXMsIElNeU1hcmtlZERhdGUsIElNeURhdGVGb3JtYXQsIElNeU9wdGlvbnN9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQge0tleUNvZGUsIEtleU5hbWV9IGZyb20gXCIuLi9lbnVtc1wiO1xuaW1wb3J0IHtELCBERCwgTSwgTU0sIE1NTSwgWVlZWSwgU1UsIE1PLCBUVSwgV0UsIFRILCBGUiwgU0EsIFpFUk9fU1RSLCBFTVBUWV9TVFJ9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFV0aWxTZXJ2aWNlIHtcbiAgd2Vla0RheXM6IEFycmF5PHN0cmluZz4gPSBbU1UsIE1PLCBUVSwgV0UsIFRILCBGUiwgU0FdO1xuXG4gIGlzRGF0ZVZhbGlkKGRhdGVTdHI6IHN0cmluZywgb3B0aW9uczogSU15T3B0aW9ucyk6IElNeURhdGUge1xuICAgIGxldCB7ZGF0ZUZvcm1hdCwgbWluWWVhciwgbWF4WWVhciwgbW9udGhMYWJlbHN9ID0gb3B0aW9ucztcblxuICAgIGxldCByZXR1cm5EYXRlOiBJTXlEYXRlID0gdGhpcy5yZXNldERhdGUoKTtcbiAgICBsZXQgZGF5c0luTW9udGg6IEFycmF5PG51bWJlcj4gPSBbMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07XG4gICAgbGV0IGlzTW9udGhTdHI6IGJvb2xlYW4gPSBkYXRlRm9ybWF0LmluZGV4T2YoTU1NKSAhPT0gLTE7XG4gICAgbGV0IGRlbGltZXRlcnM6IEFycmF5PHN0cmluZz4gPSBkYXRlRm9ybWF0Lm1hdGNoKC9bXihkbXkpXXsxLH0vZyk7XG5cbiAgICBsZXQgZGF0ZVZhbHVlOiBBcnJheTxJTXlEYXRlRm9ybWF0PiA9IHRoaXMuZ2V0RGF0ZVZhbHVlKGRhdGVTdHIsIGRhdGVGb3JtYXQsIGRlbGltZXRlcnMpO1xuICAgIGxldCB5ZWFyOiBudW1iZXIgPSB0aGlzLmdldE51bWJlckJ5VmFsdWUoZGF0ZVZhbHVlWzBdKTtcbiAgICBsZXQgbW9udGg6IG51bWJlciA9IGlzTW9udGhTdHIgPyB0aGlzLmdldE1vbnRoTnVtYmVyQnlNb250aE5hbWUoZGF0ZVZhbHVlWzFdLCBtb250aExhYmVscykgOiB0aGlzLmdldE51bWJlckJ5VmFsdWUoZGF0ZVZhbHVlWzFdKTtcbiAgICBsZXQgZGF5OiBudW1iZXIgPSB0aGlzLmdldE51bWJlckJ5VmFsdWUoZGF0ZVZhbHVlWzJdKTtcblxuICAgIGlmIChtb250aCAhPT0gLTEgJiYgZGF5ICE9PSAtMSAmJiB5ZWFyICE9PSAtMSkge1xuICAgICAgaWYgKHllYXIgPCBtaW5ZZWFyIHx8IHllYXIgPiBtYXhZZWFyIHx8IG1vbnRoIDwgMSB8fCBtb250aCA+IDEyKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5EYXRlO1xuICAgICAgfVxuXG4gICAgICBsZXQgZGF0ZTogSU15RGF0ZSA9IHt5ZWFyOiB5ZWFyLCBtb250aDogbW9udGgsIGRheTogZGF5fTtcblxuICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZERhdGUoZGF0ZSwgb3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuIHJldHVybkRhdGU7XG4gICAgICB9XG5cbiAgICAgIGlmICh5ZWFyICUgNDAwID09PSAwIHx8ICh5ZWFyICUgMTAwICE9PSAwICYmIHllYXIgJSA0ID09PSAwKSkge1xuICAgICAgICBkYXlzSW5Nb250aFsxXSA9IDI5O1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF5IDwgMSB8fCBkYXkgPiBkYXlzSW5Nb250aFttb250aCAtIDFdKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5EYXRlO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZCBkYXRlXG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybkRhdGU7XG4gIH1cblxuICBpc0RhdGVWYWxpZERhdGVSYW5nZShkYXRlUmFuZ2VTdHI6IHN0cmluZywgb3B0aW9uczogSU15T3B0aW9ucyk6IElNeURhdGVSYW5nZSB7XG4gICAgbGV0IGRhdGVSYW5nZTogSU15RGF0ZVJhbmdlID0ge2JlZ2luOiB0aGlzLnJlc2V0RGF0ZSgpLCBlbmQ6IHRoaXMucmVzZXREYXRlKCl9O1xuICAgIGlmIChkYXRlUmFuZ2VTdHIgJiYgZGF0ZVJhbmdlU3RyLmxlbmd0aCkge1xuICAgICAgbGV0IGRhdGVzOiBBcnJheTxzdHJpbmc+ID0gZGF0ZVJhbmdlU3RyLnNwbGl0KG9wdGlvbnMuZGF0ZVJhbmdlRGF0ZXNEZWxpbWl0ZXIpO1xuICAgICAgaWYoZGF0ZXMgJiYgZGF0ZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIGxldCBbYmVnaW5EYXRlLCBlbmREYXRlXSA9IGRhdGVzO1xuICAgICAgICBsZXQgYmVnaW46IElNeURhdGUgPSB0aGlzLmlzRGF0ZVZhbGlkKGJlZ2luRGF0ZSwgb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoYmVnaW4pKSB7XG4gICAgICAgICAgbGV0IGVuZDogSU15RGF0ZSA9IHRoaXMuaXNEYXRlVmFsaWQoZW5kRGF0ZSwgb3B0aW9ucyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkRGF0ZShlbmQpICYmIHRoaXMuaXNEYXRlU2FtZU9yRWFybGllcihiZWdpbiwgZW5kKSkge1xuICAgICAgICAgICAgZGF0ZVJhbmdlID0ge2JlZ2luLCBlbmR9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0ZVJhbmdlO1xuICB9XG5cbiAgZ2V0RGF0ZVZhbHVlKGRhdGVTdHI6IHN0cmluZywgZGF0ZUZvcm1hdDogc3RyaW5nLCBkZWxpbWV0ZXJzOiBBcnJheTxzdHJpbmc+KTogQXJyYXk8SU15RGF0ZUZvcm1hdD4ge1xuICAgIGxldCBkZWw6IHN0cmluZyA9IGRlbGltZXRlcnNbMF07XG4gICAgaWYgKGRlbGltZXRlcnNbMF0gIT09IGRlbGltZXRlcnNbMV0pIHtcbiAgICAgIGRlbCA9IGRlbGltZXRlcnNbMF0gKyBkZWxpbWV0ZXJzWzFdO1xuICAgIH1cblxuICAgIGxldCByZTogYW55ID0gbmV3IFJlZ0V4cChcIltcIiArIGRlbCArIFwiXVwiKTtcbiAgICBsZXQgZHM6IEFycmF5PHN0cmluZz4gPSBkYXRlU3RyLnNwbGl0KHJlKTtcbiAgICBsZXQgZGY6IEFycmF5PHN0cmluZz4gPSBkYXRlRm9ybWF0LnNwbGl0KHJlKTtcbiAgICBsZXQgZGE6IEFycmF5PElNeURhdGVGb3JtYXQ+ID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRmLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZGZbaV0uaW5kZXhPZihZWVlZKSAhPT0gLTEpIHtcbiAgICAgICAgZGFbMF0gPSB7dmFsdWU6IGRzW2ldLCBmb3JtYXQ6IGRmW2ldfTtcbiAgICAgIH1cbiAgICAgIGlmIChkZltpXS5pbmRleE9mKE0pICE9PSAtMSkge1xuICAgICAgICBkYVsxXSA9IHt2YWx1ZTogZHNbaV0sIGZvcm1hdDogZGZbaV19O1xuICAgICAgfVxuICAgICAgaWYgKGRmW2ldLmluZGV4T2YoRCkgIT09IC0xKSB7XG4gICAgICAgIGRhWzJdID0ge3ZhbHVlOiBkc1tpXSwgZm9ybWF0OiBkZltpXX07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYTtcbiAgfVxuXG4gIGdldE1vbnRoTnVtYmVyQnlNb250aE5hbWUoZGY6IElNeURhdGVGb3JtYXQsIG1vbnRoTGFiZWxzOiBJTXlNb250aExhYmVscyk6IG51bWJlciB7XG4gICAgaWYgKGRmLnZhbHVlKSB7XG4gICAgICBmb3IgKGxldCBrZXkgPSAxOyBrZXkgPD0gMTI7IGtleSsrKSB7XG4gICAgICAgIGlmIChkZi52YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBtb250aExhYmVsc1trZXldLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIGdldE51bWJlckJ5VmFsdWUoZGY6IElNeURhdGVGb3JtYXQpOiBudW1iZXIge1xuICAgIGlmICghL15cXGQrJC8udGVzdChkZi52YWx1ZSkpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBsZXQgbmJyOiBudW1iZXIgPSBOdW1iZXIoZGYudmFsdWUpO1xuICAgIGlmIChkZi5mb3JtYXQubGVuZ3RoID09PSAxICYmIGRmLnZhbHVlLmxlbmd0aCAhPT0gMSAmJiBuYnIgPCAxMCB8fCBkZi5mb3JtYXQubGVuZ3RoID09PSAxICYmIGRmLnZhbHVlLmxlbmd0aCAhPT0gMiAmJiBuYnIgPj0gMTApIHtcbiAgICAgIG5iciA9IC0xO1xuICAgIH1cbiAgICBlbHNlIGlmIChkZi5mb3JtYXQubGVuZ3RoID09PSAyICYmIGRmLnZhbHVlLmxlbmd0aCA+IDIpIHtcbiAgICAgIG5iciA9IC0xO1xuICAgIH1cbiAgICByZXR1cm4gbmJyO1xuICB9XG5cbiAgcGFyc2VEZWZhdWx0TW9udGgobW9udGhTdHJpbmc6IHN0cmluZyk6IElNeU1vbnRoIHtcbiAgICBsZXQgbW9udGg6IElNeU1vbnRoID0ge21vbnRoVHh0OiBFTVBUWV9TVFIsIG1vbnRoTmJyOiAwLCB5ZWFyOiAwfTtcbiAgICBpZiAobW9udGhTdHJpbmcgIT09IEVNUFRZX1NUUikge1xuICAgICAgbGV0IHNwbGl0ID0gbW9udGhTdHJpbmcuc3BsaXQobW9udGhTdHJpbmcubWF0Y2goL1teMC05XS8pWzBdKTtcbiAgICAgIG1vbnRoLm1vbnRoTmJyID0gc3BsaXRbMF0ubGVuZ3RoID09PSAyID8gcGFyc2VJbnQoc3BsaXRbMF0pIDogcGFyc2VJbnQoc3BsaXRbMV0pO1xuICAgICAgbW9udGgueWVhciA9IHNwbGl0WzBdLmxlbmd0aCA9PT0gMiA/IHBhcnNlSW50KHNwbGl0WzFdKSA6IHBhcnNlSW50KHNwbGl0WzBdKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vbnRoO1xuICB9XG5cbiAgaXNEaXNhYmxlZERhdGUoZGF0ZTogSU15RGF0ZSwgb3B0aW9uczogSU15T3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIGxldCB7bWluWWVhciwgbWF4WWVhciwgZGlzYWJsZVVudGlsLCBkaXNhYmxlU2luY2UsIGRpc2FibGVXZWVrZW5kcywgZGlzYWJsZURhdGVzLCBkaXNhYmxlRGF0ZVJhbmdlcywgZGlzYWJsZVdlZWtkYXlzLCBlbmFibGVEYXRlc30gPSBvcHRpb25zO1xuXG4gICAgZm9yIChsZXQgZCBvZiBlbmFibGVEYXRlcykge1xuICAgICAgaWYgKChkLnllYXIgPT09IDAgfHwgZC55ZWFyID09PSBkYXRlLnllYXIpICYmIChkLm1vbnRoID09PSAwIHx8IGQubW9udGggPT09IGRhdGUubW9udGgpICYmIGQuZGF5ID09PSBkYXRlLmRheSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGUueWVhciA8IG1pblllYXIgJiYgZGF0ZS5tb250aCA9PT0gMTIgfHwgZGF0ZS55ZWFyID4gbWF4WWVhciAmJiBkYXRlLm1vbnRoID09PSAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZU1zOiBudW1iZXIgPSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKTtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkRGF0ZShkaXNhYmxlVW50aWwpICYmIGRhdGVNcyA8PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkaXNhYmxlVW50aWwpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkRGF0ZShkaXNhYmxlU2luY2UpICYmIGRhdGVNcyA+PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkaXNhYmxlU2luY2UpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZVdlZWtlbmRzKSB7XG4gICAgICBsZXQgZGF5TmJyID0gdGhpcy5nZXREYXlOdW1iZXIoZGF0ZSk7XG4gICAgICBpZiAoZGF5TmJyID09PSAwIHx8IGRheU5iciA9PT0gNikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgZG4gPSB0aGlzLmdldERheU51bWJlcihkYXRlKTtcbiAgICBpZiAoZGlzYWJsZVdlZWtkYXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IHdkIG9mIGRpc2FibGVXZWVrZGF5cykge1xuICAgICAgICBpZiAoZG4gPT09IHRoaXMuZ2V0V2Vla2RheUluZGV4KHdkKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgZCBvZiBkaXNhYmxlRGF0ZXMpIHtcbiAgICAgIGlmICgoZC55ZWFyID09PSAwIHx8IGQueWVhciA9PT0gZGF0ZS55ZWFyKSAmJiAoZC5tb250aCA9PT0gMCB8fCBkLm1vbnRoID09PSBkYXRlLm1vbnRoKSAmJiBkLmRheSA9PT0gZGF0ZS5kYXkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgZCBvZiBkaXNhYmxlRGF0ZVJhbmdlcykge1xuICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoZC5iZWdpbikgJiYgdGhpcy5pc0luaXRpYWxpemVkRGF0ZShkLmVuZCkgJiYgZGF0ZU1zID49IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGQuYmVnaW4pICYmIGRhdGVNcyA8PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkLmVuZCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlzTWFya2VkRGF0ZShkYXRlOiBJTXlEYXRlLCBtYXJrZWREYXRlczogQXJyYXk8SU15TWFya2VkRGF0ZXM+LCBtYXJrV2Vla2VuZHM6IElNeU1hcmtlZERhdGUpOiBJTXlNYXJrZWREYXRlIHtcbiAgICBmb3IgKGxldCBtZCBvZiBtYXJrZWREYXRlcykge1xuICAgICAgZm9yIChsZXQgZCBvZiBtZC5kYXRlcykge1xuICAgICAgICBpZiAoZC55ZWFyID09PSBkYXRlLnllYXIgJiYgZC5tb250aCA9PT0gZGF0ZS5tb250aCAmJiBkLmRheSA9PT0gZGF0ZS5kYXkpIHtcbiAgICAgICAgICByZXR1cm4ge21hcmtlZDogdHJ1ZSwgY29sb3I6IG1kLmNvbG9yfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobWFya1dlZWtlbmRzICYmIG1hcmtXZWVrZW5kcy5tYXJrZWQpIHtcbiAgICAgIGxldCBkYXlOYnIgPSB0aGlzLmdldERheU51bWJlcihkYXRlKTtcbiAgICAgIGlmIChkYXlOYnIgPT09IDAgfHwgZGF5TmJyID09PSA2KSB7XG4gICAgICAgIHJldHVybiB7bWFya2VkOiB0cnVlLCBjb2xvcjogbWFya1dlZWtlbmRzLmNvbG9yfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHttYXJrZWQ6IGZhbHNlLCBjb2xvcjogRU1QVFlfU1RSfTtcbiAgfVxuXG4gIGlzSGlnaGxpZ2h0ZWREYXRlKGRhdGU6IElNeURhdGUsIHN1bkhpZ2hsaWdodDogYm9vbGVhbiwgc2F0SGlnaGxpZ2h0OiBib29sZWFuLCBoaWdobGlnaHREYXRlczogQXJyYXk8SU15RGF0ZT4pOiBib29sZWFuIHtcbiAgICBsZXQgZGF5TmJyOiBudW1iZXIgPSB0aGlzLmdldERheU51bWJlcihkYXRlKTtcbiAgICBpZiAoc3VuSGlnaGxpZ2h0ICYmIGRheU5iciA9PT0gMCB8fCBzYXRIaWdobGlnaHQgJiYgZGF5TmJyID09PSA2KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yIChsZXQgZCBvZiBoaWdobGlnaHREYXRlcykge1xuICAgICAgaWYgKGQueWVhciA9PT0gZGF0ZS55ZWFyICYmIGQubW9udGggPT09IGRhdGUubW9udGggJiYgZC5kYXkgPT09IGRhdGUuZGF5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRXZWVrTnVtYmVyKGRhdGU6IElNeURhdGUpOiBudW1iZXIge1xuICAgIGxldCBkOiBEYXRlID0gbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXksIDAsIDAsIDAsIDApO1xuICAgIGQuc2V0RGF0ZShkLmdldERhdGUoKSArIChkLmdldERheSgpID09PSAwID8gLTMgOiA0IC0gZC5nZXREYXkoKSkpO1xuICAgIHJldHVybiBNYXRoLnJvdW5kKCgoZC5nZXRUaW1lKCkgLSBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDAsIDQpLmdldFRpbWUoKSkgLyA4NjQwMDAwMCkgLyA3KSArIDE7XG4gIH1cblxuICBpc01vbnRoRGlzYWJsZWRCeURpc2FibGVVbnRpbChkYXRlOiBJTXlEYXRlLCBkaXNhYmxlVW50aWw6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkRGF0ZShkaXNhYmxlVW50aWwpICYmIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGUpIDw9IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRpc2FibGVVbnRpbCk7XG4gIH1cblxuICBpc01vbnRoRGlzYWJsZWRCeURpc2FibGVTaW5jZShkYXRlOiBJTXlEYXRlLCBkaXNhYmxlU2luY2U6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkRGF0ZShkaXNhYmxlU2luY2UpICYmIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGUpID49IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRpc2FibGVTaW5jZSk7XG4gIH1cblxuICBnZXREYXRlTW9kZWwoZGF0ZTogSU15RGF0ZSwgZGF0ZVJhbmdlOiBJTXlEYXRlUmFuZ2UsIGRhdGVGb3JtYXQ6IHN0cmluZywgbW9udGhMYWJlbHM6IElNeU1vbnRoTGFiZWxzLCByYW5nZURlbGltaXRlcjogc3RyaW5nLCBkYXRlU3RyOiBzdHJpbmcgPSBFTVBUWV9TVFIpOiBJTXlEYXRlTW9kZWwge1xuICAgIGxldCBzaW5nbGVEYXRlTW9kZWw6IElNeVNpbmdsZURhdGVNb2RlbCA9IG51bGw7XG4gICAgbGV0IGRhdGVSYW5nZU1vZGVsOiBJTXlEYXRlUmFuZ2VNb2RlbCA9IG51bGw7XG5cbiAgICBpZiAoZGF0ZSkge1xuICAgICAgc2luZ2xlRGF0ZU1vZGVsID0ge1xuICAgICAgICBkYXRlOiBkYXRlLFxuICAgICAgICBqc0RhdGU6IHRoaXMuZ2V0RGF0ZShkYXRlKSxcbiAgICAgICAgZm9ybWF0dGVkOiBkYXRlU3RyLmxlbmd0aCA/IGRhdGVTdHIgOiB0aGlzLmZvcm1hdERhdGUoZGF0ZSwgZGF0ZUZvcm1hdCwgbW9udGhMYWJlbHMpLFxuICAgICAgICBlcG9jOiB0aGlzLmdldEVwb2NUaW1lKGRhdGUpXG4gICAgICB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGRhdGVSYW5nZU1vZGVsID0ge1xuICAgICAgICBiZWdpbkRhdGU6IGRhdGVSYW5nZS5iZWdpbixcbiAgICAgICAgYmVnaW5Kc0RhdGU6IHRoaXMuZ2V0RGF0ZShkYXRlUmFuZ2UuYmVnaW4pLFxuICAgICAgICBiZWdpbkVwb2M6IHRoaXMuZ2V0RXBvY1RpbWUoZGF0ZVJhbmdlLmJlZ2luKSxcbiAgICAgICAgZW5kRGF0ZTogZGF0ZVJhbmdlLmVuZCxcbiAgICAgICAgZW5kSnNEYXRlOiB0aGlzLmdldERhdGUoZGF0ZVJhbmdlLmVuZCksXG4gICAgICAgIGVuZEVwb2M6IHRoaXMuZ2V0RXBvY1RpbWUoZGF0ZVJhbmdlLmVuZCksXG4gICAgICAgIGZvcm1hdHRlZDogdGhpcy5mb3JtYXREYXRlKGRhdGVSYW5nZS5iZWdpbiwgZGF0ZUZvcm1hdCwgbW9udGhMYWJlbHMpICsgcmFuZ2VEZWxpbWl0ZXIgKyB0aGlzLmZvcm1hdERhdGUoZGF0ZVJhbmdlLmVuZCwgZGF0ZUZvcm1hdCwgbW9udGhMYWJlbHMpXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpc1JhbmdlOiBkYXRlID09PSBudWxsLFxuICAgICAgc2luZ2xlRGF0ZTogc2luZ2xlRGF0ZU1vZGVsLFxuICAgICAgZGF0ZVJhbmdlOiBkYXRlUmFuZ2VNb2RlbFxuICAgIH07XG4gIH1cblxuICBmb3JtYXREYXRlKGRhdGU6IElNeURhdGUsIGRhdGVGb3JtYXQ6IHN0cmluZywgbW9udGhMYWJlbHM6IElNeU1vbnRoTGFiZWxzKTogc3RyaW5nIHtcbiAgICBsZXQgZm9ybWF0dGVkOiBzdHJpbmcgPSBkYXRlRm9ybWF0LnJlcGxhY2UoWVlZWSwgU3RyaW5nKGRhdGUueWVhcikpO1xuXG4gICAgaWYgKGRhdGVGb3JtYXQuaW5kZXhPZihNTU0pICE9PSAtMSkge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoTU1NLCBtb250aExhYmVsc1tkYXRlLm1vbnRoXSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGVGb3JtYXQuaW5kZXhPZihNTSkgIT09IC0xKSB7XG4gICAgICBmb3JtYXR0ZWQgPSBmb3JtYXR0ZWQucmVwbGFjZShNTSwgdGhpcy5wcmVaZXJvKGRhdGUubW9udGgpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3JtYXR0ZWQgPSBmb3JtYXR0ZWQucmVwbGFjZShNLCBTdHJpbmcoZGF0ZS5tb250aCkpO1xuICAgIH1cblxuICAgIGlmIChkYXRlRm9ybWF0LmluZGV4T2YoREQpICE9PSAtMSkge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoREQsIHRoaXMucHJlWmVybyhkYXRlLmRheSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKEQsIFN0cmluZyhkYXRlLmRheSkpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVkO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkRGF0ZShtb2RlbDogSU15RGF0ZU1vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gIW1vZGVsLmlzUmFuZ2UgPyBtb2RlbC5zaW5nbGVEYXRlLmZvcm1hdHRlZCA6IG1vZGVsLmRhdGVSYW5nZS5mb3JtYXR0ZWQ7XG4gIH1cblxuICBwcmVaZXJvKHZhbDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsIDwgMTAgPyBaRVJPX1NUUiArIHZhbCA6IFN0cmluZyh2YWwpO1xuICB9XG5cbiAgaXNJbml0aWFsaXplZERhdGUoZGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRlLnllYXIgIT09IDAgJiYgZGF0ZS5tb250aCAhPT0gMCAmJiBkYXRlLmRheSAhPT0gMDtcbiAgfVxuXG4gIGlzRGF0ZUVhcmxpZXIoZmlyc3REYXRlOiBJTXlEYXRlLCBzZWNvbmREYXRlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGZpcnN0RGF0ZSkgPCB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhzZWNvbmREYXRlKTtcbiAgfVxuXG4gIGlzRGF0ZVNhbWVPckVhcmxpZXIoZmlyc3REYXRlOiBJTXlEYXRlLCBzZWNvbmREYXRlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGZpcnN0RGF0ZSkgPD0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoc2Vjb25kRGF0ZSk7XG4gIH1cblxuICBpc0RhdGVTYW1lKGZpcnN0RGF0ZTogSU15RGF0ZSwgc2Vjb25kRGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhmaXJzdERhdGUpID09PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhzZWNvbmREYXRlKTtcbiAgfVxuXG4gIGlzRGF0ZVJhbmdlQmVnaW5PckVuZFNhbWUoZGF0ZVJhbmdlOiBJTXlEYXRlUmFuZ2UsIGRhdGU6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICBsZXQgZGF0ZU1zOiBudW1iZXIgPSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKTtcbiAgICByZXR1cm4gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGF0ZVJhbmdlLmJlZ2luKSA9PT0gZGF0ZU1zIHx8IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGVSYW5nZS5lbmQpID09PSBkYXRlTXM7XG4gIH1cblxuICBpc0RhdGVJblJhbmdlKGRhdGU6IElNeURhdGUsIGRhdGVSYW5nZTogSU15RGF0ZVJhbmdlKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGRhdGVSYW5nZS5iZWdpbikgfHwgIXRoaXMuaXNJbml0aWFsaXplZERhdGUoZGF0ZVJhbmdlLmVuZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlU2FtZU9yRWFybGllcihkYXRlUmFuZ2UuYmVnaW4sIGRhdGUpICYmIHRoaXMuaXNEYXRlU2FtZU9yRWFybGllcihkYXRlLCBkYXRlUmFuZ2UuZW5kKTtcbiAgfVxuXG4gIHJlc2V0RGF0ZSgpOiBJTXlEYXRlIHtcbiAgICByZXR1cm4ge3llYXI6IDAsIG1vbnRoOiAwLCBkYXk6IDB9O1xuICB9XG5cbiAgZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGU6IElNeURhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldERhdGUoZGF0ZSkuZ2V0VGltZSgpO1xuICB9XG5cbiAgZ2V0RGF0ZShkYXRlOiBJTXlEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIGdldERheU51bWJlcihkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXksIDAsIDAsIDAsIDApLmdldERheSgpO1xuICB9XG5cbiAgZ2V0V2Vla2RheUluZGV4KHdkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy53ZWVrRGF5cy5pbmRleE9mKHdkKTtcbiAgfVxuXG4gIGdldEVwb2NUaW1lKGRhdGU6IElNeURhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGUpIC8gMTAwMC4wKTtcbiAgfVxuXG4gIGdldEtleUNvZGVGcm9tRXZlbnQoZXZlbnQ6IGFueSk6IG51bWJlciB7XG4gICAgbGV0IGtleTogYW55ID0gZXZlbnQua2V5IHx8IGV2ZW50LmtleUNvZGU7XG5cbiAgICBpZiAoa2V5ID09PSBLZXlOYW1lLmVudGVyIHx8IGtleSA9PT0gS2V5Q29kZS5lbnRlcikge1xuICAgICAgcmV0dXJuIEtleUNvZGUuZW50ZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS5lc2MgfHwga2V5ID09PSBLZXlDb2RlLmVzYykge1xuICAgICAgcmV0dXJuIEtleUNvZGUuZXNjO1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUuc3BhY2UgfHwga2V5ID09PSBLZXlDb2RlLnNwYWNlKSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5zcGFjZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLmxlZnRBcnJvdyB8fCBrZXkgPT09IEtleUNvZGUubGVmdEFycm93KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5sZWZ0QXJyb3c7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS51cEFycm93IHx8IGtleSA9PT0gS2V5Q29kZS51cEFycm93KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS51cEFycm93O1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUucmlnaHRBcnJvdyB8fCBrZXkgPT09IEtleUNvZGUucmlnaHRBcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUucmlnaHRBcnJvdztcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLmRvd25BcnJvdyB8fCBrZXkgPT09IEtleUNvZGUuZG93bkFycm93KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5kb3duQXJyb3c7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS50YWIgfHwga2V5ID09PSBLZXlDb2RlLnRhYikge1xuICAgICAgcmV0dXJuIEtleUNvZGUudGFiO1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUuc2hpZnQgfHwga2V5ID09PSBLZXlDb2RlLnNoaWZ0KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5zaGlmdDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1teWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUd0RyxNQUFNLE9BQU8sV0FBVztJQUR4QjtRQUVFLGFBQVEsR0FBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQTRXekQsQ0FBQzs7Ozs7O0lBMVdDLFdBQVcsQ0FBQyxPQUFlLEVBQUUsT0FBbUI7WUFDMUMsRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUMsR0FBRyxPQUFPOztZQUVyRCxVQUFVLEdBQVksSUFBSSxDQUFDLFNBQVMsRUFBRTs7WUFDdEMsV0FBVyxHQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDOztZQUM3RSxVQUFVLEdBQVksVUFBVSxD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Q0FBQztTQUNwQjthQUNJLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdkQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ3RCO2FBQ0ksSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFNBQVMsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMvRCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDMUI7YUFDSSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsT0FBTyxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQzNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUN4QjthQUNJLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxVQUFVLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDakUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQzNCO2FBQ0ksSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFNBQVMsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMvRCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDMUI7YUFDSSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ25ELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUNwQjthQUNJLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdkQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ3RCO2FBQ0k7WUFDSCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7O1lBN1dGLFVBQVU7Ozs7SUFFVCwrQkFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0lNeURhdGVNb2RlbCwgSU15U2luZ2xlRGF0ZU1vZGVsLCBJTXlEYXRlUmFuZ2VNb2RlbCwgSU15RGF0ZSwgSU15RGF0ZVJhbmdlLCBJTXlNb250aCwgSU15TW9udGhMYWJlbHMsIElNeU1hcmtlZERhdGVzLCBJTXlNYXJrZWREYXRlLCBJTXlEYXRlRm9ybWF0LCBJTXlPcHRpb25zfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHtLZXlDb2RlLCBLZXlOYW1lfSBmcm9tIFwiLi4vZW51bXNcIjtcbmltcG9ydCB7RCwgREQsIE0sIE1NLCBNTU0sIFlZWVksIFNVLCBNTywgVFUsIFdFLCBUSCwgRlIsIFNBLCBaRVJPX1NUUiwgRU1QVFlfU1RSfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVdGlsU2VydmljZSB7XG4gIHdlZWtEYXlzOiBBcnJheTxzdHJpbmc+ID0gW1NVLCBNTywgVFUsIFdFLCBUSCwgRlIsIFNBXTtcblxuICBpc0RhdGVWYWxpZChkYXRlU3RyOiBzdHJpbmcsIG9wdGlvbnM6IElNeU9wdGlvbnMpOiBJTXlEYXRlIHtcbiAgICBsZXQge2RhdGVGb3JtYXQsIG1pblllYXIsIG1heFllYXIsIG1vbnRoTGFiZWxzfSA9IG9wdGlvbnM7XG5cbiAgICBsZXQgcmV0dXJuRGF0ZTogSU15RGF0ZSA9IHRoaXMucmVzZXREYXRlKCk7XG4gICAgbGV0IGRheXNJbk1vbnRoOiBBcnJheTxudW1iZXI+ID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuICAgIGxldCBpc01vbnRoU3RyOiBib29sZWFuID0gZGF0ZUZvcm1hdC5pbmRleE9mKE1NTSkgIT09IC0xO1xuICAgIGxldCBkZWxpbWV0ZXJzOiBBcnJheTxzdHJpbmc+ID0gZGF0ZUZvcm1hdC5tYXRjaCgvW14oZG15KV17MSx9L2cpO1xuXG4gICAgbGV0IGRhdGVWYWx1ZTogQXJyYXk8SU15RGF0ZUZvcm1hdD4gPSB0aGlzLmdldERhdGVWYWx1ZShkYXRlU3RyLCBkYXRlRm9ybWF0LCBkZWxpbWV0ZXJzKTtcbiAgICBsZXQgeWVhcjogbnVtYmVyID0gdGhpcy5nZXROdW1iZXJCeVZhbHVlKGRhdGVWYWx1ZVswXSk7XG4gICAgbGV0IG1vbnRoOiBudW1iZXIgPSBpc01vbnRoU3RyID8gdGhpcy5nZXRNb250aE51bWJlckJ5TW9udGhOYW1lKGRhdGVWYWx1ZVsxXSwgbW9udGhMYWJlbHMpIDogdGhpcy5nZXROdW1iZXJCeVZhbHVlKGRhdGVWYWx1ZVsxXSk7XG4gICAgbGV0IGRheTogbnVtYmVyID0gdGhpcy5nZXROdW1iZXJCeVZhbHVlKGRhdGVWYWx1ZVsyXSk7XG5cbiAgICBpZiAobW9udGggIT09IC0xICYmIGRheSAhPT0gLTEgJiYgeWVhciAhPT0gLTEpIHtcbiAgICAgIGlmICh5ZWFyIDwgbWluWWVhciB8fCB5ZWFyID4gbWF4WWVhciB8fCBtb250aCA8IDEgfHwgbW9udGggPiAxMikge1xuICAgICAgICByZXR1cm4gcmV0dXJuRGF0ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGU6IElNeURhdGUgPSB7eWVhcjogeWVhciwgbW9udGg6IG1vbnRoLCBkYXk6IGRheX07XG5cbiAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWREYXRlKGRhdGUsIG9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5EYXRlO1xuICAgICAgfVxuXG4gICAgICBpZiAoeWVhciAlIDQwMCA9PT0gMCB8fCAoeWVhciAlIDEwMCAhPT0gMCAmJiB5ZWFyICUgNCA9PT0gMCkpIHtcbiAgICAgICAgZGF5c0luTW9udGhbMV0gPSAyOTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRheSA8IDEgfHwgZGF5ID4gZGF5c0luTW9udGhbbW9udGggLSAxXSkge1xuICAgICAgICByZXR1cm4gcmV0dXJuRGF0ZTtcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWQgZGF0ZVxuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5EYXRlO1xuICB9XG5cbiAgaXNEYXRlVmFsaWREYXRlUmFuZ2UoZGF0ZVJhbmdlU3RyOiBzdHJpbmcsIG9wdGlvbnM6IElNeU9wdGlvbnMpOiBJTXlEYXRlUmFuZ2Uge1xuICAgIGxldCBkYXRlUmFuZ2U6IElNeURhdGVSYW5nZSA9IHtiZWdpbjogdGhpcy5yZXNldERhdGUoKSwgZW5kOiB0aGlzLnJlc2V0RGF0ZSgpfTtcbiAgICBpZiAoZGF0ZVJhbmdlU3RyICYmIGRhdGVSYW5nZVN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBkYXRlczogQXJyYXk8c3RyaW5nPiA9IGRhdGVSYW5nZVN0ci5zcGxpdChvcHRpb25zLmRhdGVSYW5nZURhdGVzRGVsaW1pdGVyKTtcbiAgICAgIGlmKGRhdGVzICYmIGRhdGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBsZXQgW2JlZ2luRGF0ZSwgZW5kRGF0ZV0gPSBkYXRlcztcbiAgICAgICAgbGV0IGJlZ2luOiBJTXlEYXRlID0gdGhpcy5pc0RhdGVWYWxpZChiZWdpbkRhdGUsIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGJlZ2luKSkge1xuICAgICAgICAgIGxldCBlbmQ6IElNeURhdGUgPSB0aGlzLmlzRGF0ZVZhbGlkKGVuZERhdGUsIG9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoZW5kKSAmJiB0aGlzLmlzRGF0ZVNhbWVPckVhcmxpZXIoYmVnaW4sIGVuZCkpIHtcbiAgICAgICAgICAgIGRhdGVSYW5nZSA9IHtiZWdpbiwgZW5kfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGVSYW5nZTtcbiAgfVxuXG4gIGdldERhdGVWYWx1ZShkYXRlU3RyOiBzdHJpbmcsIGRhdGVGb3JtYXQ6IHN0cmluZywgZGVsaW1ldGVyczogQXJyYXk8c3RyaW5nPik6IEFycmF5PElNeURhdGVGb3JtYXQ+IHtcbiAgICBsZXQgZGVsOiBzdHJpbmcgPSBkZWxpbWV0ZXJzWzBdO1xuICAgIGlmIChkZWxpbWV0ZXJzWzBdICE9PSBkZWxpbWV0ZXJzWzFdKSB7XG4gICAgICBkZWwgPSBkZWxpbWV0ZXJzWzBdICsgZGVsaW1ldGVyc1sxXTtcbiAgICB9XG5cbiAgICBsZXQgcmU6IGFueSA9IG5ldyBSZWdFeHAoXCJbXCIgKyBkZWwgKyBcIl1cIik7XG4gICAgbGV0IGRzOiBBcnJheTxzdHJpbmc+ID0gZGF0ZVN0ci5zcGxpdChyZSk7XG4gICAgbGV0IGRmOiBBcnJheTxzdHJpbmc+ID0gZGF0ZUZvcm1hdC5zcGxpdChyZSk7XG4gICAgbGV0IGRhOiBBcnJheTxJTXlEYXRlRm9ybWF0PiA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZi5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGRmW2ldLmluZGV4T2YoWVlZWSkgIT09IC0xKSB7XG4gICAgICAgIGRhWzBdID0ge3ZhbHVlOiBkc1tpXSwgZm9ybWF0OiBkZltpXX07XG4gICAgICB9XG4gICAgICBpZiAoZGZbaV0uaW5kZXhPZihNKSAhPT0gLTEpIHtcbiAgICAgICAgZGFbMV0gPSB7dmFsdWU6IGRzW2ldLCBmb3JtYXQ6IGRmW2ldfTtcbiAgICAgIH1cbiAgICAgIGlmIChkZltpXS5pbmRleE9mKEQpICE9PSAtMSkge1xuICAgICAgICBkYVsyXSA9IHt2YWx1ZTogZHNbaV0sIGZvcm1hdDogZGZbaV19O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGE7XG4gIH1cblxuICBnZXRNb250aE51bWJlckJ5TW9udGhOYW1lKGRmOiBJTXlEYXRlRm9ybWF0LCBtb250aExhYmVsczogSU15TW9udGhMYWJlbHMpOiBudW1iZXIge1xuICAgIGlmIChkZi52YWx1ZSkge1xuICAgICAgZm9yIChsZXQga2V5ID0gMTsga2V5IDw9IDEyOyBrZXkrKykge1xuICAgICAgICBpZiAoZGYudmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gbW9udGhMYWJlbHNba2V5XS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBnZXROdW1iZXJCeVZhbHVlKGRmOiBJTXlEYXRlRm9ybWF0KTogbnVtYmVyIHtcbiAgICBpZiAoIS9eXFxkKyQvLnRlc3QoZGYudmFsdWUpKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgbGV0IG5icjogbnVtYmVyID0gTnVtYmVyKGRmLnZhbHVlKTtcbiAgICBpZiAoZGYuZm9ybWF0Lmxlbmd0aCA9PT0gMSAmJiBkZi52YWx1ZS5sZW5ndGggIT09IDEgJiYgbmJyIDwgMTAgfHwgZGYuZm9ybWF0Lmxlbmd0aCA9PT0gMSAmJiBkZi52YWx1ZS5sZW5ndGggIT09IDIgJiYgbmJyID49IDEwKSB7XG4gICAgICBuYnIgPSAtMTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGYuZm9ybWF0Lmxlbmd0aCA9PT0gMiAmJiBkZi52YWx1ZS5sZW5ndGggPiAyKSB7XG4gICAgICBuYnIgPSAtMTtcbiAgICB9XG4gICAgcmV0dXJuIG5icjtcbiAgfVxuXG4gIHBhcnNlRGVmYXVsdE1vbnRoKG1vbnRoU3RyaW5nOiBzdHJpbmcpOiBJTXlNb250aCB7XG4gICAgbGV0IG1vbnRoOiBJTXlNb250aCA9IHttb250aFR4dDogRU1QVFlfU1RSLCBtb250aE5icjogMCwgeWVhcjogMH07XG4gICAgaWYgKG1vbnRoU3RyaW5nICE9PSBFTVBUWV9TVFIpIHtcbiAgICAgIGxldCBzcGxpdCA9IG1vbnRoU3RyaW5nLnNwbGl0KG1vbnRoU3RyaW5nLm1hdGNoKC9bXjAtOV0vKVswXSk7XG4gICAgICBtb250aC5tb250aE5iciA9IHNwbGl0WzBdLmxlbmd0aCA9PT0gMiA/IHBhcnNlSW50KHNwbGl0WzBdKSA6IHBhcnNlSW50KHNwbGl0WzFdKTtcbiAgICAgIG1vbnRoLnllYXIgPSBzcGxpdFswXS5sZW5ndGggPT09IDIgPyBwYXJzZUludChzcGxpdFsxXSkgOiBwYXJzZUludChzcGxpdFswXSk7XG4gICAgfVxuICAgIHJldHVybiBtb250aDtcbiAgfVxuXG4gIGlzRGlzYWJsZWREYXRlKGRhdGU6IElNeURhdGUsIG9wdGlvbnM6IElNeU9wdGlvbnMpOiBib29sZWFuIHtcbiAgICBsZXQge21pblllYXIsIG1heFllYXIsIGRpc2FibGVVbnRpbCwgZGlzYWJsZVNpbmNlLCBkaXNhYmxlV2Vla2VuZHMsIGRpc2FibGVEYXRlcywgZGlzYWJsZURhdGVSYW5nZXMsIGRpc2FibGVXZWVrZGF5cywgZW5hYmxlRGF0ZXN9ID0gb3B0aW9ucztcblxuICAgIGZvciAobGV0IGQgb2YgZW5hYmxlRGF0ZXMpIHtcbiAgICAgIGlmICgoZC55ZWFyID09PSAwIHx8IGQueWVhciA9PT0gZGF0ZS55ZWFyKSAmJiAoZC5tb250aCA9PT0gMCB8fCBkLm1vbnRoID09PSBkYXRlLm1vbnRoKSAmJiBkLmRheSA9PT0gZGF0ZS5kYXkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRlLnllYXIgPCBtaW5ZZWFyICYmIGRhdGUubW9udGggPT09IDEyIHx8IGRhdGUueWVhciA+IG1heFllYXIgJiYgZGF0ZS5tb250aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbGV0IGRhdGVNczogbnVtYmVyID0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGF0ZSk7XG4gICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVVudGlsKSAmJiBkYXRlTXMgPD0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGlzYWJsZVVudGlsKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVNpbmNlKSAmJiBkYXRlTXMgPj0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGlzYWJsZVNpbmNlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGRpc2FibGVXZWVrZW5kcykge1xuICAgICAgbGV0IGRheU5iciA9IHRoaXMuZ2V0RGF5TnVtYmVyKGRhdGUpO1xuICAgICAgaWYgKGRheU5iciA9PT0gMCB8fCBkYXlOYnIgPT09IDYpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGRuID0gdGhpcy5nZXREYXlOdW1iZXIoZGF0ZSk7XG4gICAgaWYgKGRpc2FibGVXZWVrZGF5cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCB3ZCBvZiBkaXNhYmxlV2Vla2RheXMpIHtcbiAgICAgICAgaWYgKGRuID09PSB0aGlzLmdldFdlZWtkYXlJbmRleCh3ZCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGQgb2YgZGlzYWJsZURhdGVzKSB7XG4gICAgICBpZiAoKGQueWVhciA9PT0gMCB8fCBkLnllYXIgPT09IGRhdGUueWVhcikgJiYgKGQubW9udGggPT09IDAgfHwgZC5tb250aCA9PT0gZGF0ZS5tb250aCkgJiYgZC5kYXkgPT09IGRhdGUuZGF5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGQgb2YgZGlzYWJsZURhdGVSYW5nZXMpIHtcbiAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGQuYmVnaW4pICYmIHRoaXMuaXNJbml0aWFsaXplZERhdGUoZC5lbmQpICYmIGRhdGVNcyA+PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkLmJlZ2luKSAmJiBkYXRlTXMgPD0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZC5lbmQpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc01hcmtlZERhdGUoZGF0ZTogSU15RGF0ZSwgbWFya2VkRGF0ZXM6IEFycmF5PElNeU1hcmtlZERhdGVzPiwgbWFya1dlZWtlbmRzOiBJTXlNYXJrZWREYXRlKTogSU15TWFya2VkRGF0ZSB7XG4gICAgZm9yIChsZXQgbWQgb2YgbWFya2VkRGF0ZXMpIHtcbiAgICAgIGZvciAobGV0IGQgb2YgbWQuZGF0ZXMpIHtcbiAgICAgICAgaWYgKChkLnllYXIgPT09IDAgfHwgZC55ZWFyID09PSBkYXRlLnllYXIpICYmIChkLm1vbnRoID09PSAwIHx8IGQubW9udGggPT09IGRhdGUubW9udGgpICYmIGQuZGF5ID09PSBkYXRlLmRheSkge1xuICAgICAgICAgIHJldHVybiB7bWFya2VkOiB0cnVlLCBjb2xvcjogbWQuY29sb3J9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChtYXJrV2Vla2VuZHMgJiYgbWFya1dlZWtlbmRzLm1hcmtlZCkge1xuICAgICAgbGV0IGRheU5iciA9IHRoaXMuZ2V0RGF5TnVtYmVyKGRhdGUpO1xuICAgICAgaWYgKGRheU5iciA9PT0gMCB8fCBkYXlOYnIgPT09IDYpIHtcbiAgICAgICAgcmV0dXJuIHttYXJrZWQ6IHRydWUsIGNvbG9yOiBtYXJrV2Vla2VuZHMuY29sb3J9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge21hcmtlZDogZmFsc2UsIGNvbG9yOiBFTVBUWV9TVFJ9O1xuICB9XG5cbiAgaXNIaWdobGlnaHRlZERhdGUoZGF0ZTogSU15RGF0ZSwgc3VuSGlnaGxpZ2h0OiBib29sZWFuLCBzYXRIaWdobGlnaHQ6IGJvb2xlYW4sIGhpZ2hsaWdodERhdGVzOiBBcnJheTxJTXlEYXRlPik6IGJvb2xlYW4ge1xuICAgIGxldCBkYXlOYnI6IG51bWJlciA9IHRoaXMuZ2V0RGF5TnVtYmVyKGRhdGUpO1xuICAgIGlmIChzdW5IaWdobGlnaHQgJiYgZGF5TmJyID09PSAwIHx8IHNhdEhpZ2hsaWdodCAmJiBkYXlOYnIgPT09IDYpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGxldCBkIG9mIGhpZ2hsaWdodERhdGVzKSB7XG4gICAgICBpZiAoKGQueWVhciA9PT0gMCB8fCBkLnllYXIgPT09IGRhdGUueWVhcikgJiYgKGQubW9udGggPT09IDAgfHwgZC5tb250aCA9PT0gZGF0ZS5tb250aCkgJiYgZC5kYXkgPT09IGRhdGUuZGF5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRXZWVrTnVtYmVyKGRhdGU6IElNeURhdGUpOiBudW1iZXIge1xuICAgIGxldCBkOiBEYXRlID0gbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXksIDAsIDAsIDAsIDApO1xuICAgIGQuc2V0RGF0ZShkLmdldERhdGUoKSArIChkLmdldERheSgpID09PSAwID8gLTMgOiA0IC0gZC5nZXREYXkoKSkpO1xuICAgIHJldHVybiBNYXRoLnJvdW5kKCgoZC5nZXRUaW1lKCkgLSBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDAsIDQpLmdldFRpbWUoKSkgLyA4NjQwMDAwMCkgLyA3KSArIDE7XG4gIH1cblxuICBpc01vbnRoRGlzYWJsZWRCeURpc2FibGVVbnRpbChkYXRlOiBJTXlEYXRlLCBkaXNhYmxlVW50aWw6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkRGF0ZShkaXNhYmxlVW50aWwpICYmIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGUpIDw9IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRpc2FibGVVbnRpbCk7XG4gIH1cblxuICBpc01vbnRoRGlzYWJsZWRCeURpc2FibGVTaW5jZShkYXRlOiBJTXlEYXRlLCBkaXNhYmxlU2luY2U6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkRGF0ZShkaXNhYmxlU2luY2UpICYmIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGUpID49IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRpc2FibGVTaW5jZSk7XG4gIH1cblxuICBnZXREYXRlTW9kZWwoZGF0ZTogSU15RGF0ZSwgZGF0ZVJhbmdlOiBJTXlEYXRlUmFuZ2UsIGRhdGVGb3JtYXQ6IHN0cmluZywgbW9udGhMYWJlbHM6IElNeU1vbnRoTGFiZWxzLCByYW5nZURlbGltaXRlcjogc3RyaW5nLCBkYXRlU3RyOiBzdHJpbmcgPSBFTVBUWV9TVFIpOiBJTXlEYXRlTW9kZWwge1xuICAgIGxldCBzaW5nbGVEYXRlTW9kZWw6IElNeVNpbmdsZURhdGVNb2RlbCA9IG51bGw7XG4gICAgbGV0IGRhdGVSYW5nZU1vZGVsOiBJTXlEYXRlUmFuZ2VNb2RlbCA9IG51bGw7XG5cbiAgICBpZiAoZGF0ZSkge1xuICAgICAgc2luZ2xlRGF0ZU1vZGVsID0ge1xuICAgICAgICBkYXRlOiBkYXRlLFxuICAgICAgICBqc0RhdGU6IHRoaXMuZ2V0RGF0ZShkYXRlKSxcbiAgICAgICAgZm9ybWF0dGVkOiBkYXRlU3RyLmxlbmd0aCA/IGRhdGVTdHIgOiB0aGlzLmZvcm1hdERhdGUoZGF0ZSwgZGF0ZUZvcm1hdCwgbW9udGhMYWJlbHMpLFxuICAgICAgICBlcG9jOiB0aGlzLmdldEVwb2NUaW1lKGRhdGUpXG4gICAgICB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGRhdGVSYW5nZU1vZGVsID0ge1xuICAgICAgICBiZWdpbkRhdGU6IGRhdGVSYW5nZS5iZWdpbixcbiAgICAgICAgYmVnaW5Kc0RhdGU6IHRoaXMuZ2V0RGF0ZShkYXRlUmFuZ2UuYmVnaW4pLFxuICAgICAgICBiZWdpbkVwb2M6IHRoaXMuZ2V0RXBvY1RpbWUoZGF0ZVJhbmdlLmJlZ2luKSxcbiAgICAgICAgZW5kRGF0ZTogZGF0ZVJhbmdlLmVuZCxcbiAgICAgICAgZW5kSnNEYXRlOiB0aGlzLmdldERhdGUoZGF0ZVJhbmdlLmVuZCksXG4gICAgICAgIGVuZEVwb2M6IHRoaXMuZ2V0RXBvY1RpbWUoZGF0ZVJhbmdlLmVuZCksXG4gICAgICAgIGZvcm1hdHRlZDogdGhpcy5mb3JtYXREYXRlKGRhdGVSYW5nZS5iZWdpbiwgZGF0ZUZvcm1hdCwgbW9udGhMYWJlbHMpICsgcmFuZ2VEZWxpbWl0ZXIgKyB0aGlzLmZvcm1hdERhdGUoZGF0ZVJhbmdlLmVuZCwgZGF0ZUZvcm1hdCwgbW9udGhMYWJlbHMpXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpc1JhbmdlOiBkYXRlID09PSBudWxsLFxuICAgICAgc2luZ2xlRGF0ZTogc2luZ2xlRGF0ZU1vZGVsLFxuICAgICAgZGF0ZVJhbmdlOiBkYXRlUmFuZ2VNb2RlbFxuICAgIH07XG4gIH1cblxuICBmb3JtYXREYXRlKGRhdGU6IElNeURhdGUsIGRhdGVGb3JtYXQ6IHN0cmluZywgbW9udGhMYWJlbHM6IElNeU1vbnRoTGFiZWxzKTogc3RyaW5nIHtcbiAgICBsZXQgZm9ybWF0dGVkOiBzdHJpbmcgPSBkYXRlRm9ybWF0LnJlcGxhY2UoWVlZWSwgU3RyaW5nKGRhdGUueWVhcikpO1xuXG4gICAgaWYgKGRhdGVGb3JtYXQuaW5kZXhPZihNTU0pICE9PSAtMSkge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoTU1NLCBtb250aExhYmVsc1tkYXRlLm1vbnRoXSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGVGb3JtYXQuaW5kZXhPZihNTSkgIT09IC0xKSB7XG4gICAgICBmb3JtYXR0ZWQgPSBmb3JtYXR0ZWQucmVwbGFjZShNTSwgdGhpcy5wcmVaZXJvKGRhdGUubW9udGgpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3JtYXR0ZWQgPSBmb3JtYXR0ZWQucmVwbGFjZShNLCBTdHJpbmcoZGF0ZS5tb250aCkpO1xuICAgIH1cblxuICAgIGlmIChkYXRlRm9ybWF0LmluZGV4T2YoREQpICE9PSAtMSkge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoREQsIHRoaXMucHJlWmVybyhkYXRlLmRheSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKEQsIFN0cmluZyhkYXRlLmRheSkpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVkO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkRGF0ZShtb2RlbDogSU15RGF0ZU1vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gIW1vZGVsLmlzUmFuZ2UgPyBtb2RlbC5zaW5nbGVEYXRlLmZvcm1hdHRlZCA6IG1vZGVsLmRhdGVSYW5nZS5mb3JtYXR0ZWQ7XG4gIH1cblxuICBwcmVaZXJvKHZhbDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsIDwgMTAgPyBaRVJPX1NUUiArIHZhbCA6IFN0cmluZyh2YWwpO1xuICB9XG5cbiAgaXNJbml0aWFsaXplZERhdGUoZGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRlLnllYXIgIT09IDAgJiYgZGF0ZS5tb250aCAhPT0gMCAmJiBkYXRlLmRheSAhPT0gMDtcbiAgfVxuXG4gIGlzRGF0ZUVhcmxpZXIoZmlyc3REYXRlOiBJTXlEYXRlLCBzZWNvbmREYXRlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGZpcnN0RGF0ZSkgPCB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhzZWNvbmREYXRlKTtcbiAgfVxuXG4gIGlzRGF0ZVNhbWVPckVhcmxpZXIoZmlyc3REYXRlOiBJTXlEYXRlLCBzZWNvbmREYXRlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGZpcnN0RGF0ZSkgPD0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoc2Vjb25kRGF0ZSk7XG4gIH1cblxuICBpc0RhdGVTYW1lKGZpcnN0RGF0ZTogSU15RGF0ZSwgc2Vjb25kRGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhmaXJzdERhdGUpID09PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhzZWNvbmREYXRlKTtcbiAgfVxuXG4gIGlzRGF0ZVJhbmdlQmVnaW5PckVuZFNhbWUoZGF0ZVJhbmdlOiBJTXlEYXRlUmFuZ2UsIGRhdGU6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICBsZXQgZGF0ZU1zOiBudW1iZXIgPSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKTtcbiAgICByZXR1cm4gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGF0ZVJhbmdlLmJlZ2luKSA9PT0gZGF0ZU1zIHx8IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGVSYW5nZS5lbmQpID09PSBkYXRlTXM7XG4gIH1cblxuICBpc0RhdGVJblJhbmdlKGRhdGU6IElNeURhdGUsIGRhdGVSYW5nZTogSU15RGF0ZVJhbmdlKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGRhdGVSYW5nZS5iZWdpbikgfHwgIXRoaXMuaXNJbml0aWFsaXplZERhdGUoZGF0ZVJhbmdlLmVuZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlU2FtZU9yRWFybGllcihkYXRlUmFuZ2UuYmVnaW4sIGRhdGUpICYmIHRoaXMuaXNEYXRlU2FtZU9yRWFybGllcihkYXRlLCBkYXRlUmFuZ2UuZW5kKTtcbiAgfVxuXG4gIHJlc2V0RGF0ZSgpOiBJTXlEYXRlIHtcbiAgICByZXR1cm4ge3llYXI6IDAsIG1vbnRoOiAwLCBkYXk6IDB9O1xuICB9XG5cbiAgZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGU6IElNeURhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldERhdGUoZGF0ZSkuZ2V0VGltZSgpO1xuICB9XG5cbiAgZ2V0RGF0ZShkYXRlOiBJTXlEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIGdldERheU51bWJlcihkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXksIDAsIDAsIDAsIDApLmdldERheSgpO1xuICB9XG5cbiAgZ2V0V2Vla2RheUluZGV4KHdkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy53ZWVrRGF5cy5pbmRleE9mKHdkKTtcbiAgfVxuXG4gIGdldEVwb2NUaW1lKGRhdGU6IElNeURhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGUpIC8gMTAwMC4wKTtcbiAgfVxuXG4gIGdldEtleUNvZGVGcm9tRXZlbnQoZXZlbnQ6IGFueSk6IG51bWJlciB7XG4gICAgbGV0IGtleTogYW55ID0gZXZlbnQua2V5IHx8IGV2ZW50LmtleUNvZGU7XG5cbiAgICBpZiAoa2V5ID09PSBLZXlOYW1lLmVudGVyIHx8IGtleSA9PT0gS2V5Q29kZS5lbnRlcikge1xuICAgICAgcmV0dXJuIEtleUNvZGUuZW50ZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS5lc2MgfHwga2V5ID09PSBLZXlDb2RlLmVzYykge1xuICAgICAgcmV0dXJuIEtleUNvZGUuZXNjO1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUuc3BhY2UgfHwga2V5ID09PSBLZXlDb2RlLnNwYWNlKSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5zcGFjZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLmxlZnRBcnJvdyB8fCBrZXkgPT09IEtleUNvZGUubGVmdEFycm93KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5sZWZ0QXJyb3c7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS51cEFycm93IHx8IGtleSA9PT0gS2V5Q29kZS51cEFycm93KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS51cEFycm93O1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUucmlnaHRBcnJvdyB8fCBrZXkgPT09IEtleUNvZGUucmlnaHRBcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUucmlnaHRBcnJvdztcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLmRvd25BcnJvdyB8fCBrZXkgPT09IEtleUNvZGUuZG93bkFycm93KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5kb3duQXJyb3c7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS50YWIgfHwga2V5ID09PSBLZXlDb2RlLnRhYikge1xuICAgICAgcmV0dXJuIEtleUNvZGUudGFiO1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUuc2hpZnQgfHwga2V5ID09PSBLZXlDb2RlLnNoaWZ0KSB7XG4gICAgICByZXR1cm4gS2V5Q29kZS5zaGlmdDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -309,3 +309,3 @@ /**

var d = _d.value;
if (d.year === date.year && d.month === date.month && d.day === date.day) {
if ((d.year === 0 || d.year === date.year) && (d.month === 0 || d.month === date.month) && d.day === date.day) {
return { marked: true, color: md.color };

@@ -364,3 +364,3 @@ }

var d = highlightDates_1_1.value;
if (d.year === date.year && d.month === date.month && d.day === date.day) {
if ((d.year === 0 || d.year === date.year) && (d.month === 0 || d.month === date.month) && d.day === date.day) {
return true;

@@ -719,2 +719,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1teWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdEc7SUFBQTtRQUVFLGFBQVEsR0FBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQTRXekQsQ0FBQzs7Ozs7O0lBMVdDLGlDQUFXOzs7OztJQUFYLFVBQVksT0FBZSxFQUFFLE9BQW1CO1FBQ3pDLElBQUEsK0JBQVUsRUFBRSx5QkFBTyxFQUFFLHlCQUFPLEVBQUUsaUNBQVc7O1lBRTFDLFVBQVUsR0FBWSxJQUFJLENBQUMsU0FBUyxFQUFFOztZQUN0QyxXQUFXLEdBQWtCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7O1lBQzdFLFVBQVUsR0FBWSxVQUFVLENBQUMsT0FBTyxDQUFDLEdB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QjthQUNJLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxTQUFTLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDL0QsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQzFCO2FBQ0ksSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNuRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7U0FDcEI7YUFDSSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3ZELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztTQUN0QjthQUNJO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7O2dCQTdXRixVQUFVOztJQThXWCxrQkFBQztDQUFBLEFBOVdELElBOFdDO1NBN1dZLFdBQVc7OztJQUN0QiwrQkFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0lNeURhdGVNb2RlbCwgSU15U2luZ2xlRGF0ZU1vZGVsLCBJTXlEYXRlUmFuZ2VNb2RlbCwgSU15RGF0ZSwgSU15RGF0ZVJhbmdlLCBJTXlNb250aCwgSU15TW9udGhMYWJlbHMsIElNeU1hcmtlZERhdGVzLCBJTXlNYXJrZWREYXRlLCBJTXlEYXRlRm9ybWF0LCBJTXlPcHRpb25zfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHtLZXlDb2RlLCBLZXlOYW1lfSBmcm9tIFwiLi4vZW51bXNcIjtcbmltcG9ydCB7RCwgREQsIE0sIE1NLCBNTU0sIFlZWVksIFNVLCBNTywgVFUsIFdFLCBUSCwgRlIsIFNBLCBaRVJPX1NUUiwgRU1QVFlfU1RSfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVdGlsU2VydmljZSB7XG4gIHdlZWtEYXlzOiBBcnJheTxzdHJpbmc+ID0gW1NVLCBNTywgVFUsIFdFLCBUSCwgRlIsIFNBXTtcblxuICBpc0RhdGVWYWxpZChkYXRlU3RyOiBzdHJpbmcsIG9wdGlvbnM6IElNeU9wdGlvbnMpOiBJTXlEYXRlIHtcbiAgICBsZXQge2RhdGVGb3JtYXQsIG1pblllYXIsIG1heFllYXIsIG1vbnRoTGFiZWxzfSA9IG9wdGlvbnM7XG5cbiAgICBsZXQgcmV0dXJuRGF0ZTogSU15RGF0ZSA9IHRoaXMucmVzZXREYXRlKCk7XG4gICAgbGV0IGRheXNJbk1vbnRoOiBBcnJheTxudW1iZXI+ID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuICAgIGxldCBpc01vbnRoU3RyOiBib29sZWFuID0gZGF0ZUZvcm1hdC5pbmRleE9mKE1NTSkgIT09IC0xO1xuICAgIGxldCBkZWxpbWV0ZXJzOiBBcnJheTxzdHJpbmc+ID0gZGF0ZUZvcm1hdC5tYXRjaCgvW14oZG15KV17MSx9L2cpO1xuXG4gICAgbGV0IGRhdGVWYWx1ZTogQXJyYXk8SU15RGF0ZUZvcm1hdD4gPSB0aGlzLmdldERhdGVWYWx1ZShkYXRlU3RyLCBkYXRlRm9ybWF0LCBkZWxpbWV0ZXJzKTtcbiAgICBsZXQgeWVhcjogbnVtYmVyID0gdGhpcy5nZXROdW1iZXJCeVZhbHVlKGRhdGVWYWx1ZVswXSk7XG4gICAgbGV0IG1vbnRoOiBudW1iZXIgPSBpc01vbnRoU3RyID8gdGhpcy5nZXRNb250aE51bWJlckJ5TW9udGhOYW1lKGRhdGVWYWx1ZVsxXSwgbW9udGhMYWJlbHMpIDogdGhpcy5nZXROdW1iZXJCeVZhbHVlKGRhdGVWYWx1ZVsxXSk7XG4gICAgbGV0IGRheTogbnVtYmVyID0gdGhpcy5nZXROdW1iZXJCeVZhbHVlKGRhdGVWYWx1ZVsyXSk7XG5cbiAgICBpZiAobW9udGggIT09IC0xICYmIGRheSAhPT0gLTEgJiYgeWVhciAhPT0gLTEpIHtcbiAgICAgIGlmICh5ZWFyIDwgbWluWWVhciB8fCB5ZWFyID4gbWF4WWVhciB8fCBtb250aCA8IDEgfHwgbW9udGggPiAxMikge1xuICAgICAgICByZXR1cm4gcmV0dXJuRGF0ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGU6IElNeURhdGUgPSB7eWVhcjogeWVhciwgbW9udGg6IG1vbnRoLCBkYXk6IGRheX07XG5cbiAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWREYXRlKGRhdGUsIG9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5EYXRlO1xuICAgICAgfVxuXG4gICAgICBpZiAoeWVhciAlIDQwMCA9PT0gMCB8fCAoeWVhciAlIDEwMCAhPT0gMCAmJiB5ZWFyICUgNCA9PT0gMCkpIHtcbiAgICAgICAgZGF5c0luTW9udGhbMV0gPSAyOTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRheSA8IDEgfHwgZGF5ID4gZGF5c0luTW9udGhbbW9udGggLSAxXSkge1xuICAgICAgICByZXR1cm4gcmV0dXJuRGF0ZTtcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWQgZGF0ZVxuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5EYXRlO1xuICB9XG5cbiAgaXNEYXRlVmFsaWREYXRlUmFuZ2UoZGF0ZVJhbmdlU3RyOiBzdHJpbmcsIG9wdGlvbnM6IElNeU9wdGlvbnMpOiBJTXlEYXRlUmFuZ2Uge1xuICAgIGxldCBkYXRlUmFuZ2U6IElNeURhdGVSYW5nZSA9IHtiZWdpbjogdGhpcy5yZXNldERhdGUoKSwgZW5kOiB0aGlzLnJlc2V0RGF0ZSgpfTtcbiAgICBpZiAoZGF0ZVJhbmdlU3RyICYmIGRhdGVSYW5nZVN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBkYXRlczogQXJyYXk8c3RyaW5nPiA9IGRhdGVSYW5nZVN0ci5zcGxpdChvcHRpb25zLmRhdGVSYW5nZURhdGVzRGVsaW1pdGVyKTtcbiAgICAgIGlmKGRhdGVzICYmIGRhdGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBsZXQgW2JlZ2luRGF0ZSwgZW5kRGF0ZV0gPSBkYXRlcztcbiAgICAgICAgbGV0IGJlZ2luOiBJTXlEYXRlID0gdGhpcy5pc0RhdGVWYWxpZChiZWdpbkRhdGUsIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGJlZ2luKSkge1xuICAgICAgICAgIGxldCBlbmQ6IElNeURhdGUgPSB0aGlzLmlzRGF0ZVZhbGlkKGVuZERhdGUsIG9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoZW5kKSAmJiB0aGlzLmlzRGF0ZVNhbWVPckVhcmxpZXIoYmVnaW4sIGVuZCkpIHtcbiAgICAgICAgICAgIGRhdGVSYW5nZSA9IHtiZWdpbiwgZW5kfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGVSYW5nZTtcbiAgfVxuXG4gIGdldERhdGVWYWx1ZShkYXRlU3RyOiBzdHJpbmcsIGRhdGVGb3JtYXQ6IHN0cmluZywgZGVsaW1ldGVyczogQXJyYXk8c3RyaW5nPik6IEFycmF5PElNeURhdGVGb3JtYXQ+IHtcbiAgICBsZXQgZGVsOiBzdHJpbmcgPSBkZWxpbWV0ZXJzWzBdO1xuICAgIGlmIChkZWxpbWV0ZXJzWzBdICE9PSBkZWxpbWV0ZXJzWzFdKSB7XG4gICAgICBkZWwgPSBkZWxpbWV0ZXJzWzBdICsgZGVsaW1ldGVyc1sxXTtcbiAgICB9XG5cbiAgICBsZXQgcmU6IGFueSA9IG5ldyBSZWdFeHAoXCJbXCIgKyBkZWwgKyBcIl1cIik7XG4gICAgbGV0IGRzOiBBcnJheTxzdHJpbmc+ID0gZGF0ZVN0ci5zcGxpdChyZSk7XG4gICAgbGV0IGRmOiBBcnJheTxzdHJpbmc+ID0gZGF0ZUZvcm1hdC5zcGxpdChyZSk7XG4gICAgbGV0IGRhOiBBcnJheTxJTXlEYXRlRm9ybWF0PiA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZi5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGRmW2ldLmluZGV4T2YoWVlZWSkgIT09IC0xKSB7XG4gICAgICAgIGRhWzBdID0ge3ZhbHVlOiBkc1tpXSwgZm9ybWF0OiBkZltpXX07XG4gICAgICB9XG4gICAgICBpZiAoZGZbaV0uaW5kZXhPZihNKSAhPT0gLTEpIHtcbiAgICAgICAgZGFbMV0gPSB7dmFsdWU6IGRzW2ldLCBmb3JtYXQ6IGRmW2ldfTtcbiAgICAgIH1cbiAgICAgIGlmIChkZltpXS5pbmRleE9mKEQpICE9PSAtMSkge1xuICAgICAgICBkYVsyXSA9IHt2YWx1ZTogZHNbaV0sIGZvcm1hdDogZGZbaV19O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGE7XG4gIH1cblxuICBnZXRNb250aE51bWJlckJ5TW9udGhOYW1lKGRmOiBJTXlEYXRlRm9ybWF0LCBtb250aExhYmVsczogSU15TW9udGhMYWJlbHMpOiBudW1iZXIge1xuICAgIGlmIChkZi52YWx1ZSkge1xuICAgICAgZm9yIChsZXQga2V5ID0gMTsga2V5IDw9IDEyOyBrZXkrKykge1xuICAgICAgICBpZiAoZGYudmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gbW9udGhMYWJlbHNba2V5XS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBnZXROdW1iZXJCeVZhbHVlKGRmOiBJTXlEYXRlRm9ybWF0KTogbnVtYmVyIHtcbiAgICBpZiAoIS9eXFxkKyQvLnRlc3QoZGYudmFsdWUpKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgbGV0IG5icjogbnVtYmVyID0gTnVtYmVyKGRmLnZhbHVlKTtcbiAgICBpZiAoZGYuZm9ybWF0Lmxlbmd0aCA9PT0gMSAmJiBkZi52YWx1ZS5sZW5ndGggIT09IDEgJiYgbmJyIDwgMTAgfHwgZGYuZm9ybWF0Lmxlbmd0aCA9PT0gMSAmJiBkZi52YWx1ZS5sZW5ndGggIT09IDIgJiYgbmJyID49IDEwKSB7XG4gICAgICBuYnIgPSAtMTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGYuZm9ybWF0Lmxlbmd0aCA9PT0gMiAmJiBkZi52YWx1ZS5sZW5ndGggPiAyKSB7XG4gICAgICBuYnIgPSAtMTtcbiAgICB9XG4gICAgcmV0dXJuIG5icjtcbiAgfVxuXG4gIHBhcnNlRGVmYXVsdE1vbnRoKG1vbnRoU3RyaW5nOiBzdHJpbmcpOiBJTXlNb250aCB7XG4gICAgbGV0IG1vbnRoOiBJTXlNb250aCA9IHttb250aFR4dDogRU1QVFlfU1RSLCBtb250aE5icjogMCwgeWVhcjogMH07XG4gICAgaWYgKG1vbnRoU3RyaW5nICE9PSBFTVBUWV9TVFIpIHtcbiAgICAgIGxldCBzcGxpdCA9IG1vbnRoU3RyaW5nLnNwbGl0KG1vbnRoU3RyaW5nLm1hdGNoKC9bXjAtOV0vKVswXSk7XG4gICAgICBtb250aC5tb250aE5iciA9IHNwbGl0WzBdLmxlbmd0aCA9PT0gMiA/IHBhcnNlSW50KHNwbGl0WzBdKSA6IHBhcnNlSW50KHNwbGl0WzFdKTtcbiAgICAgIG1vbnRoLnllYXIgPSBzcGxpdFswXS5sZW5ndGggPT09IDIgPyBwYXJzZUludChzcGxpdFsxXSkgOiBwYXJzZUludChzcGxpdFswXSk7XG4gICAgfVxuICAgIHJldHVybiBtb250aDtcbiAgfVxuXG4gIGlzRGlzYWJsZWREYXRlKGRhdGU6IElNeURhdGUsIG9wdGlvbnM6IElNeU9wdGlvbnMpOiBib29sZWFuIHtcbiAgICBsZXQge21pblllYXIsIG1heFllYXIsIGRpc2FibGVVbnRpbCwgZGlzYWJsZVNpbmNlLCBkaXNhYmxlV2Vla2VuZHMsIGRpc2FibGVEYXRlcywgZGlzYWJsZURhdGVSYW5nZXMsIGRpc2FibGVXZWVrZGF5cywgZW5hYmxlRGF0ZXN9ID0gb3B0aW9ucztcblxuICAgIGZvciAobGV0IGQgb2YgZW5hYmxlRGF0ZXMpIHtcbiAgICAgIGlmICgoZC55ZWFyID09PSAwIHx8IGQueWVhciA9PT0gZGF0ZS55ZWFyKSAmJiAoZC5tb250aCA9PT0gMCB8fCBkLm1vbnRoID09PSBkYXRlLm1vbnRoKSAmJiBkLmRheSA9PT0gZGF0ZS5kYXkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRlLnllYXIgPCBtaW5ZZWFyICYmIGRhdGUubW9udGggPT09IDEyIHx8IGRhdGUueWVhciA+IG1heFllYXIgJiYgZGF0ZS5tb250aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbGV0IGRhdGVNczogbnVtYmVyID0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGF0ZSk7XG4gICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVVudGlsKSAmJiBkYXRlTXMgPD0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGlzYWJsZVVudGlsKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVNpbmNlKSAmJiBkYXRlTXMgPj0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGlzYWJsZVNpbmNlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGRpc2FibGVXZWVrZW5kcykge1xuICAgICAgbGV0IGRheU5iciA9IHRoaXMuZ2V0RGF5TnVtYmVyKGRhdGUpO1xuICAgICAgaWYgKGRheU5iciA9PT0gMCB8fCBkYXlOYnIgPT09IDYpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGRuID0gdGhpcy5nZXREYXlOdW1iZXIoZGF0ZSk7XG4gICAgaWYgKGRpc2FibGVXZWVrZGF5cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCB3ZCBvZiBkaXNhYmxlV2Vla2RheXMpIHtcbiAgICAgICAgaWYgKGRuID09PSB0aGlzLmdldFdlZWtkYXlJbmRleCh3ZCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGQgb2YgZGlzYWJsZURhdGVzKSB7XG4gICAgICBpZiAoKGQueWVhciA9PT0gMCB8fCBkLnllYXIgPT09IGRhdGUueWVhcikgJiYgKGQubW9udGggPT09IDAgfHwgZC5tb250aCA9PT0gZGF0ZS5tb250aCkgJiYgZC5kYXkgPT09IGRhdGUuZGF5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGQgb2YgZGlzYWJsZURhdGVSYW5nZXMpIHtcbiAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGQuYmVnaW4pICYmIHRoaXMuaXNJbml0aWFsaXplZERhdGUoZC5lbmQpICYmIGRhdGVNcyA+PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkLmJlZ2luKSAmJiBkYXRlTXMgPD0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZC5lbmQpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc01hcmtlZERhdGUoZGF0ZTogSU15RGF0ZSwgbWFya2VkRGF0ZXM6IEFycmF5PElNeU1hcmtlZERhdGVzPiwgbWFya1dlZWtlbmRzOiBJTXlNYXJrZWREYXRlKTogSU15TWFya2VkRGF0ZSB7XG4gICAgZm9yIChsZXQgbWQgb2YgbWFya2VkRGF0ZXMpIHtcbiAgICAgIGZvciAobGV0IGQgb2YgbWQuZGF0ZXMpIHtcbiAgICAgICAgaWYgKGQueWVhciA9PT0gZGF0ZS55ZWFyICYmIGQubW9udGggPT09IGRhdGUubW9udGggJiYgZC5kYXkgPT09IGRhdGUuZGF5KSB7XG4gICAgICAgICAgcmV0dXJuIHttYXJrZWQ6IHRydWUsIGNvbG9yOiBtZC5jb2xvcn07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1hcmtXZWVrZW5kcyAmJiBtYXJrV2Vla2VuZHMubWFya2VkKSB7XG4gICAgICBsZXQgZGF5TmJyID0gdGhpcy5nZXREYXlOdW1iZXIoZGF0ZSk7XG4gICAgICBpZiAoZGF5TmJyID09PSAwIHx8IGRheU5iciA9PT0gNikge1xuICAgICAgICByZXR1cm4ge21hcmtlZDogdHJ1ZSwgY29sb3I6IG1hcmtXZWVrZW5kcy5jb2xvcn07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7bWFya2VkOiBmYWxzZSwgY29sb3I6IEVNUFRZX1NUUn07XG4gIH1cblxuICBpc0hpZ2hsaWdodGVkRGF0ZShkYXRlOiBJTXlEYXRlLCBzdW5IaWdobGlnaHQ6IGJvb2xlYW4sIHNhdEhpZ2hsaWdodDogYm9vbGVhbiwgaGlnaGxpZ2h0RGF0ZXM6IEFycmF5PElNeURhdGU+KTogYm9vbGVhbiB7XG4gICAgbGV0IGRheU5icjogbnVtYmVyID0gdGhpcy5nZXREYXlOdW1iZXIoZGF0ZSk7XG4gICAgaWYgKHN1bkhpZ2hsaWdodCAmJiBkYXlOYnIgPT09IDAgfHwgc2F0SGlnaGxpZ2h0ICYmIGRheU5iciA9PT0gNikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZvciAobGV0IGQgb2YgaGlnaGxpZ2h0RGF0ZXMpIHtcbiAgICAgIGlmIChkLnllYXIgPT09IGRhdGUueWVhciAmJiBkLm1vbnRoID09PSBkYXRlLm1vbnRoICYmIGQuZGF5ID09PSBkYXRlLmRheSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0V2Vla051bWJlcihkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICBsZXQgZDogRGF0ZSA9IG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5LCAwLCAwLCAwLCAwKTtcbiAgICBkLnNldERhdGUoZC5nZXREYXRlKCkgKyAoZC5nZXREYXkoKSA9PT0gMCA/IC0zIDogNCAtIGQuZ2V0RGF5KCkpKTtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCgoKGQuZ2V0VGltZSgpIC0gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCAwLCA0KS5nZXRUaW1lKCkpIC8gODY0MDAwMDApIC8gNykgKyAxO1xuICB9XG5cbiAgaXNNb250aERpc2FibGVkQnlEaXNhYmxlVW50aWwoZGF0ZTogSU15RGF0ZSwgZGlzYWJsZVVudGlsOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVVudGlsKSAmJiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKSA8PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkaXNhYmxlVW50aWwpO1xuICB9XG5cbiAgaXNNb250aERpc2FibGVkQnlEaXNhYmxlU2luY2UoZGF0ZTogSU15RGF0ZSwgZGlzYWJsZVNpbmNlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVNpbmNlKSAmJiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKSA+PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkaXNhYmxlU2luY2UpO1xuICB9XG5cbiAgZ2V0RGF0ZU1vZGVsKGRhdGU6IElNeURhdGUsIGRhdGVSYW5nZTogSU15RGF0ZVJhbmdlLCBkYXRlRm9ybWF0OiBzdHJpbmcsIG1vbnRoTGFiZWxzOiBJTXlNb250aExhYmVscywgcmFuZ2VEZWxpbWl0ZXI6IHN0cmluZywgZGF0ZVN0cjogc3RyaW5nID0gRU1QVFlfU1RSKTogSU15RGF0ZU1vZGVsIHtcbiAgICBsZXQgc2luZ2xlRGF0ZU1vZGVsOiBJTXlTaW5nbGVEYXRlTW9kZWwgPSBudWxsO1xuICAgIGxldCBkYXRlUmFuZ2VNb2RlbDogSU15RGF0ZVJhbmdlTW9kZWwgPSBudWxsO1xuXG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIHNpbmdsZURhdGVNb2RlbCA9IHtcbiAgICAgICAgZGF0ZTogZGF0ZSxcbiAgICAgICAganNEYXRlOiB0aGlzLmdldERhdGUoZGF0ZSksXG4gICAgICAgIGZvcm1hdHRlZDogZGF0ZVN0ci5sZW5ndGggPyBkYXRlU3RyIDogdGhpcy5mb3JtYXREYXRlKGRhdGUsIGRhdGVGb3JtYXQsIG1vbnRoTGFiZWxzKSxcbiAgICAgICAgZXBvYzogdGhpcy5nZXRFcG9jVGltZShkYXRlKVxuICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBkYXRlUmFuZ2VNb2RlbCA9IHtcbiAgICAgICAgYmVnaW5EYXRlOiBkYXRlUmFuZ2UuYmVnaW4sXG4gICAgICAgIGJlZ2luSnNEYXRlOiB0aGlzLmdldERhdGUoZGF0ZVJhbmdlLmJlZ2luKSxcbiAgICAgICAgYmVnaW5FcG9jOiB0aGlzLmdldEVwb2NUaW1lKGRhdGVSYW5nZS5iZWdpbiksXG4gICAgICAgIGVuZERhdGU6IGRhdGVSYW5nZS5lbmQsXG4gICAgICAgIGVuZEpzRGF0ZTogdGhpcy5nZXREYXRlKGRhdGVSYW5nZS5lbmQpLFxuICAgICAgICBlbmRFcG9jOiB0aGlzLmdldEVwb2NUaW1lKGRhdGVSYW5nZS5lbmQpLFxuICAgICAgICBmb3JtYXR0ZWQ6IHRoaXMuZm9ybWF0RGF0ZShkYXRlUmFuZ2UuYmVnaW4sIGRhdGVGb3JtYXQsIG1vbnRoTGFiZWxzKSArIHJhbmdlRGVsaW1pdGVyICsgdGhpcy5mb3JtYXREYXRlKGRhdGVSYW5nZS5lbmQsIGRhdGVGb3JtYXQsIG1vbnRoTGFiZWxzKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXNSYW5nZTogZGF0ZSA9PT0gbnVsbCxcbiAgICAgIHNpbmdsZURhdGU6IHNpbmdsZURhdGVNb2RlbCxcbiAgICAgIGRhdGVSYW5nZTogZGF0ZVJhbmdlTW9kZWxcbiAgICB9O1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBJTXlEYXRlLCBkYXRlRm9ybWF0OiBzdHJpbmcsIG1vbnRoTGFiZWxzOiBJTXlNb250aExhYmVscyk6IHN0cmluZyB7XG4gICAgbGV0IGZvcm1hdHRlZDogc3RyaW5nID0gZGF0ZUZvcm1hdC5yZXBsYWNlKFlZWVksIFN0cmluZyhkYXRlLnllYXIpKTtcblxuICAgIGlmIChkYXRlRm9ybWF0LmluZGV4T2YoTU1NKSAhPT0gLTEpIHtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKE1NTSwgbW9udGhMYWJlbHNbZGF0ZS5tb250aF0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChkYXRlRm9ybWF0LmluZGV4T2YoTU0pICE9PSAtMSkge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoTU0sIHRoaXMucHJlWmVybyhkYXRlLm1vbnRoKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoTSwgU3RyaW5nKGRhdGUubW9udGgpKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZUZvcm1hdC5pbmRleE9mKEREKSAhPT0gLTEpIHtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKERELCB0aGlzLnByZVplcm8oZGF0ZS5kYXkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3JtYXR0ZWQgPSBmb3JtYXR0ZWQucmVwbGFjZShELCBTdHJpbmcoZGF0ZS5kYXkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZERhdGUobW9kZWw6IElNeURhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICFtb2RlbC5pc1JhbmdlID8gbW9kZWwuc2luZ2xlRGF0ZS5mb3JtYXR0ZWQgOiBtb2RlbC5kYXRlUmFuZ2UuZm9ybWF0dGVkO1xuICB9XG5cbiAgcHJlWmVybyh2YWw6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbCA8IDEwID8gWkVST19TVFIgKyB2YWwgOiBTdHJpbmcodmFsKTtcbiAgfVxuXG4gIGlzSW5pdGlhbGl6ZWREYXRlKGRhdGU6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZS55ZWFyICE9PSAwICYmIGRhdGUubW9udGggIT09IDAgJiYgZGF0ZS5kYXkgIT09IDA7XG4gIH1cblxuICBpc0RhdGVFYXJsaWVyKGZpcnN0RGF0ZTogSU15RGF0ZSwgc2Vjb25kRGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhmaXJzdERhdGUpIDwgdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoc2Vjb25kRGF0ZSk7XG4gIH1cblxuICBpc0RhdGVTYW1lT3JFYXJsaWVyKGZpcnN0RGF0ZTogSU15RGF0ZSwgc2Vjb25kRGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhmaXJzdERhdGUpIDw9IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKHNlY29uZERhdGUpO1xuICB9XG5cbiAgaXNEYXRlU2FtZShmaXJzdERhdGU6IElNeURhdGUsIHNlY29uZERhdGU6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZmlyc3REYXRlKSA9PT0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoc2Vjb25kRGF0ZSk7XG4gIH1cblxuICBpc0RhdGVSYW5nZUJlZ2luT3JFbmRTYW1lKGRhdGVSYW5nZTogSU15RGF0ZVJhbmdlLCBkYXRlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgbGV0IGRhdGVNczogbnVtYmVyID0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGF0ZSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGVSYW5nZS5iZWdpbikgPT09IGRhdGVNcyB8fCB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlUmFuZ2UuZW5kKSA9PT0gZGF0ZU1zO1xuICB9XG5cbiAgaXNEYXRlSW5SYW5nZShkYXRlOiBJTXlEYXRlLCBkYXRlUmFuZ2U6IElNeURhdGVSYW5nZSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkRGF0ZShkYXRlUmFuZ2UuYmVnaW4pIHx8ICF0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGRhdGVSYW5nZS5lbmQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRGF0ZVNhbWVPckVhcmxpZXIoZGF0ZVJhbmdlLmJlZ2luLCBkYXRlKSAmJiB0aGlzLmlzRGF0ZVNhbWVPckVhcmxpZXIoZGF0ZSwgZGF0ZVJhbmdlLmVuZCk7XG4gIH1cblxuICByZXNldERhdGUoKTogSU15RGF0ZSB7XG4gICAgcmV0dXJuIHt5ZWFyOiAwLCBtb250aDogMCwgZGF5OiAwfTtcbiAgfVxuXG4gIGdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRlKGRhdGUpLmdldFRpbWUoKTtcbiAgfVxuXG4gIGdldERhdGUoZGF0ZTogSU15RGF0ZSk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCBkYXRlLmRheSwgMCwgMCwgMCwgMCk7XG4gIH1cblxuICBnZXREYXlOdW1iZXIoZGF0ZTogSU15RGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5LCAwLCAwLCAwLCAwKS5nZXREYXkoKTtcbiAgfVxuXG4gIGdldFdlZWtkYXlJbmRleCh3ZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMud2Vla0RheXMuaW5kZXhPZih3ZCk7XG4gIH1cblxuICBnZXRFcG9jVGltZShkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKSAvIDEwMDAuMCk7XG4gIH1cblxuICBnZXRLZXlDb2RlRnJvbUV2ZW50KGV2ZW50OiBhbnkpOiBudW1iZXIge1xuICAgIGxldCBrZXk6IGFueSA9IGV2ZW50LmtleSB8fCBldmVudC5rZXlDb2RlO1xuXG4gICAgaWYgKGtleSA9PT0gS2V5TmFtZS5lbnRlciB8fCBrZXkgPT09IEtleUNvZGUuZW50ZXIpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLmVudGVyO1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUuZXNjIHx8IGtleSA9PT0gS2V5Q29kZS5lc2MpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLmVzYztcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLnNwYWNlIHx8IGtleSA9PT0gS2V5Q29kZS5zcGFjZSkge1xuICAgICAgcmV0dXJuIEtleUNvZGUuc3BhY2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS5sZWZ0QXJyb3cgfHwga2V5ID09PSBLZXlDb2RlLmxlZnRBcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUubGVmdEFycm93O1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUudXBBcnJvdyB8fCBrZXkgPT09IEtleUNvZGUudXBBcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUudXBBcnJvdztcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLnJpZ2h0QXJyb3cgfHwga2V5ID09PSBLZXlDb2RlLnJpZ2h0QXJyb3cpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLnJpZ2h0QXJyb3c7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS5kb3duQXJyb3cgfHwga2V5ID09PSBLZXlDb2RlLmRvd25BcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUuZG93bkFycm93O1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUudGFiIHx8IGtleSA9PT0gS2V5Q29kZS50YWIpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLnRhYjtcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLnNoaWZ0IHx8IGtleSA9PT0gS2V5Q29kZS5zaGlmdCkge1xuICAgICAgcmV0dXJuIEtleUNvZGUuc2hpZnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1teWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvYW5ndWxhci1teWRhdGVwaWNrZXIudXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdEc7SUFBQTtRQUVFLGFBQVEsR0FBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQTRXekQsQ0FBQzs7Ozs7O0lBMVdDLGlDQUFXOzs7OztJQUFYLFVBQVksT0FBZSxFQUFFLE9BQW1CO1FBQ3pDLElBQUEsK0JBQVUsRUFBRSx5QkFBTyxFQUFFLHlCQUFPLEVBQUUsaUNBQVc7O1lBRTFDLFVBQVUsR0FBWSxJQUFJLENBQUMsU0FBUyxFQUFFOztZQUN0QyxXQUFXLEdBQWtCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7O1lBQzdFLFVBQVUsR0FBWSxVQUFVLENBQUMsT0FBTyxDQUFDLEdB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QU8sQ0FBQyxPQUFPLEVBQUU7WUFDM0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ3hCO2FBQ0ksSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFVBQVUsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUNqRSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDM0I7YUFDSSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsU0FBUyxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQy9ELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUMxQjthQUNJLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDbkQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ3BCO2FBQ0ksSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLEtBQUssSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN2RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDdEI7YUFDSTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOztnQkE3V0YsVUFBVTs7SUE4V1gsa0JBQUM7Q0FBQSxBQTlXRCxJQThXQztTQTdXWSxXQUFXOzs7SUFDdEIsK0JBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtJTXlEYXRlTW9kZWwsIElNeVNpbmdsZURhdGVNb2RlbCwgSU15RGF0ZVJhbmdlTW9kZWwsIElNeURhdGUsIElNeURhdGVSYW5nZSwgSU15TW9udGgsIElNeU1vbnRoTGFiZWxzLCBJTXlNYXJrZWREYXRlcywgSU15TWFya2VkRGF0ZSwgSU15RGF0ZUZvcm1hdCwgSU15T3B0aW9uc30gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7S2V5Q29kZSwgS2V5TmFtZX0gZnJvbSBcIi4uL2VudW1zXCI7XG5pbXBvcnQge0QsIERELCBNLCBNTSwgTU1NLCBZWVlZLCBTVSwgTU8sIFRVLCBXRSwgVEgsIEZSLCBTQSwgWkVST19TVFIsIEVNUFRZX1NUUn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXRpbFNlcnZpY2Uge1xuICB3ZWVrRGF5czogQXJyYXk8c3RyaW5nPiA9IFtTVSwgTU8sIFRVLCBXRSwgVEgsIEZSLCBTQV07XG5cbiAgaXNEYXRlVmFsaWQoZGF0ZVN0cjogc3RyaW5nLCBvcHRpb25zOiBJTXlPcHRpb25zKTogSU15RGF0ZSB7XG4gICAgbGV0IHtkYXRlRm9ybWF0LCBtaW5ZZWFyLCBtYXhZZWFyLCBtb250aExhYmVsc30gPSBvcHRpb25zO1xuXG4gICAgbGV0IHJldHVybkRhdGU6IElNeURhdGUgPSB0aGlzLnJlc2V0RGF0ZSgpO1xuICAgIGxldCBkYXlzSW5Nb250aDogQXJyYXk8bnVtYmVyPiA9IFszMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXTtcbiAgICBsZXQgaXNNb250aFN0cjogYm9vbGVhbiA9IGRhdGVGb3JtYXQuaW5kZXhPZihNTU0pICE9PSAtMTtcbiAgICBsZXQgZGVsaW1ldGVyczogQXJyYXk8c3RyaW5nPiA9IGRhdGVGb3JtYXQubWF0Y2goL1teKGRteSldezEsfS9nKTtcblxuICAgIGxldCBkYXRlVmFsdWU6IEFycmF5PElNeURhdGVGb3JtYXQ+ID0gdGhpcy5nZXREYXRlVmFsdWUoZGF0ZVN0ciwgZGF0ZUZvcm1hdCwgZGVsaW1ldGVycyk7XG4gICAgbGV0IHllYXI6IG51bWJlciA9IHRoaXMuZ2V0TnVtYmVyQnlWYWx1ZShkYXRlVmFsdWVbMF0pO1xuICAgIGxldCBtb250aDogbnVtYmVyID0gaXNNb250aFN0ciA/IHRoaXMuZ2V0TW9udGhOdW1iZXJCeU1vbnRoTmFtZShkYXRlVmFsdWVbMV0sIG1vbnRoTGFiZWxzKSA6IHRoaXMuZ2V0TnVtYmVyQnlWYWx1ZShkYXRlVmFsdWVbMV0pO1xuICAgIGxldCBkYXk6IG51bWJlciA9IHRoaXMuZ2V0TnVtYmVyQnlWYWx1ZShkYXRlVmFsdWVbMl0pO1xuXG4gICAgaWYgKG1vbnRoICE9PSAtMSAmJiBkYXkgIT09IC0xICYmIHllYXIgIT09IC0xKSB7XG4gICAgICBpZiAoeWVhciA8IG1pblllYXIgfHwgeWVhciA+IG1heFllYXIgfHwgbW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgICAgcmV0dXJuIHJldHVybkRhdGU7XG4gICAgICB9XG5cbiAgICAgIGxldCBkYXRlOiBJTXlEYXRlID0ge3llYXI6IHllYXIsIG1vbnRoOiBtb250aCwgZGF5OiBkYXl9O1xuXG4gICAgICBpZiAodGhpcy5pc0Rpc2FibGVkRGF0ZShkYXRlLCBvcHRpb25zKSkge1xuICAgICAgICByZXR1cm4gcmV0dXJuRGF0ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHllYXIgJSA0MDAgPT09IDAgfHwgKHllYXIgJSAxMDAgIT09IDAgJiYgeWVhciAlIDQgPT09IDApKSB7XG4gICAgICAgIGRheXNJbk1vbnRoWzFdID0gMjk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXkgPCAxIHx8IGRheSA+IGRheXNJbk1vbnRoW21vbnRoIC0gMV0pIHtcbiAgICAgICAgcmV0dXJuIHJldHVybkRhdGU7XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkIGRhdGVcbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0dXJuRGF0ZTtcbiAgfVxuXG4gIGlzRGF0ZVZhbGlkRGF0ZVJhbmdlKGRhdGVSYW5nZVN0cjogc3RyaW5nLCBvcHRpb25zOiBJTXlPcHRpb25zKTogSU15RGF0ZVJhbmdlIHtcbiAgICBsZXQgZGF0ZVJhbmdlOiBJTXlEYXRlUmFuZ2UgPSB7YmVnaW46IHRoaXMucmVzZXREYXRlKCksIGVuZDogdGhpcy5yZXNldERhdGUoKX07XG4gICAgaWYgKGRhdGVSYW5nZVN0ciAmJiBkYXRlUmFuZ2VTdHIubGVuZ3RoKSB7XG4gICAgICBsZXQgZGF0ZXM6IEFycmF5PHN0cmluZz4gPSBkYXRlUmFuZ2VTdHIuc3BsaXQob3B0aW9ucy5kYXRlUmFuZ2VEYXRlc0RlbGltaXRlcik7XG4gICAgICBpZihkYXRlcyAmJiBkYXRlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgbGV0IFtiZWdpbkRhdGUsIGVuZERhdGVdID0gZGF0ZXM7XG4gICAgICAgIGxldCBiZWdpbjogSU15RGF0ZSA9IHRoaXMuaXNEYXRlVmFsaWQoYmVnaW5EYXRlLCBvcHRpb25zKTtcblxuICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkRGF0ZShiZWdpbikpIHtcbiAgICAgICAgICBsZXQgZW5kOiBJTXlEYXRlID0gdGhpcy5pc0RhdGVWYWxpZChlbmREYXRlLCBvcHRpb25zKTtcblxuICAgICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGVuZCkgJiYgdGhpcy5pc0RhdGVTYW1lT3JFYXJsaWVyKGJlZ2luLCBlbmQpKSB7XG4gICAgICAgICAgICBkYXRlUmFuZ2UgPSB7YmVnaW4sIGVuZH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRlUmFuZ2U7XG4gIH1cblxuICBnZXREYXRlVmFsdWUoZGF0ZVN0cjogc3RyaW5nLCBkYXRlRm9ybWF0OiBzdHJpbmcsIGRlbGltZXRlcnM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxJTXlEYXRlRm9ybWF0PiB7XG4gICAgbGV0IGRlbDogc3RyaW5nID0gZGVsaW1ldGVyc1swXTtcbiAgICBpZiAoZGVsaW1ldGVyc1swXSAhPT0gZGVsaW1ldGVyc1sxXSkge1xuICAgICAgZGVsID0gZGVsaW1ldGVyc1swXSArIGRlbGltZXRlcnNbMV07XG4gICAgfVxuXG4gICAgbGV0IHJlOiBhbnkgPSBuZXcgUmVnRXhwKFwiW1wiICsgZGVsICsgXCJdXCIpO1xuICAgIGxldCBkczogQXJyYXk8c3RyaW5nPiA9IGRhdGVTdHIuc3BsaXQocmUpO1xuICAgIGxldCBkZjogQXJyYXk8c3RyaW5nPiA9IGRhdGVGb3JtYXQuc3BsaXQocmUpO1xuICAgIGxldCBkYTogQXJyYXk8SU15RGF0ZUZvcm1hdD4gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGYubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChkZltpXS5pbmRleE9mKFlZWVkpICE9PSAtMSkge1xuICAgICAgICBkYVswXSA9IHt2YWx1ZTogZHNbaV0sIGZvcm1hdDogZGZbaV19O1xuICAgICAgfVxuICAgICAgaWYgKGRmW2ldLmluZGV4T2YoTSkgIT09IC0xKSB7XG4gICAgICAgIGRhWzFdID0ge3ZhbHVlOiBkc1tpXSwgZm9ybWF0OiBkZltpXX07XG4gICAgICB9XG4gICAgICBpZiAoZGZbaV0uaW5kZXhPZihEKSAhPT0gLTEpIHtcbiAgICAgICAgZGFbMl0gPSB7dmFsdWU6IGRzW2ldLCBmb3JtYXQ6IGRmW2ldfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhO1xuICB9XG5cbiAgZ2V0TW9udGhOdW1iZXJCeU1vbnRoTmFtZShkZjogSU15RGF0ZUZvcm1hdCwgbW9udGhMYWJlbHM6IElNeU1vbnRoTGFiZWxzKTogbnVtYmVyIHtcbiAgICBpZiAoZGYudmFsdWUpIHtcbiAgICAgIGZvciAobGV0IGtleSA9IDE7IGtleSA8PSAxMjsga2V5KyspIHtcbiAgICAgICAgaWYgKGRmLnZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IG1vbnRoTGFiZWxzW2tleV0udG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgZ2V0TnVtYmVyQnlWYWx1ZShkZjogSU15RGF0ZUZvcm1hdCk6IG51bWJlciB7XG4gICAgaWYgKCEvXlxcZCskLy50ZXN0KGRmLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIGxldCBuYnI6IG51bWJlciA9IE51bWJlcihkZi52YWx1ZSk7XG4gICAgaWYgKGRmLmZvcm1hdC5sZW5ndGggPT09IDEgJiYgZGYudmFsdWUubGVuZ3RoICE9PSAxICYmIG5iciA8IDEwIHx8IGRmLmZvcm1hdC5sZW5ndGggPT09IDEgJiYgZGYudmFsdWUubGVuZ3RoICE9PSAyICYmIG5iciA+PSAxMCkge1xuICAgICAgbmJyID0gLTE7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRmLmZvcm1hdC5sZW5ndGggPT09IDIgJiYgZGYudmFsdWUubGVuZ3RoID4gMikge1xuICAgICAgbmJyID0gLTE7XG4gICAgfVxuICAgIHJldHVybiBuYnI7XG4gIH1cblxuICBwYXJzZURlZmF1bHRNb250aChtb250aFN0cmluZzogc3RyaW5nKTogSU15TW9udGgge1xuICAgIGxldCBtb250aDogSU15TW9udGggPSB7bW9udGhUeHQ6IEVNUFRZX1NUUiwgbW9udGhOYnI6IDAsIHllYXI6IDB9O1xuICAgIGlmIChtb250aFN0cmluZyAhPT0gRU1QVFlfU1RSKSB7XG4gICAgICBsZXQgc3BsaXQgPSBtb250aFN0cmluZy5zcGxpdChtb250aFN0cmluZy5tYXRjaCgvW14wLTldLylbMF0pO1xuICAgICAgbW9udGgubW9udGhOYnIgPSBzcGxpdFswXS5sZW5ndGggPT09IDIgPyBwYXJzZUludChzcGxpdFswXSkgOiBwYXJzZUludChzcGxpdFsxXSk7XG4gICAgICBtb250aC55ZWFyID0gc3BsaXRbMF0ubGVuZ3RoID09PSAyID8gcGFyc2VJbnQoc3BsaXRbMV0pIDogcGFyc2VJbnQoc3BsaXRbMF0pO1xuICAgIH1cbiAgICByZXR1cm4gbW9udGg7XG4gIH1cblxuICBpc0Rpc2FibGVkRGF0ZShkYXRlOiBJTXlEYXRlLCBvcHRpb25zOiBJTXlPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgbGV0IHttaW5ZZWFyLCBtYXhZZWFyLCBkaXNhYmxlVW50aWwsIGRpc2FibGVTaW5jZSwgZGlzYWJsZVdlZWtlbmRzLCBkaXNhYmxlRGF0ZXMsIGRpc2FibGVEYXRlUmFuZ2VzLCBkaXNhYmxlV2Vla2RheXMsIGVuYWJsZURhdGVzfSA9IG9wdGlvbnM7XG5cbiAgICBmb3IgKGxldCBkIG9mIGVuYWJsZURhdGVzKSB7XG4gICAgICBpZiAoKGQueWVhciA9PT0gMCB8fCBkLnllYXIgPT09IGRhdGUueWVhcikgJiYgKGQubW9udGggPT09IDAgfHwgZC5tb250aCA9PT0gZGF0ZS5tb250aCkgJiYgZC5kYXkgPT09IGRhdGUuZGF5KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGF0ZS55ZWFyIDwgbWluWWVhciAmJiBkYXRlLm1vbnRoID09PSAxMiB8fCBkYXRlLnllYXIgPiBtYXhZZWFyICYmIGRhdGUubW9udGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCBkYXRlTXM6IG51bWJlciA9IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGUpO1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGRpc2FibGVVbnRpbCkgJiYgZGF0ZU1zIDw9IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRpc2FibGVVbnRpbCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGRpc2FibGVTaW5jZSkgJiYgZGF0ZU1zID49IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRpc2FibGVTaW5jZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChkaXNhYmxlV2Vla2VuZHMpIHtcbiAgICAgIGxldCBkYXlOYnIgPSB0aGlzLmdldERheU51bWJlcihkYXRlKTtcbiAgICAgIGlmIChkYXlOYnIgPT09IDAgfHwgZGF5TmJyID09PSA2KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBkbiA9IHRoaXMuZ2V0RGF5TnVtYmVyKGRhdGUpO1xuICAgIGlmIChkaXNhYmxlV2Vla2RheXMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgd2Qgb2YgZGlzYWJsZVdlZWtkYXlzKSB7XG4gICAgICAgIGlmIChkbiA9PT0gdGhpcy5nZXRXZWVrZGF5SW5kZXgod2QpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGxldCBkIG9mIGRpc2FibGVEYXRlcykge1xuICAgICAgaWYgKChkLnllYXIgPT09IDAgfHwgZC55ZWFyID09PSBkYXRlLnllYXIpICYmIChkLm1vbnRoID09PSAwIHx8IGQubW9udGggPT09IGRhdGUubW9udGgpICYmIGQuZGF5ID09PSBkYXRlLmRheSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGxldCBkIG9mIGRpc2FibGVEYXRlUmFuZ2VzKSB7XG4gICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkRGF0ZShkLmJlZ2luKSAmJiB0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGQuZW5kKSAmJiBkYXRlTXMgPj0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZC5iZWdpbikgJiYgZGF0ZU1zIDw9IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGQuZW5kKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNNYXJrZWREYXRlKGRhdGU6IElNeURhdGUsIG1hcmtlZERhdGVzOiBBcnJheTxJTXlNYXJrZWREYXRlcz4sIG1hcmtXZWVrZW5kczogSU15TWFya2VkRGF0ZSk6IElNeU1hcmtlZERhdGUge1xuICAgIGZvciAobGV0IG1kIG9mIG1hcmtlZERhdGVzKSB7XG4gICAgICBmb3IgKGxldCBkIG9mIG1kLmRhdGVzKSB7XG4gICAgICAgIGlmICgoZC55ZWFyID09PSAwIHx8IGQueWVhciA9PT0gZGF0ZS55ZWFyKSAmJiAoZC5tb250aCA9PT0gMCB8fCBkLm1vbnRoID09PSBkYXRlLm1vbnRoKSAmJiBkLmRheSA9PT0gZGF0ZS5kYXkpIHtcbiAgICAgICAgICByZXR1cm4ge21hcmtlZDogdHJ1ZSwgY29sb3I6IG1kLmNvbG9yfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobWFya1dlZWtlbmRzICYmIG1hcmtXZWVrZW5kcy5tYXJrZWQpIHtcbiAgICAgIGxldCBkYXlOYnIgPSB0aGlzLmdldERheU51bWJlcihkYXRlKTtcbiAgICAgIGlmIChkYXlOYnIgPT09IDAgfHwgZGF5TmJyID09PSA2KSB7XG4gICAgICAgIHJldHVybiB7bWFya2VkOiB0cnVlLCBjb2xvcjogbWFya1dlZWtlbmRzLmNvbG9yfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHttYXJrZWQ6IGZhbHNlLCBjb2xvcjogRU1QVFlfU1RSfTtcbiAgfVxuXG4gIGlzSGlnaGxpZ2h0ZWREYXRlKGRhdGU6IElNeURhdGUsIHN1bkhpZ2hsaWdodDogYm9vbGVhbiwgc2F0SGlnaGxpZ2h0OiBib29sZWFuLCBoaWdobGlnaHREYXRlczogQXJyYXk8SU15RGF0ZT4pOiBib29sZWFuIHtcbiAgICBsZXQgZGF5TmJyOiBudW1iZXIgPSB0aGlzLmdldERheU51bWJlcihkYXRlKTtcbiAgICBpZiAoc3VuSGlnaGxpZ2h0ICYmIGRheU5iciA9PT0gMCB8fCBzYXRIaWdobGlnaHQgJiYgZGF5TmJyID09PSA2KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yIChsZXQgZCBvZiBoaWdobGlnaHREYXRlcykge1xuICAgICAgaWYgKChkLnllYXIgPT09IDAgfHwgZC55ZWFyID09PSBkYXRlLnllYXIpICYmIChkLm1vbnRoID09PSAwIHx8IGQubW9udGggPT09IGRhdGUubW9udGgpICYmIGQuZGF5ID09PSBkYXRlLmRheSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0V2Vla051bWJlcihkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICBsZXQgZDogRGF0ZSA9IG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5LCAwLCAwLCAwLCAwKTtcbiAgICBkLnNldERhdGUoZC5nZXREYXRlKCkgKyAoZC5nZXREYXkoKSA9PT0gMCA/IC0zIDogNCAtIGQuZ2V0RGF5KCkpKTtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCgoKGQuZ2V0VGltZSgpIC0gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCAwLCA0KS5nZXRUaW1lKCkpIC8gODY0MDAwMDApIC8gNykgKyAxO1xuICB9XG5cbiAgaXNNb250aERpc2FibGVkQnlEaXNhYmxlVW50aWwoZGF0ZTogSU15RGF0ZSwgZGlzYWJsZVVudGlsOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVVudGlsKSAmJiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKSA8PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkaXNhYmxlVW50aWwpO1xuICB9XG5cbiAgaXNNb250aERpc2FibGVkQnlEaXNhYmxlU2luY2UoZGF0ZTogSU15RGF0ZSwgZGlzYWJsZVNpbmNlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbml0aWFsaXplZERhdGUoZGlzYWJsZVNpbmNlKSAmJiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKSA+PSB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkaXNhYmxlU2luY2UpO1xuICB9XG5cbiAgZ2V0RGF0ZU1vZGVsKGRhdGU6IElNeURhdGUsIGRhdGVSYW5nZTogSU15RGF0ZVJhbmdlLCBkYXRlRm9ybWF0OiBzdHJpbmcsIG1vbnRoTGFiZWxzOiBJTXlNb250aExhYmVscywgcmFuZ2VEZWxpbWl0ZXI6IHN0cmluZywgZGF0ZVN0cjogc3RyaW5nID0gRU1QVFlfU1RSKTogSU15RGF0ZU1vZGVsIHtcbiAgICBsZXQgc2luZ2xlRGF0ZU1vZGVsOiBJTXlTaW5nbGVEYXRlTW9kZWwgPSBudWxsO1xuICAgIGxldCBkYXRlUmFuZ2VNb2RlbDogSU15RGF0ZVJhbmdlTW9kZWwgPSBudWxsO1xuXG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIHNpbmdsZURhdGVNb2RlbCA9IHtcbiAgICAgICAgZGF0ZTogZGF0ZSxcbiAgICAgICAganNEYXRlOiB0aGlzLmdldERhdGUoZGF0ZSksXG4gICAgICAgIGZvcm1hdHRlZDogZGF0ZVN0ci5sZW5ndGggPyBkYXRlU3RyIDogdGhpcy5mb3JtYXREYXRlKGRhdGUsIGRhdGVGb3JtYXQsIG1vbnRoTGFiZWxzKSxcbiAgICAgICAgZXBvYzogdGhpcy5nZXRFcG9jVGltZShkYXRlKVxuICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBkYXRlUmFuZ2VNb2RlbCA9IHtcbiAgICAgICAgYmVnaW5EYXRlOiBkYXRlUmFuZ2UuYmVnaW4sXG4gICAgICAgIGJlZ2luSnNEYXRlOiB0aGlzLmdldERhdGUoZGF0ZVJhbmdlLmJlZ2luKSxcbiAgICAgICAgYmVnaW5FcG9jOiB0aGlzLmdldEVwb2NUaW1lKGRhdGVSYW5nZS5iZWdpbiksXG4gICAgICAgIGVuZERhdGU6IGRhdGVSYW5nZS5lbmQsXG4gICAgICAgIGVuZEpzRGF0ZTogdGhpcy5nZXREYXRlKGRhdGVSYW5nZS5lbmQpLFxuICAgICAgICBlbmRFcG9jOiB0aGlzLmdldEVwb2NUaW1lKGRhdGVSYW5nZS5lbmQpLFxuICAgICAgICBmb3JtYXR0ZWQ6IHRoaXMuZm9ybWF0RGF0ZShkYXRlUmFuZ2UuYmVnaW4sIGRhdGVGb3JtYXQsIG1vbnRoTGFiZWxzKSArIHJhbmdlRGVsaW1pdGVyICsgdGhpcy5mb3JtYXREYXRlKGRhdGVSYW5nZS5lbmQsIGRhdGVGb3JtYXQsIG1vbnRoTGFiZWxzKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXNSYW5nZTogZGF0ZSA9PT0gbnVsbCxcbiAgICAgIHNpbmdsZURhdGU6IHNpbmdsZURhdGVNb2RlbCxcbiAgICAgIGRhdGVSYW5nZTogZGF0ZVJhbmdlTW9kZWxcbiAgICB9O1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBJTXlEYXRlLCBkYXRlRm9ybWF0OiBzdHJpbmcsIG1vbnRoTGFiZWxzOiBJTXlNb250aExhYmVscyk6IHN0cmluZyB7XG4gICAgbGV0IGZvcm1hdHRlZDogc3RyaW5nID0gZGF0ZUZvcm1hdC5yZXBsYWNlKFlZWVksIFN0cmluZyhkYXRlLnllYXIpKTtcblxuICAgIGlmIChkYXRlRm9ybWF0LmluZGV4T2YoTU1NKSAhPT0gLTEpIHtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKE1NTSwgbW9udGhMYWJlbHNbZGF0ZS5tb250aF0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChkYXRlRm9ybWF0LmluZGV4T2YoTU0pICE9PSAtMSkge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoTU0sIHRoaXMucHJlWmVybyhkYXRlLm1vbnRoKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoTSwgU3RyaW5nKGRhdGUubW9udGgpKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZUZvcm1hdC5pbmRleE9mKEREKSAhPT0gLTEpIHtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKERELCB0aGlzLnByZVplcm8oZGF0ZS5kYXkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3JtYXR0ZWQgPSBmb3JtYXR0ZWQucmVwbGFjZShELCBTdHJpbmcoZGF0ZS5kYXkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZERhdGUobW9kZWw6IElNeURhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICFtb2RlbC5pc1JhbmdlID8gbW9kZWwuc2luZ2xlRGF0ZS5mb3JtYXR0ZWQgOiBtb2RlbC5kYXRlUmFuZ2UuZm9ybWF0dGVkO1xuICB9XG5cbiAgcHJlWmVybyh2YWw6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbCA8IDEwID8gWkVST19TVFIgKyB2YWwgOiBTdHJpbmcodmFsKTtcbiAgfVxuXG4gIGlzSW5pdGlhbGl6ZWREYXRlKGRhdGU6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZS55ZWFyICE9PSAwICYmIGRhdGUubW9udGggIT09IDAgJiYgZGF0ZS5kYXkgIT09IDA7XG4gIH1cblxuICBpc0RhdGVFYXJsaWVyKGZpcnN0RGF0ZTogSU15RGF0ZSwgc2Vjb25kRGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhmaXJzdERhdGUpIDwgdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoc2Vjb25kRGF0ZSk7XG4gIH1cblxuICBpc0RhdGVTYW1lT3JFYXJsaWVyKGZpcnN0RGF0ZTogSU15RGF0ZSwgc2Vjb25kRGF0ZTogSU15RGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhmaXJzdERhdGUpIDw9IHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKHNlY29uZERhdGUpO1xuICB9XG5cbiAgaXNEYXRlU2FtZShmaXJzdERhdGU6IElNeURhdGUsIHNlY29uZERhdGU6IElNeURhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZmlyc3REYXRlKSA9PT0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoc2Vjb25kRGF0ZSk7XG4gIH1cblxuICBpc0RhdGVSYW5nZUJlZ2luT3JFbmRTYW1lKGRhdGVSYW5nZTogSU15RGF0ZVJhbmdlLCBkYXRlOiBJTXlEYXRlKTogYm9vbGVhbiB7XG4gICAgbGV0IGRhdGVNczogbnVtYmVyID0gdGhpcy5nZXRUaW1lSW5NaWxsaXNlY29uZHMoZGF0ZSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZUluTWlsbGlzZWNvbmRzKGRhdGVSYW5nZS5iZWdpbikgPT09IGRhdGVNcyB8fCB0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlUmFuZ2UuZW5kKSA9PT0gZGF0ZU1zO1xuICB9XG5cbiAgaXNEYXRlSW5SYW5nZShkYXRlOiBJTXlEYXRlLCBkYXRlUmFuZ2U6IElNeURhdGVSYW5nZSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkRGF0ZShkYXRlUmFuZ2UuYmVnaW4pIHx8ICF0aGlzLmlzSW5pdGlhbGl6ZWREYXRlKGRhdGVSYW5nZS5lbmQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRGF0ZVNhbWVPckVhcmxpZXIoZGF0ZVJhbmdlLmJlZ2luLCBkYXRlKSAmJiB0aGlzLmlzRGF0ZVNhbWVPckVhcmxpZXIoZGF0ZSwgZGF0ZVJhbmdlLmVuZCk7XG4gIH1cblxuICByZXNldERhdGUoKTogSU15RGF0ZSB7XG4gICAgcmV0dXJuIHt5ZWFyOiAwLCBtb250aDogMCwgZGF5OiAwfTtcbiAgfVxuXG4gIGdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRlKGRhdGUpLmdldFRpbWUoKTtcbiAgfVxuXG4gIGdldERhdGUoZGF0ZTogSU15RGF0ZSk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCBkYXRlLmRheSwgMCwgMCwgMCwgMCk7XG4gIH1cblxuICBnZXREYXlOdW1iZXIoZGF0ZTogSU15RGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5LCAwLCAwLCAwLCAwKS5nZXREYXkoKTtcbiAgfVxuXG4gIGdldFdlZWtkYXlJbmRleCh3ZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMud2Vla0RheXMuaW5kZXhPZih3ZCk7XG4gIH1cblxuICBnZXRFcG9jVGltZShkYXRlOiBJTXlEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLmdldFRpbWVJbk1pbGxpc2Vjb25kcyhkYXRlKSAvIDEwMDAuMCk7XG4gIH1cblxuICBnZXRLZXlDb2RlRnJvbUV2ZW50KGV2ZW50OiBhbnkpOiBudW1iZXIge1xuICAgIGxldCBrZXk6IGFueSA9IGV2ZW50LmtleSB8fCBldmVudC5rZXlDb2RlO1xuXG4gICAgaWYgKGtleSA9PT0gS2V5TmFtZS5lbnRlciB8fCBrZXkgPT09IEtleUNvZGUuZW50ZXIpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLmVudGVyO1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUuZXNjIHx8IGtleSA9PT0gS2V5Q29kZS5lc2MpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLmVzYztcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLnNwYWNlIHx8IGtleSA9PT0gS2V5Q29kZS5zcGFjZSkge1xuICAgICAgcmV0dXJuIEtleUNvZGUuc3BhY2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS5sZWZ0QXJyb3cgfHwga2V5ID09PSBLZXlDb2RlLmxlZnRBcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUubGVmdEFycm93O1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUudXBBcnJvdyB8fCBrZXkgPT09IEtleUNvZGUudXBBcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUudXBBcnJvdztcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLnJpZ2h0QXJyb3cgfHwga2V5ID09PSBLZXlDb2RlLnJpZ2h0QXJyb3cpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLnJpZ2h0QXJyb3c7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleSA9PT0gS2V5TmFtZS5kb3duQXJyb3cgfHwga2V5ID09PSBLZXlDb2RlLmRvd25BcnJvdykge1xuICAgICAgcmV0dXJuIEtleUNvZGUuZG93bkFycm93O1xuICAgIH1cbiAgICBlbHNlIGlmIChrZXkgPT09IEtleU5hbWUudGFiIHx8IGtleSA9PT0gS2V5Q29kZS50YWIpIHtcbiAgICAgIHJldHVybiBLZXlDb2RlLnRhYjtcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5ID09PSBLZXlOYW1lLnNoaWZ0IHx8IGtleSA9PT0gS2V5Q29kZS5zaGlmdCkge1xuICAgICAgcmV0dXJuIEtleUNvZGUuc2hpZnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
{
"name": "angular-mydatepicker",
"version": "0.0.2",
"version": "0.0.3",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^7.2.0",

@@ -201,3 +201,3 @@ # angular-mydatepicker

| __satHighlight__ | false | boolean | Saturday red colored on calendar. |
| __highlightDates__ | no default value | Array<[IMyDate](https://github.com/kekeh/angular-mydatepicker/blob/master/projects/angular-mydatepicker/src/lib/interfaces/my-date.interface.ts)> | Dates red colored on calendar. For example: [{year: 2019, month: 11, day: 14}, {year: 2019, month: 1, day: 15}] |
| __highlightDates__ | no default value | Array<[IMyDate](https://github.com/kekeh/angular-mydatepicker/blob/master/projects/angular-mydatepicker/src/lib/interfaces/my-date.interface.ts)> | Dates red colored on calendar. Value of year or month can be zero. If it is zero it affects all years/months. For example: [{year: 2019, month: 11, day: 14}, {year: 2019, month: 1, day: 15}] |
| __markCurrentDay__ | true | boolean | Is current day (today) marked (underline) on calendar. |

@@ -219,3 +219,3 @@ | __markCurrentMonth__ | true | boolean | Is current month marked (underline) on calendar. Can be used if __monthSelector = true__. |

| __enableDates__ | no default value | Array<[IMyDate](https://github.com/kekeh/angular-mydatepicker/blob/master/projects/angular-mydatepicker/src/lib/interfaces/my-date.interface.ts)> | Enable single dates one by one if the date is disabled. For example if you disable the date range and want to enable some dates in range. Array of enabled days. For example: [{year: 2019, month: 11, day: 14}, {year: 2019, month: 1, day: 15}]. Value of year or month can be zero. If it is zero it affects all years/months. For example enable first day of every month: [{year: 0, month: 0, day: 1}]. To reset existing __enableDates__ value set empty array to it. |
| __markDates__ | no default value | Array<[IMyMarkedDates](https://github.com/kekeh/angular-mydatepicker/blob/master/projects/angular-mydatepicker/src/lib/interfaces/my-marked-dates.interface.ts)> | Mark dates for different colors. For example: [{dates: [{year: 2019, month: 11, day: 14}, {year: 2019, month: 12, day: 16}], color: '#004198'}, {dates: [{year: 2018, month: 10, day: 1}, {year: 2018, month: 11, day: 4}], color: 'green'}]. To reset existing value of __markDates__ set empty array to it. |
| __markDates__ | no default value | Array<[IMyMarkedDates](https://github.com/kekeh/angular-mydatepicker/blob/master/projects/angular-mydatepicker/src/lib/interfaces/my-marked-dates.interface.ts)> | Mark dates for different colors. For example: [{dates: [{year: 2019, month: 11, day: 14}, {year: 2019, month: 12, day: 16}], color: '#004198'}, {dates: [{year: 2018, month: 10, day: 1}, {year: 2018, month: 11, day: 4}], color: 'green'}]. Value of year or month can be zero. If it is zero it affects all years/months. To reset existing value of __markDates__ set empty array to it. |
| __markWeekends__ | no default value | [IMyMarkedDate](https://github.com/kekeh/angular-mydatepicker/blob/master/projects/angular-mydatepicker/src/lib/interfaces/my-marked-date.interface.ts) | Mark weekends (Saturday and Sunday). For example: {marked: true, color: 'red'}. Value of color can be any CSS color code. To reset existing value of __markWeekends__ set: {marked: false, color: ''} |

@@ -222,0 +222,0 @@ | __alignSelectorRight__ | false | boolean | Align selector right. |

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc