ngx-tethys 18.2.10 → 18.2.13

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.
Files changed (63) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/date-picker/abstract-picker.component.d.ts +6 -1
  3. package/date-picker/base-picker.component.d.ts +1 -1
  4. package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -1
  5. package/date-picker/lib/calendar/calendar-table.component.d.ts +4 -3
  6. package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
  7. package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
  8. package/date-picker/picker.component.d.ts +2 -1
  9. package/date-picker/picker.util.d.ts +5 -5
  10. package/esm2022/cascader/cascader.component.mjs +2 -2
  11. package/esm2022/date-picker/abstract-picker.component.mjs +16 -28
  12. package/esm2022/date-picker/base-picker.component.mjs +17 -13
  13. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  14. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +7 -5
  15. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +6 -4
  16. package/esm2022/date-picker/lib/date/date-table.component.mjs +2 -2
  17. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +29 -45
  18. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +7 -5
  19. package/esm2022/date-picker/month-picker.component.mjs +3 -3
  20. package/esm2022/date-picker/picker.component.mjs +9 -4
  21. package/esm2022/date-picker/picker.util.mjs +21 -15
  22. package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
  23. package/esm2022/date-picker/range-picker.component.mjs +3 -3
  24. package/esm2022/date-picker/week-picker.component.mjs +3 -3
  25. package/esm2022/date-picker/year-picker.component.mjs +3 -3
  26. package/esm2022/i18n/i18n.service.mjs +3 -6
  27. package/esm2022/i18n/locale.mjs +17 -2
  28. package/esm2022/message/message-container.component.mjs +3 -3
  29. package/esm2022/notify/notify-container.component.mjs +3 -3
  30. package/esm2022/select/custom-select/custom-select.component.mjs +2 -2
  31. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +13 -11
  32. package/esm2022/time-picker/inner/inner-time-picker.store.mjs +16 -16
  33. package/esm2022/time-picker/time-picker.utils.mjs +14 -14
  34. package/esm2022/util/date/tiny-date.mjs +23 -11
  35. package/esm2022/util/helpers/helpers.mjs +13 -1
  36. package/esm2022/version.mjs +2 -2
  37. package/fesm2022/ngx-tethys-cascader.mjs +1 -1
  38. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-date-picker.mjs +114 -121
  40. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-i18n.mjs +17 -5
  42. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-message.mjs +2 -2
  44. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-notify.mjs +2 -2
  46. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-select.mjs +1 -1
  48. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-time-picker.mjs +40 -38
  50. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-util.mjs +422 -398
  52. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys.mjs +1 -1
  54. package/fesm2022/ngx-tethys.mjs.map +1 -1
  55. package/i18n/locale.d.ts +7 -1
  56. package/package.json +2 -1
  57. package/schematics/version.d.ts +1 -1
  58. package/schematics/version.js +1 -1
  59. package/table/styles/table.scss +9 -1
  60. package/time-picker/inner/inner-time-picker.component.d.ts +3 -1
  61. package/time-picker/inner/inner-time-picker.store.d.ts +5 -5
  62. package/time-picker/time-picker.utils.d.ts +5 -5
  63. package/util/helpers/helpers.d.ts +1 -0
@@ -1,6 +1,8 @@
1
1
  import { TZDate } from '@date-fns/tz';
2
2
  import { setHours, setMinutes, setSeconds } from 'date-fns';
3
- import { ThyLocaleType } from 'ngx-tethys/i18n';
3
+ import { fromZonedTime } from 'date-fns-tz';
4
+ import { getDefaultLocaleId } from 'ngx-tethys/i18n';
5
+ import { hasTimeInStringDate } from '../helpers';
4
6
  import { addDays, addHours, addMinutes, addMonths, addQuarters, addSeconds, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarMonths, differenceInCalendarQuarters, differenceInCalendarYears, differenceInDays, differenceInHours, differenceInMinutes, differenceInSeconds, differenceInWeeks, endOfDay, endOfISOWeek, endOfMonth, endOfQuarter, endOfWeek, endOfYear, format, fromUnixTime, getDateFnsLocale, getDaysInMonth, getQuarter, getUnixTime, getWeek, isSameDay, isSameHour, isSameMinute, isSameMonth, isSameQuarter, isSameSecond, isSameYear, isToday, isTomorrow, isValid, isWeekend, setDay, setDefaultOptions, setMonth, setQuarter, setYear, startOfDay, startOfISOWeek, startOfMonth, startOfQuarter, startOfWeek, startOfYear, subDays, subWeeks } from './functions';
5
7
  export function sortRangeValue(rangeValue) {
6
8
  if (Array.isArray(rangeValue)) {
@@ -11,15 +13,29 @@ export function sortRangeValue(rangeValue) {
11
13
  }
12
14
  export const DEFAULT_TIMEZONE = 'Asia/Shanghai';
13
15
  export class TinyDate {
14
- static { this.dateFnsLocale = getDateFnsLocale(ThyLocaleType.zhHans); }
16
+ static { this.locale = getDefaultLocaleId(); }
17
+ static { this.dateFnsLocale = getDateFnsLocale(TinyDate.locale); }
15
18
  static { this.defaultTimeZone = DEFAULT_TIMEZONE; }
16
19
  constructor(date, zone) {
20
+ setDefaultOptions({ locale: TinyDate.dateFnsLocale });
17
21
  this.useTimeZone = zone || TinyDate.defaultTimeZone;
18
22
  if (date) {
19
23
  if (date instanceof Date) {
20
24
  this.nativeDate = TinyDate.utcToZonedTime(date, this.useTimeZone);
21
25
  }
22
- else if (typeof date === 'string' || typeof date === 'number') {
26
+ else if (typeof date === 'string') {
27
+ if (hasTimeInStringDate(date)) {
28
+ // If the string contains time, you need to convert the time to UTC time before passing it to TZDate
29
+ const originTime = new Date(date);
30
+ const zoneTime = TZDate.tz(this.useTimeZone, originTime);
31
+ const utcDate = fromZonedTime(zoneTime, this.useTimeZone).toISOString();
32
+ this.nativeDate = new TZDate(utcDate, this.useTimeZone);
33
+ }
34
+ else {
35
+ this.nativeDate = new TZDate(date, this.useTimeZone);
36
+ }
37
+ }
38
+ else if (typeof date === 'number') {
23
39
  this.nativeDate = new TZDate(date, this.useTimeZone);
24
40
  }
25
41
  else if (typeof ngDevMode === 'undefined' || ngDevMode) {
@@ -98,14 +114,10 @@ export class TinyDate {
98
114
  }
99
115
  // set
100
116
  setDate(amount) {
101
- const date = new Date(this.nativeDate);
102
- date.setDate(amount);
103
- return new TinyDate(date, this.useTimeZone);
117
+ return new TinyDate(this.nativeDate.setDate(amount), this.useTimeZone);
104
118
  }
105
119
  setHms(hour, minute, second) {
106
- const date = new Date(this.nativeDate);
107
- date.setHours(hour, minute, second);
108
- return new TinyDate(date, this.useTimeZone);
120
+ return new TinyDate(this.nativeDate?.setHours(hour, minute, second), this.useTimeZone);
109
121
  }
110
122
  setYear(year) {
111
123
  return new TinyDate(setYear(this.nativeDate, year), this.useTimeZone);
@@ -309,7 +321,7 @@ export class TinyDate {
309
321
  return new TinyDate(startOfWeek(startOfMonth(this.nativeDate), options), this.useTimeZone);
310
322
  }
311
323
  clone() {
312
- return new TinyDate(new Date(this.nativeDate), this.useTimeZone);
324
+ return new TinyDate(this.nativeDate, this.useTimeZone);
313
325
  }
314
326
  getUnixTime() {
315
327
  return getUnixTime(this.nativeDate);
@@ -372,4 +384,4 @@ export class TinyDate {
372
384
  return new TinyDate(subDays(this.nativeDate, amount), this.useTimeZone);
373
385
  }
374
386
  }
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS90aW55LWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQWlDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0gsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osVUFBVSxFQUNWLE9BQU8sRUFDUCxVQUFVLEVBQ1YsT0FBTyxFQUNQLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixVQUFVLEVBQ1YsT0FBTyxFQUNQLFVBQVUsRUFDVixjQUFjLEVBQ2QsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEVBQ1gsV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEVBQ1gsTUFBTSxhQUFhLENBQUM7QUFRckIsTUFBTSxVQUFVLGNBQWMs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LENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWM7UUFDbEIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRaRGF0ZSB9IGZyb20gJ0BkYXRlLWZucy90eic7XG5pbXBvcnQgeyBGaXJzdFdlZWtDb250YWluc0RhdGUsIExvY2FsZSwgc2V0SG91cnMsIHNldE1pbnV0ZXMsIHNldFNlY29uZHMgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBUaHlMb2NhbGVUeXBlIH0gZnJvbSAnbmd4LXRldGh5cy9pMThuJztcbmltcG9ydCB7IFNhZmVBbnkgfSBmcm9tICduZ3gtdGV0aHlzL3R5cGVzJztcbmltcG9ydCB7XG4gICAgYWRkRGF5cyxcbiAgICBhZGRIb3VycyxcbiAgICBhZGRNaW51dGVzLFxuICAgIGFkZE1vbnRocyxcbiAgICBhZGRRdWFydGVycyxcbiAgICBhZGRTZWNvbmRzLFxuICAgIGFkZFdlZWtzLFxuICAgIGFkZFllYXJzLFxuICAgIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyxcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyxcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzLFxuICAgIGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMsXG4gICAgZGlmZmVyZW5jZUluRGF5cyxcbiAgICBkaWZmZXJlbmNlSW5Ib3VycyxcbiAgICBkaWZmZXJlbmNlSW5NaW51dGVzLFxuICAgIGRpZmZlcmVuY2VJblNlY29uZHMsXG4gICAgZGlmZmVyZW5jZUluV2Vla3MsXG4gICAgZW5kT2ZEYXksXG4gICAgZW5kT2ZJU09XZWVrLFxuICAgIGVuZE9mTW9udGgsXG4gICAgZW5kT2ZRdWFydGVyLFxuICAgIGVuZE9mV2VlayxcbiAgICBlbmRPZlllYXIsXG4gICAgZm9ybWF0LFxuICAgIGZyb21Vbml4VGltZSxcbiAgICBnZXREYXRlRm5zTG9jYWxlLFxuICAgIGdldERheXNJbk1vbnRoLFxuICAgIGdldFF1YXJ0ZXIsXG4gICAgZ2V0VW5peFRpbWUsXG4gICAgZ2V0V2VlayxcbiAgICBpc1NhbWVEYXksXG4gICAgaXNTYW1lSG91cixcbiAgICBpc1NhbWVNaW51dGUsXG4gICAgaXNTYW1lTW9udGgsXG4gICAgaXNTYW1lUXVhcnRlcixcbiAgICBpc1NhbWVTZWNvbmQsXG4gICAgaXNTYW1lWWVhcixcbiAgICBpc1RvZGF5LFxuICAgIGlzVG9tb3Jyb3csXG4gICAgaXNWYWxpZCxcbiAgICBpc1dlZWtlbmQsXG4gICAgc2V0RGF5LFxuICAgIHNldERlZmF1bHRPcHRpb25zLFxuICAgIHNldE1vbnRoLFxuICAgIHNldFF1YXJ0ZXIsXG4gICAgc2V0WWVhcixcbiAgICBzdGFydE9mRGF5LFxuICAgIHN0YXJ0T2ZJU09XZWVrLFxuICAgIHN0YXJ0T2ZNb250aCxcbiAgICBzdGFydE9mUXVhcnRlcixcbiAgICBzdGFydE9mV2VlayxcbiAgICBzdGFydE9mWWVhcixcbiAgICBzdWJEYXlzLFxuICAgIHN1YldlZWtzXG59IGZyb20gJy4vZnVuY3Rpb25zJztcblxuZXhwb3J0IHR5cGUgVGlueURhdGVDb21wYXJlR3JhaW4gPSAnZGVjYWRlJyB8ICd5ZWFyJyB8ICdxdWFydGVyJyB8ICdtb250aCcgfCAnd2VlaycgfCAnZGF5JyB8ICdob3VyJyB8ICdtaW51dGUnIHwgJ3NlY29uZCc7XG5cbmV4cG9ydCB0eXBlIFdlZWtEYXlJbmRleCA9IDAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG5cbmV4cG9ydCB0eXBlIFRpbnlEYXRlVHlwZSA9IFRpbnlEYXRlIHwgRGF0ZSB8IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0UmFuZ2VWYWx1ZShyYW5nZVZhbHVlOiBUaW55RGF0ZVtdKTogVGlueURhdGVbXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmFuZ2VWYWx1ZSkpIHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gcmFuZ2VWYWx1ZTtcbiAgICAgICAgcmV0dXJuIHN0YXJ0ICYmIGVuZCAmJiBzdGFydC5pc0FmdGVyU2Vjb25kKGVuZCkgPyBbZW5kLCBzdGFydF0gOiBbc3RhcnQsIGVuZF07XG4gICAgfVxuICAgIHJldHVybiByYW5nZVZhbHVlO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FWk9ORSA9ICdBc2lhL1NoYW5naGFpJztcblxuZXhwb3J0IGNsYXNzIFRpbnlEYXRlIGltcGxlbWVudHMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgbmF0aXZlRGF0ZTogRGF0ZTtcblxuICAgIHByaXZhdGUgdXNlVGltZVpvbmU6IHN0cmluZztcblxuICAgIHByaXZhdGUgc3RhdGljIGxvY2FsZTogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBkYXRlRm5zTG9jYWxlOiBMb2NhbGUgPSBnZXREYXRlRm5zTG9jYWxlKFRoeUxvY2FsZVR5cGUuemhIYW5zKTtcblxuICAgIHByb3RlY3RlZCBzdGF0aWMgZGVmYXVsdFRpbWVab25lOiBzdHJpbmcgPSBERUZBVUxUX1RJTUVaT05FO1xuXG4gICAgY29uc3RydWN0b3IoZGF0ZT86IERhdGUgfCBzdHJpbmcgfCBudW1iZXIsIHpvbmU/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51c2VUaW1lWm9uZSA9IHpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lO1xuICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gVGlueURhdGUudXRjVG9ab25lZFRpbWUoZGF0ZSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZURhdGUgPSBuZXcgVFpEYXRlKGRhdGUgYXMgU2FmZUFueSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFRoZSBpbnB1dCBkYXRlIHR5cGUgaXMgbm90IHN1cHBvcnRlZCBleHBlY3QgRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IHsgZGF0ZTogbnVtYmVyOyB3aXRoX3RpbWU6IDAgfCAxfSwgYWN0dWFsICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlXG4gICAgICAgICAgICAgICAgICAgICl9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZURhdGUgPSBuZXcgVFpEYXRlKERhdGUubm93KCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIHNldERlZmF1bHRMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICAgICAgVGlueURhdGUubG9jYWxlID0gbG9jYWxlO1xuICAgICAgICBUaW55RGF0ZS5kYXRlRm5zTG9jYWxlID0gZ2V0RGF0ZUZuc0xvY2FsZShsb2NhbGUpO1xuICAgICAgICByZXR1cm4gc2V0RGVmYXVsdE9wdGlvbnMoeyBsb2NhbGU6IFRpbnlEYXRlLmRhdGVGbnNMb2NhbGUgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldERlZmF1bHRMb2NhbGUoKTogeyBsb2NhbGU6IHN0cmluZzsgZGF0ZUZuc0xvY2FsZTogTG9jYWxlIH0ge1xuICAgICAgICByZXR1cm4geyBsb2NhbGU6IFRpbnlEYXRlLmxvY2FsZSwgZGF0ZUZuc0xvY2FsZTogVGlueURhdGUuZGF0ZUZuc0xvY2FsZSB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBzZXREZWZhdWx0VGltZVpvbmUoem9uZTogc3RyaW5nKSB7XG4gICAgICAgIFRpbnlEYXRlLmRlZmF1bHRUaW1lWm9uZSA9IHpvbmUgPz8gREVGQVVMVF9USU1FWk9ORTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RGVmYXVsdFRpbWVab25lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBUaW55RGF0ZS5kZWZhdWx0VGltZVpvbmU7XG4gICAgfVxuXG4gICAgc3RhdGljIHV0Y1RvWm9uZWRUaW1lKHZhbHVlOiBEYXRlIHwgbnVtYmVyLCB0aW1lWm9uZT86IHN0cmluZyk6IERhdGUge1xuICAgICAgICByZXR1cm4gVFpEYXRlLnR6KHRpbWVab25lIHx8IFRpbnlEYXRlLmRlZmF1bHRUaW1lWm9uZSwgdmFsdWUgYXMgYW55KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlRGF0ZUluVGltZVpvbmUoXG4gICAgICAgIHllYXI6IG51bWJlcixcbiAgICAgICAgbW9udGg6IG51bWJlcixcbiAgICAgICAgZGF5OiBudW1iZXIsXG4gICAgICAgIGhvdXJzOiBudW1iZXIsXG4gICAgICAgIG1pbnV0ZXM6IG51bWJlcixcbiAgICAgICAgc2Vjb25kczogbnVtYmVyLFxuICAgICAgICB0aW1lWm9uZT86IHN0cmluZ1xuICAgICk6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRaRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcywgdGltZVpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbVVuaXhUaW1lKHVuaXhUaW1lOiBudW1iZXIsIHRpbWVab25lPzogc3RyaW5nKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGZyb21Vbml4VGltZSh1bml4VGltZSksIHRpbWVab25lIHx8IFRpbnlEYXRlLmRlZmF1bHRUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgLy8gZ2V0XG4gICAgZ2V0VGltZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldFRpbWUoKTtcbiAgICB9XG5cbiAgICBnZXREYXRlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0RGF0ZSgpO1xuICAgIH1cblxuICAgIGdldFllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIGdldFF1YXJ0ZXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldFF1YXJ0ZXIodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBnZXRNb250aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldE1vbnRoKCk7XG4gICAgfVxuXG4gICAgZ2V0RnVsbFllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIGdldFdlZWsob3B0aW9uczogeyBsb2NhbGU/OiBMb2NhbGU7IHdlZWtTdGFydHNPbj86IFdlZWtEYXlJbmRleCB9ID0geyB3ZWVrU3RhcnRzT246IDEgfSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBnZXRXZWVrKHRoaXMubmF0aXZlRGF0ZSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgZ2V0RGF5KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0RGF5KCk7XG4gICAgfVxuXG4gICAgZ2V0SG91cnMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXRIb3VycygpO1xuICAgIH1cblxuICAgIGdldE1pbnV0ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgfVxuXG4gICAgZ2V0U2Vjb25kcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldFNlY29uZHMoKTtcbiAgICB9XG5cbiAgICBnZXRNaWxsaXNlY29uZHMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXRNaWxsaXNlY29uZHMoKTtcbiAgICB9XG5cbiAgICBnZXREYXlzSW5Nb250aCgpIHtcbiAgICAgICAgcmV0dXJuIGdldERheXNJbk1vbnRoKHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgZ2V0RGF5c0luUXVhcnRlcigpIHtcbiAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyh0aGlzLmVuZE9mUXVhcnRlcigpLmFkZFNlY29uZHMoMSkubmF0aXZlRGF0ZSwgdGhpcy5zdGFydE9mUXVhcnRlcigpLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIC8vIHNldFxuICAgIHNldERhdGUoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLm5hdGl2ZURhdGUpO1xuICAgICAgICBkYXRlLnNldERhdGUoYW1vdW50KTtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShkYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXRIbXMoaG91cjogbnVtYmVyLCBtaW51dGU6IG51bWJlciwgc2Vjb25kOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLm5hdGl2ZURhdGUpO1xuICAgICAgICBkYXRlLnNldEhvdXJzKGhvdXIsIG1pbnV0ZSwgc2Vjb25kKTtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShkYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXRZZWFyKHllYXI6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRZZWFyKHRoaXMubmF0aXZlRGF0ZSwgeWVhciksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldE1vbnRoKG1vbnRoOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0TW9udGgodGhpcy5uYXRpdmVEYXRlLCBtb250aCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldFF1YXJ0ZXIocXVhcnRlcjogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHNldFF1YXJ0ZXIodGhpcy5uYXRpdmVEYXRlLCBxdWFydGVyKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0RGF5KGRheTogbnVtYmVyLCBvcHRpb25zPzogeyB3ZWVrU3RhcnRzT246IFdlZWtEYXlJbmRleCB9KTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHNldERheSh0aGlzLm5hdGl2ZURhdGUsIGRheSwgb3B0aW9ucyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldEhvdXJzKGhvdXJzOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0SG91cnModGhpcy5uYXRpdmVEYXRlLCBob3VycyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldE1pbnV0ZXMobWludXRlczogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHNldE1pbnV0ZXModGhpcy5uYXRpdmVEYXRlLCBtaW51dGVzKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0U2Vjb25kcyhzZWNvbmRzOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0U2Vjb25kcyh0aGlzLm5hdGl2ZURhdGUsIHNlY29uZHMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBhZGRcbiAgICBhZGRZZWFycyhhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShhZGRZZWFycyh0aGlzLm5hdGl2ZURhdGUsIGFtb3VudCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGFkZFF1YXJ0ZXJzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFF1YXJ0ZXJzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkTW9udGhzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZE1vbnRocyh0aGlzLm5hdGl2ZURhdGUsIGFtb3VudCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGFkZFdlZWtzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFdlZWtzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkRGF5cyhhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShhZGREYXlzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuICAgIGFkZEhvdXJzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZEhvdXJzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkU2Vjb25kcyhhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShhZGRTZWNvbmRzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkTWludXRlcyhhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShhZGRNaW51dGVzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgLy8gaXNTYW1lXG5cbiAgICBpc1NhbWUoZGF0ZTogVGlueURhdGVUeXBlLCBncmFpbjogVGlueURhdGVDb21wYXJlR3JhaW4gPSAnZGF5Jyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZm47XG4gICAgICAgIHN3aXRjaCAoZ3JhaW4pIHtcbiAgICAgICAgICAgIGNhc2UgJ2RlY2FkZSc6XG4gICAgICAgICAgICAgICAgZm4gPSAocHJlOiBEYXRlLCBuZXh0OiBEYXRlKSA9PiBNYXRoLmFicyhwcmUuZ2V0RnVsbFllYXIoKSAtIG5leHQuZ2V0RnVsbFllYXIoKSkgPCAxMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lWWVhcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZU1vbnRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVRdWFydGVyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZURheTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lSG91cjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVNaW51dGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lU2Vjb25kO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZURheTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm4odGhpcy5uYXRpdmVEYXRlLCB0aGlzLnRvTmF0aXZlRGF0ZShkYXRlKSk7XG4gICAgfVxuXG4gICAgaXNTYW1lWWVhcihkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICd5ZWFyJyk7XG4gICAgfVxuXG4gICAgaXNTYW1lTW9udGgoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAnbW9udGgnKTtcbiAgICB9XG5cbiAgICBpc1NhbWVRdWFydGVyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ3F1YXJ0ZXInKTtcbiAgICB9XG5cbiAgICBpc1NhbWVEYXkoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAnZGF5Jyk7XG4gICAgfVxuXG4gICAgaXNTYW1lSG91cihkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdob3VyJyk7XG4gICAgfVxuXG4gICAgaXNTYW1lTWludXRlKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ21pbnV0ZScpO1xuICAgIH1cblxuICAgIGlzU2FtZVNlY29uZChkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdzZWNvbmQnKTtcbiAgICB9XG5cbiAgICAvLyBpc0JlZm9yZSBhbmQgaXNBZnRlclxuICAgIGlzQmVmb3JlWWVhcihkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAneWVhcicpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlUXVhcnRlcihkYXRlOiBUaW55RGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdxdWFydGVyJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVNb250aChkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbW9udGgnKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZVdlZWsoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3dlZWsnKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZURheShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnZGF5Jyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVIb3VyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdob3VyJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVNaW51dGUoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ21pbnV0ZScpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlU2Vjb25kKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdzZWNvbmQnKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyWWVhcihkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAneWVhcicsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyUXVhcnRlcihkYXRlOiBUaW55RGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdxdWFydGVyJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJNb250aChkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbW9udGgnLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlcldlZWsoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3dlZWsnLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlckRheShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnZGF5JywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJIb3VyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdob3VyJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJNaW51dGUoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ21pbnV0ZScsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyU2Vjb25kKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdzZWNvbmQnLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLy8gaXNcbiAgICBpc1dlZWtlbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1dlZWtlbmQodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBpc1RvZGF5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNUb2RheSh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGlzVG9tb3Jyb3coKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1RvbW9ycm93KHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICAvLyBzdGFydE9mIGFuZCBlbmRPZlxuICAgIHN0YXJ0T2ZZZWFyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mWWVhcih0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mUXVhcnRlcigpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3RhcnRPZlF1YXJ0ZXIodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc3RhcnRPZk1vbnRoKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mTW9udGgodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc3RhcnRPZldlZWsob3B0aW9ucz86IHsgbG9jYWxlPzogTG9jYWxlOyB3ZWVrU3RhcnRzT24/OiBXZWVrRGF5SW5kZXggfSk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mV2Vlayh0aGlzLm5hdGl2ZURhdGUsIG9wdGlvbnMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mRGF5KCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mRGF5KHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGVuZE9mWWVhcigpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZW5kT2ZZZWFyKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGVuZE9mUXVhcnRlcigpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZW5kT2ZRdWFydGVyKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGVuZE9mTW9udGgoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGVuZE9mTW9udGgodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZXZWVrKG9wdGlvbnM/OiB7IGxvY2FsZT86IExvY2FsZTsgd2Vla1N0YXJ0c09uPzogV2Vla0RheUluZGV4IH0pOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZW5kT2ZXZWVrKHRoaXMubmF0aXZlRGF0ZSwgb3B0aW9ucyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGVuZE9mRGF5KCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZkRheSh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBvdGhlclxuICAgIGZvcm1hdChcbiAgICAgICAgbWF0OiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICBsb2NhbGU/OiBMb2NhbGU7XG4gICAgICAgICAgICB3ZWVrU3RhcnRzT24/OiBXZWVrRGF5SW5kZXg7XG4gICAgICAgICAgICBmaXJzdFdlZWtDb250YWluc0RhdGU/OiBGaXJzdFdlZWtDb250YWluc0RhdGU7XG4gICAgICAgICAgICB1c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnM/OiBib29sZWFuO1xuICAgICAgICAgICAgdXNlQWRkaXRpb25hbERheU9mWWVhclRva2Vucz86IGJvb2xlYW47XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdCh0aGlzLm5hdGl2ZURhdGUsIG1hdCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2FsZW5kYXJTdGFydChvcHRpb25zPzogeyB3ZWVrU3RhcnRzT246IFdlZWtEYXlJbmRleCB8IHVuZGVmaW5lZCB9KTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZXZWVrKHN0YXJ0T2ZNb250aCh0aGlzLm5hdGl2ZURhdGUpLCBvcHRpb25zKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgY2xvbmUoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKG5ldyBEYXRlKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGdldFVuaXhUaW1lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBnZXRVbml4VGltZSh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGNvbXBhcmUoZGF0ZTogVGlueURhdGVUeXBlLCBncmFpbjogVGlueURhdGVDb21wYXJlR3JhaW4gPSAnZGF5JywgaXNCZWZvcmU6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGZuO1xuICAgICAgICBzd2l0Y2ggKGdyYWluKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbldlZWtzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5Ib3VycztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5NaW51dGVzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJblNlY29uZHM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0JlZm9yZSA/IGZuKHRoaXMubmF0aXZlRGF0ZSwgdGhpcy50b05hdGl2ZURhdGUoZGF0ZSkpIDwgMCA6IGZuKHRoaXMubmF0aXZlRGF0ZSwgdGhpcy50b05hdGl2ZURhdGUoZGF0ZSkpID4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvTmF0aXZlRGF0ZShkYXRlOiBhbnkpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBUaW55RGF0ZSA/IGRhdGUubmF0aXZlRGF0ZSA6IGRhdGU7XG4gICAgfVxuXG4gICAgc3RhcnRPZklTT1dlZWsoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZJU09XZWVrKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGVuZE9mSVNPV2VlaygpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZW5kT2ZJU09XZWVrKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIGRpZmZlcmVuY2VJbkRheXMoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkaWZmZXJlbmNlSW5EYXlzKHRoaXMubmF0aXZlRGF0ZSwgZGF0ZSk7XG4gICAgfVxuXG4gICAgZGlmZmVyZW5jZUluSG91cnMoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkaWZmZXJlbmNlSW5Ib3Vycyh0aGlzLm5hdGl2ZURhdGUsIGRhdGUpO1xuICAgIH1cblxuICAgIHN1YldlZWtzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN1YldlZWtzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc3ViRGF5cyhhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdWJEYXlzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxufVxuIl19
387
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS90aW55LWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQWlDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsYUFBYSxFQUNiLFlBQVksRUFDWixVQUFVLEVBQ1YsT0FBTyxFQUNQLFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZCxZQUFZLEVBQ1os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O0lBQzdELENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sSUFBSSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVU7UUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFVO1FBQ3hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWM7UUFDbkIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFjO1FBQ2xCLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUWkRhdGUgfSBmcm9tICdAZGF0ZS1mbnMvdHonO1xuaW1wb3J0IHsgRmlyc3RXZWVrQ29udGFpbnNEYXRlLCBMb2NhbGUsIHNldEhvdXJzLCBzZXRNaW51dGVzLCBzZXRTZWNvbmRzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZnJvbVpvbmVkVGltZSB9IGZyb20gJ2RhdGUtZm5zLXR6JztcbmltcG9ydCB7IGdldERlZmF1bHRMb2NhbGVJZCB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5pbXBvcnQgeyBoYXNUaW1lSW5TdHJpbmdEYXRlIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQge1xuICAgIGFkZERheXMsXG4gICAgYWRkSG91cnMsXG4gICAgYWRkTWludXRlcyxcbiAgICBhZGRNb250aHMsXG4gICAgYWRkUXVhcnRlcnMsXG4gICAgYWRkU2Vjb25kcyxcbiAgICBhZGRXZWVrcyxcbiAgICBhZGRZZWFycyxcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMsXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyxcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzLFxuICAgIGRpZmZlcmVuY2VJbkRheXMsXG4gICAgZGlmZmVyZW5jZUluSG91cnMsXG4gICAgZGlmZmVyZW5jZUluTWludXRlcyxcbiAgICBkaWZmZXJlbmNlSW5TZWNvbmRzLFxuICAgIGRpZmZlcmVuY2VJbldlZWtzLFxuICAgIGVuZE9mRGF5LFxuICAgIGVuZE9mSVNPV2VlayxcbiAgICBlbmRPZk1vbnRoLFxuICAgIGVuZE9mUXVhcnRlcixcbiAgICBlbmRPZldlZWssXG4gICAgZW5kT2ZZZWFyLFxuICAgIGZvcm1hdCxcbiAgICBmcm9tVW5peFRpbWUsXG4gICAgZ2V0RGF0ZUZuc0xvY2FsZSxcbiAgICBnZXREYXlzSW5Nb250aCxcbiAgICBnZXRRdWFydGVyLFxuICAgIGdldFVuaXhUaW1lLFxuICAgIGdldFdlZWssXG4gICAgaXNTYW1lRGF5LFxuICAgIGlzU2FtZUhvdXIsXG4gICAgaXNTYW1lTWludXRlLFxuICAgIGlzU2FtZU1vbnRoLFxuICAgIGlzU2FtZVF1YXJ0ZXIsXG4gICAgaXNTYW1lU2Vjb25kLFxuICAgIGlzU2FtZVllYXIsXG4gICAgaXNUb2RheSxcbiAgICBpc1RvbW9ycm93LFxuICAgIGlzVmFsaWQsXG4gICAgaXNXZWVrZW5kLFxuICAgIHNldERheSxcbiAgICBzZXREZWZhdWx0T3B0aW9ucyxcbiAgICBzZXRNb250aCxcbiAgICBzZXRRdWFydGVyLFxuICAgIHNldFllYXIsXG4gICAgc3RhcnRPZkRheSxcbiAgICBzdGFydE9mSVNPV2VlayxcbiAgICBzdGFydE9mTW9udGgsXG4gICAgc3RhcnRPZlF1YXJ0ZXIsXG4gICAgc3RhcnRPZldlZWssXG4gICAgc3RhcnRPZlllYXIsXG4gICAgc3ViRGF5cyxcbiAgICBzdWJXZWVrc1xufSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIFRpbnlEYXRlQ29tcGFyZUdyYWluID0gJ2RlY2FkZScgfCAneWVhcicgfCAncXVhcnRlcicgfCAnbW9udGgnIHwgJ3dlZWsnIHwgJ2RheScgfCAnaG91cicgfCAnbWludXRlJyB8ICdzZWNvbmQnO1xuXG5leHBvcnQgdHlwZSBXZWVrRGF5SW5kZXggPSAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuXG5leHBvcnQgdHlwZSBUaW55RGF0ZVR5cGUgPSBUaW55RGF0ZSB8IERhdGUgfCBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gc29ydFJhbmdlVmFsdWUocmFuZ2VWYWx1ZTogVGlueURhdGVbXSk6IFRpbnlEYXRlW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJhbmdlVmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHJhbmdlVmFsdWU7XG4gICAgICAgIHJldHVybiBzdGFydCAmJiBlbmQgJiYgc3RhcnQuaXNBZnRlclNlY29uZChlbmQpID8gW2VuZCwgc3RhcnRdIDogW3N0YXJ0LCBlbmRdO1xuICAgIH1cbiAgICByZXR1cm4gcmFuZ2VWYWx1ZTtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRVpPTkUgPSAnQXNpYS9TaGFuZ2hhaSc7XG5cbmV4cG9ydCBjbGFzcyBUaW55RGF0ZSBpbXBsZW1lbnRzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIG5hdGl2ZURhdGU6IERhdGU7XG5cbiAgICBwcml2YXRlIHVzZVRpbWVab25lOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBsb2NhbGU6IHN0cmluZyA9IGdldERlZmF1bHRMb2NhbGVJZCgpO1xuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBkYXRlRm5zTG9jYWxlOiBMb2NhbGUgPSBnZXREYXRlRm5zTG9jYWxlKFRpbnlEYXRlLmxvY2FsZSk7XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIGRlZmF1bHRUaW1lWm9uZTogc3RyaW5nID0gREVGQVVMVF9USU1FWk9ORTtcblxuICAgIGNvbnN0cnVjdG9yKGRhdGU/OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyLCB6b25lPzogc3RyaW5nKSB7XG4gICAgICAgIHNldERlZmF1bHRPcHRpb25zKHsgbG9jYWxlOiBUaW55RGF0ZS5kYXRlRm5zTG9jYWxlIH0pO1xuICAgICAgICB0aGlzLnVzZVRpbWVab25lID0gem9uZSB8fCBUaW55RGF0ZS5kZWZhdWx0VGltZVpvbmU7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZURhdGUgPSBUaW55RGF0ZS51dGNUb1pvbmVkVGltZShkYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc1RpbWVJblN0cmluZ0RhdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHN0cmluZyBjb250YWlucyB0aW1lLCB5b3UgbmVlZCB0byBjb252ZXJ0IHRoZSB0aW1lIHRvIFVUQyB0aW1lIGJlZm9yZSBwYXNzaW5nIGl0IHRvIFRaRGF0ZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5UaW1lID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHpvbmVUaW1lID0gVFpEYXRlLnR6KHRoaXMudXNlVGltZVpvbmUsIG9yaWdpblRpbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1dGNEYXRlID0gZnJvbVpvbmVkVGltZSh6b25lVGltZSwgdGhpcy51c2VUaW1lWm9uZSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gbmV3IFRaRGF0ZSh1dGNEYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZURhdGUgPSBuZXcgVFpEYXRlKGRhdGUsIHRoaXMudXNlVGltZVpvbmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gbmV3IFRaRGF0ZShkYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgVGhlIGlucHV0IGRhdGUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIGV4cGVjdCBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgeyBkYXRlOiBudW1iZXI7IHdpdGhfdGltZTogMCB8IDF9LCBhY3R1YWwgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVcbiAgICAgICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRGF0ZSA9IG5ldyBUWkRhdGUoRGF0ZS5ub3coKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgc2V0RGVmYXVsdExvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICAgICAgICBUaW55RGF0ZS5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgIFRpbnlEYXRlLmRhdGVGbnNMb2NhbGUgPSBnZXREYXRlRm5zTG9jYWxlKGxvY2FsZSk7XG4gICAgICAgIHJldHVybiBzZXREZWZhdWx0T3B0aW9ucyh7IGxvY2FsZTogVGlueURhdGUuZGF0ZUZuc0xvY2FsZSB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RGVmYXVsdExvY2FsZSgpOiB7IGxvY2FsZTogc3RyaW5nOyBkYXRlRm5zTG9jYWxlOiBMb2NhbGUgfSB7XG4gICAgICAgIHJldHVybiB7IGxvY2FsZTogVGlueURhdGUubG9jYWxlLCBkYXRlRm5zTG9jYWxlOiBUaW55RGF0ZS5kYXRlRm5zTG9jYWxlIH07XG4gICAgfVxuXG4gICAgc3RhdGljIHNldERlZmF1bHRUaW1lWm9uZSh6b25lOiBzdHJpbmcpIHtcbiAgICAgICAgVGlueURhdGUuZGVmYXVsdFRpbWVab25lID0gem9uZSA/PyBERUZBVUxUX1RJTUVaT05FO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXREZWZhdWx0VGltZVpvbmUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFRpbnlEYXRlLmRlZmF1bHRUaW1lWm9uZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgdXRjVG9ab25lZFRpbWUodmFsdWU6IERhdGUgfCBudW1iZXIsIHRpbWVab25lPzogc3RyaW5nKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBUWkRhdGUudHoodGltZVpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lLCB2YWx1ZSBhcyBhbnkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjcmVhdGVEYXRlSW5UaW1lWm9uZShcbiAgICAgICAgeWVhcjogbnVtYmVyLFxuICAgICAgICBtb250aDogbnVtYmVyLFxuICAgICAgICBkYXk6IG51bWJlcixcbiAgICAgICAgaG91cnM6IG51bWJlcixcbiAgICAgICAgbWludXRlczogbnVtYmVyLFxuICAgICAgICBzZWNvbmRzOiBudW1iZXIsXG4gICAgICAgIHRpbWVab25lPzogc3RyaW5nXG4gICAgKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVFpEYXRlKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCB0aW1lWm9uZSB8fCBUaW55RGF0ZS5kZWZhdWx0VGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tVW5peFRpbWUodW5peFRpbWU6IG51bWJlciwgdGltZVpvbmU/OiBzdHJpbmcpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZnJvbVVuaXhUaW1lKHVuaXhUaW1lKSwgdGltZVpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBnZXRcbiAgICBnZXRUaW1lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0VGltZSgpO1xuICAgIH1cblxuICAgIGdldERhdGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXREYXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0WWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgZ2V0UXVhcnRlcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0UXVhcnRlcih0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGdldE1vbnRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0TW9udGgoKTtcbiAgICB9XG5cbiAgICBnZXRGdWxsWWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgZ2V0V2VlayhvcHRpb25zOiB7IGxvY2FsZT86IExvY2FsZTsgd2Vla1N0YXJ0c09uPzogV2Vla0RheUluZGV4IH0gPSB7IHdlZWtTdGFydHNPbjogMSB9KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldFdlZWsodGhpcy5uYXRpdmVEYXRlLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBnZXREYXkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXREYXkoKTtcbiAgICB9XG5cbiAgICBnZXRIb3VycygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEhvdXJzKCk7XG4gICAgfVxuXG4gICAgZ2V0TWludXRlcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldE1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0U2Vjb25kcygpO1xuICAgIH1cblxuICAgIGdldE1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cblxuICAgIGdldERheXNJbk1vbnRoKCkge1xuICAgICAgICByZXR1cm4gZ2V0RGF5c0luTW9udGgodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBnZXREYXlzSW5RdWFydGVyKCkge1xuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHRoaXMuZW5kT2ZRdWFydGVyKCkuYWRkU2Vjb25kcygxKS5uYXRpdmVEYXRlLCB0aGlzLnN0YXJ0T2ZRdWFydGVyKCkubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgLy8gc2V0XG4gICAgc2V0RGF0ZShhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZSh0aGlzLm5hdGl2ZURhdGUuc2V0RGF0ZShhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXRIbXMoaG91cjogbnVtYmVyLCBtaW51dGU6IG51bWJlciwgc2Vjb25kOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUodGhpcy5uYXRpdmVEYXRlPy5zZXRIb3Vycyhob3VyLCBtaW51dGUsIHNlY29uZCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldFllYXIoeWVhcjogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHNldFllYXIodGhpcy5uYXRpdmVEYXRlLCB5ZWFyKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0TW9udGgobW9udGg6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRNb250aCh0aGlzLm5hdGl2ZURhdGUsIG1vbnRoKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0UXVhcnRlcihxdWFydGVyOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0UXVhcnRlcih0aGlzLm5hdGl2ZURhdGUsIHF1YXJ0ZXIpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXREYXkoZGF5OiBudW1iZXIsIG9wdGlvbnM/OiB7IHdlZWtTdGFydHNPbjogV2Vla0RheUluZGV4IH0pOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0RGF5KHRoaXMubmF0aXZlRGF0ZSwgZGF5LCBvcHRpb25zKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0SG91cnMoaG91cnM6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRIb3Vycyh0aGlzLm5hdGl2ZURhdGUsIGhvdXJzKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0TWludXRlcyhtaW51dGVzOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0TWludXRlcyh0aGlzLm5hdGl2ZURhdGUsIG1pbnV0ZXMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXRTZWNvbmRzKHNlY29uZHM6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRTZWNvbmRzKHRoaXMubmF0aXZlRGF0ZSwgc2Vjb25kcyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIC8vIGFkZFxuICAgIGFkZFllYXJzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFllYXJzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkUXVhcnRlcnMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkUXVhcnRlcnModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRNb250aHMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkTW9udGhzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkV2Vla3MoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkV2Vla3ModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGREYXlzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZERheXModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG4gICAgYWRkSG91cnMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkSG91cnModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRTZWNvbmRzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFNlY29uZHModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRNaW51dGVzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZE1pbnV0ZXModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBpc1NhbWVcblxuICAgIGlzU2FtZShkYXRlOiBUaW55RGF0ZVR5cGUsIGdyYWluOiBUaW55RGF0ZUNvbXBhcmVHcmFpbiA9ICdkYXknKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBmbjtcbiAgICAgICAgc3dpdGNoIChncmFpbikge1xuICAgICAgICAgICAgY2FzZSAnZGVjYWRlJzpcbiAgICAgICAgICAgICAgICBmbiA9IChwcmU6IERhdGUsIG5leHQ6IERhdGUpID0+IE1hdGguYWJzKHByZS5nZXRGdWxsWWVhcigpIC0gbmV4dC5nZXRGdWxsWWVhcigpKSA8IDExO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVZZWFyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lTW9udGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZVF1YXJ0ZXI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lRGF5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVIb3VyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZU1pbnV0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVTZWNvbmQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lRGF5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmbih0aGlzLm5hdGl2ZURhdGUsIHRoaXMudG9OYXRpdmVEYXRlKGRhdGUpKTtcbiAgICB9XG5cbiAgICBpc1NhbWVZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ3llYXInKTtcbiAgICB9XG5cbiAgICBpc1NhbWVNb250aChkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdtb250aCcpO1xuICAgIH1cblxuICAgIGlzU2FtZVF1YXJ0ZXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAncXVhcnRlcicpO1xuICAgIH1cblxuICAgIGlzU2FtZURheShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdkYXknKTtcbiAgICB9XG5cbiAgICBpc1NhbWVIb3VyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ2hvdXInKTtcbiAgICB9XG5cbiAgICBpc1NhbWVNaW51dGUoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAnbWludXRlJyk7XG4gICAgfVxuXG4gICAgaXNTYW1lU2Vjb25kKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ3NlY29uZCcpO1xuICAgIH1cblxuICAgIC8vIGlzQmVmb3JlIGFuZCBpc0FmdGVyXG4gICAgaXNCZWZvcmVZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICd5ZWFyJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVRdWFydGVyKGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3F1YXJ0ZXInKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZU1vbnRoKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdtb250aCcpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlV2VlayhkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnd2VlaycpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlRGF5KGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdkYXknKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZUhvdXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ2hvdXInKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZU1pbnV0ZShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbWludXRlJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVTZWNvbmQoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3NlY29uZCcpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICd5ZWFyJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJRdWFydGVyKGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3F1YXJ0ZXInLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlck1vbnRoKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdtb250aCcsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyV2VlayhkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnd2VlaycsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyRGF5KGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdkYXknLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlckhvdXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ2hvdXInLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlck1pbnV0ZShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbWludXRlJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJTZWNvbmQoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3NlY29uZCcsIGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBpc1xuICAgIGlzV2Vla2VuZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzV2Vla2VuZCh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGlzVG9kYXkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1RvZGF5KHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgaXNUb21vcnJvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzVG9tb3Jyb3codGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0T2YgYW5kIGVuZE9mXG4gICAgc3RhcnRPZlllYXIoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZZZWFyKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZRdWFydGVyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mUXVhcnRlcih0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mTW9udGgoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZNb250aCh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mV2VlayhvcHRpb25zPzogeyBsb2NhbGU/OiBMb2NhbGU7IHdlZWtTdGFydHNPbj86IFdlZWtEYXlJbmRleCB9KTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZXZWVrKHRoaXMubmF0aXZlRGF0ZSwgb3B0aW9ucyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZEYXkoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZEYXkodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZZZWFyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZlllYXIodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZRdWFydGVyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZlF1YXJ0ZXIodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZNb250aCgpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZW5kT2ZNb250aCh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBlbmRPZldlZWsob3B0aW9ucz86IHsgbG9jYWxlPzogTG9jYWxlOyB3ZWVrU3RhcnRzT24/OiBXZWVrRGF5SW5kZXggfSk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZldlZWsodGhpcy5uYXRpdmVEYXRlLCBvcHRpb25zKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZEYXkoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGVuZE9mRGF5KHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIC8vIG90aGVyXG4gICAgZm9ybWF0KFxuICAgICAgICBtYXQ6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIGxvY2FsZT86IExvY2FsZTtcbiAgICAgICAgICAgIHdlZWtTdGFydHNPbj86IFdlZWtEYXlJbmRleDtcbiAgICAgICAgICAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZT86IEZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgICAgICAgICAgIHVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2Vucz86IGJvb2xlYW47XG4gICAgICAgICAgICB1c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zPzogYm9vbGVhbjtcbiAgICAgICAgfVxuICAgICkge1xuICAgICAgICByZXR1cm4gZm9ybWF0KHRoaXMubmF0aXZlRGF0ZSwgbWF0LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjYWxlbmRhclN0YXJ0KG9wdGlvbnM/OiB7IHdlZWtTdGFydHNPbjogV2Vla0RheUluZGV4IHwgdW5kZWZpbmVkIH0pOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3RhcnRPZldlZWsoc3RhcnRPZk1vbnRoKHRoaXMubmF0aXZlRGF0ZSksIG9wdGlvbnMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBjbG9uZSgpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUodGhpcy5uYXRpdmVEYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBnZXRVbml4VGltZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0VW5peFRpbWUodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBjb21wYXJlKGRhdGU6IFRpbnlEYXRlVHlwZSwgZ3JhaW46IFRpbnlEYXRlQ29tcGFyZUdyYWluID0gJ2RheScsIGlzQmVmb3JlOiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmbjtcbiAgICAgICAgc3dpdGNoIChncmFpbikge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5XZWVrcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluSG91cnM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluTWludXRlcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5TZWNvbmRzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNCZWZvcmUgPyBmbih0aGlzLm5hdGl2ZURhdGUsIHRoaXMudG9OYXRpdmVEYXRlKGRhdGUpKSA8IDAgOiBmbih0aGlzLm5hdGl2ZURhdGUsIHRoaXMudG9OYXRpdmVEYXRlKGRhdGUpKSA+IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b05hdGl2ZURhdGUoZGF0ZTogYW55KTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBkYXRlIGluc3RhbmNlb2YgVGlueURhdGUgPyBkYXRlLm5hdGl2ZURhdGUgOiBkYXRlO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZJU09XZWVrKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mSVNPV2Vlayh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBlbmRPZklTT1dlZWsoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGVuZE9mSVNPV2Vlayh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBkaWZmZXJlbmNlSW5EYXlzKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluRGF5cyh0aGlzLm5hdGl2ZURhdGUsIGRhdGUpO1xuICAgIH1cblxuICAgIGRpZmZlcmVuY2VJbkhvdXJzKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluSG91cnModGhpcy5uYXRpdmVEYXRlLCBkYXRlKTtcbiAgICB9XG5cbiAgICBzdWJXZWVrcyhhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdWJXZWVrcyh0aGlzLm5hdGl2ZURhdGUsIGFtb3VudCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN1YkRheXMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3ViRGF5cyh0aGlzLm5hdGl2ZURhdGUsIGFtb3VudCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -290,4 +290,16 @@ export function isFloat(value) {
290
290
  }
291
291
  return /^[-+]?([0-9]+([.][0-9]*)?|[.][0-9]+)([Ee][-+]?[0-9]+)?$/.test(value);
292
292
  }
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91dGlsL2hlbHBlcnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNsQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBVTtJQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBVSxLQUFVO0lBQ3ZDLE9BQU8sS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFXO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVc7SUFDaEMsT0FBTyxPQUFPLEtBQUssSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLGlCQUFpQixDQUFDLENBQUM7QUFDM0gsQ0FBQztBQUVELFNB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QUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFNUQsT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBYTtJQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyx5REFBeUQsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9pc051bWJlclZhbHVlLCBjb2VyY2VDc3NQaXhlbFZhbHVlIGFzIGNvZXJjZUNzc1BpeGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZTogYW55KTogdmFsdWUgaXMgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbCh2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVsbCB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRPck51bGwodmFsdWU6IGFueSk6IHZhbHVlIGlzIHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiBpc1VuZGVmaW5lZCh2YWx1ZSkgfHwgaXNOdWxsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXk8VCA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIEFycmF5PFQ+IHtcbiAgICByZXR1cm4gdmFsdWUgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlPzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEoaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZT86IGFueSk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCAoIWlzQXJyYXkodmFsdWUpICYmIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IFN0cmluZ10nKTtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xufVxuXG5mdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG4gICAgY29uc3QgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcbiAgICBjb25zdCB0b1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuICAgIGNvbnN0IHN5bVRvU3RyaW5nVGFnID0gdHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/ICdbb2JqZWN0IFVuZGVmaW5lZF0nIDogJ1tvYmplY3QgTnVsbF0nO1xuICAgIH1cbiAgICBpZiAoIShzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKSkge1xuICAgICAgICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGlzT3duID0gaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWcpO1xuICAgIGNvbnN0IHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICBsZXQgdW5tYXNrZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgICAgIHVubWFza2VkID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgaWYgKHVubWFza2VkKSB7XG4gICAgICAgIGlmIChpc093bikge1xuICAgICAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IE51bWJlcl0nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIC8vIEF2b2lkIGEgVjggSklUIGJ1ZyBpbiBDaHJvbWUgMTktMjAuXG4gICAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMjkxIGZvciBtb3JlIGRldGFpbHMuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEYXRlIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGUgPT09ICdvYmplY3QnICYmICEhdmFsdWUuZ2V0VGltZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUFycmF5PFQ+KHZhbHVlOiBUIHwgVFtdKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQob2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KTogYW55IHtcbiAgICBjb25zdCBwYXRocyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgcmVzdWx0ID0gb2JqZWN0W3BhdGhzLnNoaWZ0KCldO1xuICAgIHdoaWxlIChyZXN1bHQgJiYgcGF0aHMubGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdFtwYXRocy5zaGlmdCgpXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0KG9iamVjdDogYW55LCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG4gICAgY29uc3QgcGF0aHMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGluZGV4ID0gLTE7XG4gICAgY29uc3QgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgIGNvbnN0IGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgbGV0IG5lc3RlZCA9IG9iamVjdDtcbiAgICB3aGlsZSAobmVzdGVkICE9PSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gcGF0aHNbaW5kZXhdO1xuICAgICAgICBpZiAoaXNPYmplY3QobmVzdGVkKSkge1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBuZXN0ZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobmVzdGVkW2tleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBuZXN0ZWRba2V5XSA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgQm9vbGVhbl0nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2xhc3ModmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbih2YWx1ZSkgJiYgL15cXHMqY2xhc3NcXHMrLy50ZXN0KHZhbHVlLnRvU3RyaW5nKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbEVsZW1lbnRJc0VtcHR5KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5jaGlsZE5vZGVzKSB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gZWxlbWVudC5jaGlsZE5vZGVzO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgKG5vZGUgYXMgSFRNTEVsZW1lbnQpLm91dGVySFRNTC50b1N0cmluZygpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFICYmIG5vZGUudGV4dENvbnRlbnQudG9TdHJpbmcoKS50cmltKCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlICE9PSBOb2RlLkNPTU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhleFRvUmdiKGhleFZhbHVlOiBzdHJpbmcsIGFscGhhPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCByZ3ggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xuICAgIGNvbnN0IGhleCA9IGhleFZhbHVlLnJlcGxhY2Uocmd4LCAobTogYW55LCByOiBhbnksIGc6IGFueSwgYjogYW55KSA9PiByICsgciArIGcgKyBnICsgYiArIGIpO1xuICAgIGNvbnN0IHJnYiA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXgpO1xuICAgIGlmICghcmdiKSByZXR1cm47XG4gICAgY29uc3QgcmVzdWx0UiA9IHBhcnNlSW50KHJnYlsxXSwgMTYpO1xuICAgIGNvbnN0IHJlc3VsdEcgPSBwYXJzZUludChyZ2JbMl0sIDE2KTtcbiAgICBjb25zdCByZXN1bHRCID0gcGFyc2VJbnQocmdiWzNdLCAxNik7XG4gICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhbHBoYSkpIHtcbiAgICAgICAgcmV0dXJuIGByZ2JhKCR7cmVzdWx0Un0sICR7cmVzdWx0R30sICR7cmVzdWx0Qn0sICR7YWxwaGF9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGByZ2IoJHtyZXN1bHRSfSwgJHtyZXN1bHRHfSwgJHtyZXN1bHRCfSlgO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb1VuaXhUaW1lc3RhbXAoZGF0ZTogRGF0ZSB8IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGlzTnVtYmVyKGRhdGUpKSB7XG4gICAgICAgIGlmIChkYXRlLnRvU3RyaW5nKCkubGVuZ3RoID09PSAxMCkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUgYXMgbnVtYmVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KCgoZGF0ZSBhcyBudW1iZXIpIC8gMTAwMCkudG9GaXhlZCgwKSwgMTApO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KCgoZGF0ZSBhcyBEYXRlKS5nZXRUaW1lKCkgLyAxMDAwKS50b0ZpeGVkKDApLCAxMCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAodmFsdWU6IG51bWJlciwgbWluID0gMCwgbWF4ID0gMTAwKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbiwgTWF0aC5taW4obWF4LCB2YWx1ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2V5Qnk8VD4oYXJyYXk6IFRbXSwga2V5OiBUIGV4dGVuZHMgb2JqZWN0ID8ga2V5b2YgVCA6IG5ldmVyKTogeyBba2V5OiBzdHJpbmddOiBUIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBUIH0gPSB7fTtcbiAgICBhcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBrZXlWYWx1ZSA9IGl0ZW1ba2V5XTtcbiAgICAgICAgKHJlc3VsdCBhcyBhbnkpW2tleVZhbHVlXSA9IGl0ZW07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZGV4S2V5Qnk8VD4oYXJyYXk6IFRbXSwga2V5OiBUIGV4dGVuZHMgb2JqZWN0ID8ga2V5b2YgVCA6IG5ldmVyKTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gICAgYXJyYXkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qga2V5VmFsdWUgPSBpdGVtW2tleV07XG4gICAgICAgIChyZXN1bHQgYXMgYW55KVtrZXlWYWx1ZV0gPSBpbmRleDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB1cHBlckZpcnN0KHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyaW5nLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbENhc2UodmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKGlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICByZXR1cm4gdmFsdWVzLnJlZHVjZSgocmVzdWx0LCB3b3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgd29yZCA9IHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyB1cHBlckZpcnN0KHdvcmQpIDogd29yZCk7XG4gICAgICAgIH0sICcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSYW5kb21TdHIoKSB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVSZWY8QyA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPEM+IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQodmFsdWU6IGFueSk6IHZhbHVlIGlzIEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudFJlZih2YWx1ZTogYW55KTogdmFsdWUgaXMgRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudFJlZjtcbn1cblxuLyoqXG4gKiBmaXggYW5ndWxhciBjZGsncyBjb2VyY2VCb29sZWFuUHJvcGVydHkgd2lsbCB0cmFuc2Zvcm0gMCB0byB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgPT09ICcnIHx8ICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJ2ZhbHNlJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRnVuY3Rpb25Qcm9wPFQ+ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VOdW1iZXJWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIEFuZ3VsYXIgY2RrJ3MgY29lcmNlTnVtYmVyUHJvcGVydHkgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlTnVtYmVyVmFsdWU8RD4odmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2s6IEQpOiBudW1iZXIgfCBEO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIEFuZ3VsYXIgY2RrJ3MgY29lcmNlTnVtYmVyUHJvcGVydHkgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlTnVtYmVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2tWYWx1ZTogbnVtYmVyID0gMCk6IG51bWJlciB7XG4gICAgcmV0dXJuIF9pc051bWJlclZhbHVlKHZhbHVlKSA/IE51bWJlcih2YWx1ZSkgOiBmYWxsYmFja1ZhbHVlO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VDc3NQaXhlbFZhbHVlIGluc3RlYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFsdWUgPSBfaXNOdW1iZXJWYWx1ZSh2YWx1ZSkgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gICAgcmV0dXJuIGNvZXJjZUNzc1BpeGVsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnVuY3Rpb25Qcm9wPFQ+KHByb3A6IEZ1bmN0aW9uUHJvcDxUPiwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICByZXR1cm4gdHlwZW9mIHByb3AgPT09ICdmdW5jdGlvbicgPyBwcm9wKC4uLmFyZ3MpIDogcHJvcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBPzogUmVjb3JkPHN0cmluZywgYW55Piwgb2JqQj86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAob2JqQSA9PT0gb2JqQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8ICFvYmpBIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCAhb2JqQikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBiSGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmJpbmQob2JqQik7XG5cbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBrZXlzQS5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNBW2lkeF07XG4gICAgICAgIGlmICghYkhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqQVtrZXldICE9PSBvYmpCW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0QXJyYXk8VEl0ZW0+KGl0ZW1zOiBUSXRlbSB8IFRJdGVtW10sIG9yaWdpbmFsSXRlbXM6IFRJdGVtIHwgVEl0ZW1bXSA9IFtdKTogVEl0ZW1bXSB7XG4gICAgbGV0IF9vcmlnaW5hbEl0ZW1zOiBUSXRlbVtdID0gW107XG4gICAgaWYgKCFvcmlnaW5hbEl0ZW1zKSB7XG4gICAgICAgIF9vcmlnaW5hbEl0ZW1zID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX29yaWdpbmFsSXRlbXMgPSBjb2VyY2VBcnJheShvcmlnaW5hbEl0ZW1zKTtcbiAgICB9XG4gICAgaWYgKGl0ZW1zKSB7XG4gICAgICAgIGlmIChpc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5fb3JpZ2luYWxJdGVtcywgLi4uaXRlbXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5fb3JpZ2luYWxJdGVtcywgaXRlbXNdO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIF9vcmlnaW5hbEl0ZW1zO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh1bWFuaXplQnl0ZXMoYnl0ZXM6IG51bWJlciwgbm9TcGFjZSA9IGZhbHNlLCBmcmFjdGlvbkRpZ2l0cyA9IDEpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJzAgQnl0ZSc7XG4gICAgfVxuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXM6IHN0cmluZ1tdID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQiddO1xuICAgIGNvbnN0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZnJhY3Rpb25EaWdpdHMpKSArIChub1NwYWNlID8gJycgOiAnICcpICsgc2l6ZXNbaV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zsb2F0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gL15bLStdPyhbMC05XSsoWy5dWzAtOV0qKT98Wy5dWzAtOV0rKShbRWVdWy0rXT9bMC05XSspPyQvLnRlc3QodmFsdWUpO1xufVxuIl19
293
+ export function hasTimeInStringDate(dateString) {
294
+ const standardFormat = /\d{4}[-/]\d{1,2}[-/]\d{1,2}\s+\d{1,2}:\d{1,2}/;
295
+ const chineseFormat = /\d{4}年\d{1,2}月\d{1,2}日?\s+\d{1,2}[时:]\d{1,2}[分]?/;
296
+ const reverseEnglishFormat = /\d{1,2}\s+[A-Za-z]{3,}\s+\d{4}\s+\d{1,2}:\d{1,2}/;
297
+ const englishFormat = /[A-Za-z]{3,}\s+\d{1,2},?\s+\d{4}\s+\d{1,2}:\d{1,2}/;
298
+ const isoFormat = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/;
299
+ return (standardFormat.test(dateString) ||
300
+ chineseFormat.test(dateString) ||
301
+ reverseEnglishFormat.test(dateString) ||
302
+ englishFormat.test(dateString) ||
303
+ isoFormat.test(dateString));
304
+ }
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91dGlsL2hlbHBlcnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNsQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBVTtJQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBVSxLQUFVO0lBQ3ZDLE9BQU8sS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFXO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVc7SUFDaEMsT0FBTyxPQUFPLEtBQUssSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLGlCQUFpQixDQUFDLENBQUM7QUFDM0gsQ0FBQztBQUVELFNB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QUMsVUFBVSxDQUFDLENBQzdCLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX2lzTnVtYmVyVmFsdWUsIGNvZXJjZUNzc1BpeGVsVmFsdWUgYXMgY29lcmNlQ3NzUGl4ZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyB1bmRlZmluZWQge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudWxsIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZTogYW55KTogdmFsdWUgaXMgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIGlzVW5kZWZpbmVkKHZhbHVlKSB8fCBpc051bGwodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheTxUID0gYW55Pih2YWx1ZTogYW55KTogdmFsdWUgaXMgQXJyYXk8VD4ge1xuICAgIHJldHVybiB2YWx1ZSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWU/OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIShpc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlPzogYW55KTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8ICghaXNBcnJheSh2YWx1ZSkgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgU3RyaW5nXScpO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWU6IGFueSk6IHZhbHVlIGlzIG9iamVjdCB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XG59XG5cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcbiAgICBjb25zdCBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuICAgIGNvbnN0IHRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG4gICAgY29uc3Qgc3ltVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJ1tvYmplY3QgVW5kZWZpbmVkXScgOiAnW29iamVjdCBOdWxsXSc7XG4gICAgfVxuICAgIGlmICghKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiB0b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyk7XG4gICAgY29uc3QgdGFnID0gdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIGxldCB1bm1hc2tlZCA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdW5tYXNrZWQgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICBpZiAodW5tYXNrZWQpIHtcbiAgICAgICAgaWYgKGlzT3duKSB7XG4gICAgICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgTnVtYmVyXScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IHZhbHVlIGlzIG9iamVjdCB7XG4gICAgLy8gQXZvaWQgYSBWOCBKSVQgYnVnIGluIENocm9tZSAxOS0yMC5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTIyOTEgZm9yIG1vcmUgZGV0YWlscy5cbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09PSAnb2JqZWN0JyB8fCB0eXBlID09PSAnZnVuY3Rpb24nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmN0aW9uIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGUgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZSA9PT0gJ29iamVjdCcgJiYgISF2YWx1ZS5nZXRUaW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlQXJyYXk8VD4odmFsdWU6IFQgfCBUW10pOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldChvYmplY3Q6IGFueSwgcGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHBhdGhzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCByZXN1bHQgPSBvYmplY3RbcGF0aHMuc2hpZnQoKV07XG4gICAgd2hpbGUgKHJlc3VsdCAmJiBwYXRocy5sZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0W3BhdGhzLnNoaWZ0KCldO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBkZWZhdWx0VmFsdWUgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQob2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgICBjb25zdCBwYXRocyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgaW5kZXggPSAtMTtcbiAgICBjb25zdCBsZW5ndGggPSBwYXRocy5sZW5ndGg7XG4gICAgY29uc3QgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICBsZXQgbmVzdGVkID0gb2JqZWN0O1xuICAgIHdoaWxlIChuZXN0ZWQgIT09IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBjb25zdCBrZXkgPSBwYXRoc1tpbmRleF07XG4gICAgICAgIGlmIChpc09iamVjdChuZXN0ZWQpKSB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgICAgIG5lc3RlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgbmVzdGVkID0gbmVzdGVkW2tleV07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChuZXN0ZWRba2V5XSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG5lc3RlZFtrZXldID0ge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlIHx8IChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09PSAnW29iamVjdCBCb29sZWFuXScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDbGFzcyh2YWx1ZTogYW55KTogdmFsdWUgaXMgRnVuY3Rpb24ge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHZhbHVlKSAmJiAvXlxccypjbGFzc1xccysvLnRlc3QodmFsdWUudG9TdHJpbmcoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodG1sRWxlbWVudElzRW1wdHkoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNoaWxkTm9kZXMpIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBlbGVtZW50LmNoaWxkTm9kZXM7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAobm9kZSBhcyBIVE1MRWxlbWVudCkub3V0ZXJIVE1MLnRvU3RyaW5nKCkudHJpbSgpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUgJiYgbm9kZS50ZXh0Q29udGVudC50b1N0cmluZygpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUubm9kZVR5cGUgIT09IE5vZGUuQ09NTUVOVF9OT0RFKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4VG9SZ2IoaGV4VmFsdWU6IHN0cmluZywgYWxwaGE/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJneCA9IC9eIz8oW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkkL2k7XG4gICAgY29uc3QgaGV4ID0gaGV4VmFsdWUucmVwbGFjZShyZ3gsIChtOiBhbnksIHI6IGFueSwgZzogYW55LCBiOiBhbnkpID0+IHIgKyByICsgZyArIGcgKyBiICsgYik7XG4gICAgY29uc3QgcmdiID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG4gICAgaWYgKCFyZ2IpIHJldHVybjtcbiAgICBjb25zdCByZXN1bHRSID0gcGFyc2VJbnQocmdiWzFdLCAxNik7XG4gICAgY29uc3QgcmVzdWx0RyA9IHBhcnNlSW50KHJnYlsyXSwgMTYpO1xuICAgIGNvbnN0IHJlc3VsdEIgPSBwYXJzZUludChyZ2JbM10sIDE2KTtcbiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFscGhhKSkge1xuICAgICAgICByZXR1cm4gYHJnYmEoJHtyZXN1bHRSfSwgJHtyZXN1bHRHfSwgJHtyZXN1bHRCfSwgJHthbHBoYX0pYDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYHJnYigke3Jlc3VsdFJ9LCAke3Jlc3VsdEd9LCAke3Jlc3VsdEJ9KWA7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRvVW5peFRpbWVzdGFtcChkYXRlOiBEYXRlIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoaXNOdW1iZXIoZGF0ZSkpIHtcbiAgICAgICAgaWYgKGRhdGUudG9TdHJpbmcoKS5sZW5ndGggPT09IDEwKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZSBhcyBudW1iZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoKChkYXRlIGFzIG51bWJlcikgLyAxMDAwKS50b0ZpeGVkKDApLCAxMCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoKChkYXRlIGFzIERhdGUpLmdldFRpbWUoKSAvIDEwMDApLnRvRml4ZWQoMCksIDEwKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGFtcCh2YWx1ZTogbnVtYmVyLCBtaW4gPSAwLCBtYXggPSAxMDApIHtcbiAgICByZXR1cm4gTWF0aC5tYXgobWluLCBNYXRoLm1pbihtYXgsIHZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXlCeTxUPihhcnJheTogVFtdLCBrZXk6IFQgZXh0ZW5kcyBvYmplY3QgPyBrZXlvZiBUIDogbmV2ZXIpOiB7IFtrZXk6IHN0cmluZ106IFQgfSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IFQgfSA9IHt9O1xuICAgIGFycmF5LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGtleVZhbHVlID0gaXRlbVtrZXldO1xuICAgICAgICAocmVzdWx0IGFzIGFueSlba2V5VmFsdWVdID0gaXRlbTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhLZXlCeTxUPihhcnJheTogVFtdLCBrZXk6IFQgZXh0ZW5kcyBvYmplY3QgPyBrZXlvZiBUIDogbmV2ZXIpOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICBhcnJheS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBrZXlWYWx1ZSA9IGl0ZW1ba2V5XTtcbiAgICAgICAgKHJlc3VsdCBhcyBhbnkpW2tleVZhbHVlXSA9IGluZGV4O1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHVwcGVyRmlyc3Qoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHJpbmcuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZSh2YWx1ZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBpZiAoaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMucmVkdWNlKChyZXN1bHQsIHdvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB3b3JkID0gd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/IHVwcGVyRmlyc3Qod29yZCkgOiB3b3JkKTtcbiAgICAgICAgfSwgJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbVN0cigpIHtcbiAgICByZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZW1wbGF0ZVJlZjxDID0gYW55Pih2YWx1ZTogYW55KTogdmFsdWUgaXMgVGVtcGxhdGVSZWY8Qz4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIVE1MRWxlbWVudCh2YWx1ZTogYW55KTogdmFsdWUgaXMgSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50UmVmKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBFbGVtZW50UmVmIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50UmVmO1xufVxuXG4vKipcbiAqIGZpeCBhbmd1bGFyIGNkaydzIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB3aWxsIHRyYW5zZm9ybSAwIHRvIHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgKHZhbHVlICYmIHZhbHVlICE9PSAnZmFsc2UnKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBGdW5jdGlvblByb3A8VD4gPSAoLi4uYXJnczogYW55W10pID0+IFQ7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBBbmd1bGFyIGNkaydzIGNvZXJjZU51bWJlclByb3BlcnR5IGluc3RlYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZU51bWJlclZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiBudW1iZXI7XG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VOdW1iZXJWYWx1ZTxEPih2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmYWxsYmFjazogRCk6IG51bWJlciB8IEQ7XG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VOdW1iZXJWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmYWxsYmFja1ZhbHVlOiBudW1iZXIgPSAwKTogbnVtYmVyIHtcbiAgICByZXR1cm4gX2lzTnVtYmVyVmFsdWUodmFsdWUpID8gTnVtYmVyKHZhbHVlKSA6IGZhbGxiYWNrVmFsdWU7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBBbmd1bGFyIGNkaydzIGNvZXJjZUNzc1BpeGVsVmFsdWUgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YWx1ZSA9IF9pc051bWJlclZhbHVlKHZhbHVlKSA/IE51bWJlcih2YWx1ZSkgOiB2YWx1ZTtcbiAgICByZXR1cm4gY29lcmNlQ3NzUGl4ZWwodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVGdW5jdGlvblByb3A8VD4ocHJvcDogRnVuY3Rpb25Qcm9wPFQ+LCAuLi5hcmdzOiBhbnlbXSk6IFQge1xuICAgIHJldHVybiB0eXBlb2YgcHJvcCA9PT0gJ2Z1bmN0aW9uJyA/IHByb3AoLi4uYXJncykgOiBwcm9wO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhbGxvd0VxdWFsKG9iakE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvYmpCPzogUmVjb3JkPHN0cmluZywgYW55Pik6IGJvb2xlYW4ge1xuICAgIGlmIChvYmpBID09PSBvYmpCKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb2JqQSAhPT0gJ29iamVjdCcgfHwgIW9iakEgfHwgdHlwZW9mIG9iakIgIT09ICdvYmplY3QnIHx8ICFvYmpCKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpO1xuICAgIGNvbnN0IGtleXNCID0gT2JqZWN0LmtleXMob2JqQik7XG5cbiAgICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGJIYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuYmluZChvYmpCKTtcblxuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGtleXNBLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5c0FbaWR4XTtcbiAgICAgICAgaWYgKCFiSGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvYmpBW2tleV0gIT09IG9iakJba2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRBcnJheTxUSXRlbT4oaXRlbXM6IFRJdGVtIHwgVEl0ZW1bXSwgb3JpZ2luYWxJdGVtczogVEl0ZW0gfCBUSXRlbVtdID0gW10pOiBUSXRlbVtdIHtcbiAgICBsZXQgX29yaWdpbmFsSXRlbXM6IFRJdGVtW10gPSBbXTtcbiAgICBpZiAoIW9yaWdpbmFsSXRlbXMpIHtcbiAgICAgICAgX29yaWdpbmFsSXRlbXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBfb3JpZ2luYWxJdGVtcyA9IGNvZXJjZUFycmF5KG9yaWdpbmFsSXRlbXMpO1xuICAgIH1cbiAgICBpZiAoaXRlbXMpIHtcbiAgICAgICAgaWYgKGlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLl9vcmlnaW5hbEl0ZW1zLCAuLi5pdGVtc107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLl9vcmlnaW5hbEl0ZW1zLCBpdGVtc107XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gX29yaWdpbmFsSXRlbXM7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5pemVCeXRlcyhieXRlczogbnVtYmVyLCBub1NwYWNlID0gZmFsc2UsIGZyYWN0aW9uRGlnaXRzID0gMSk6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICAgIHJldHVybiAnMCBCeXRlJztcbiAgICB9XG5cbiAgICBjb25zdCBrID0gMTAyNDtcbiAgICBjb25zdCBzaXplczogc3RyaW5nW10gPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJ107XG4gICAgY29uc3QgaTogbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG5cbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChmcmFjdGlvbkRpZ2l0cykpICsgKG5vU3BhY2UgPyAnJyA6ICcgJykgKyBzaXplc1tpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmxvYXQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAvXlstK10/KFswLTldKyhbLl1bMC05XSopP3xbLl1bMC05XSspKFtFZV1bLStdP1swLTldKyk/JC8udGVzdCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNUaW1lSW5TdHJpbmdEYXRlKGRhdGVTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHN0YW5kYXJkRm9ybWF0ID0gL1xcZHs0fVstL11cXGR7MSwyfVstL11cXGR7MSwyfVxccytcXGR7MSwyfTpcXGR7MSwyfS87XG4gICAgY29uc3QgY2hpbmVzZUZvcm1hdCA9IC9cXGR7NH3lubRcXGR7MSwyfeaciFxcZHsxLDJ95pelP1xccytcXGR7MSwyfVvml7Y6XVxcZHsxLDJ9W+WIhl0/LztcbiAgICBjb25zdCByZXZlcnNlRW5nbGlzaEZvcm1hdCA9IC9cXGR7MSwyfVxccytbQS1aYS16XXszLH1cXHMrXFxkezR9XFxzK1xcZHsxLDJ9OlxcZHsxLDJ9LztcbiAgICBjb25zdCBlbmdsaXNoRm9ybWF0ID0gL1tBLVphLXpdezMsfVxccytcXGR7MSwyfSw/XFxzK1xcZHs0fVxccytcXGR7MSwyfTpcXGR7MSwyfS87XG4gICAgY29uc3QgaXNvRm9ybWF0ID0gL1xcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn0vO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgc3RhbmRhcmRGb3JtYXQudGVzdChkYXRlU3RyaW5nKSB8fFxuICAgICAgICBjaGluZXNlRm9ybWF0LnRlc3QoZGF0ZVN0cmluZykgfHxcbiAgICAgICAgcmV2ZXJzZUVuZ2xpc2hGb3JtYXQudGVzdChkYXRlU3RyaW5nKSB8fFxuICAgICAgICBlbmdsaXNoRm9ybWF0LnRlc3QoZGF0ZVN0cmluZykgfHxcbiAgICAgICAgaXNvRm9ybWF0LnRlc3QoZGF0ZVN0cmluZylcbiAgICApO1xufVxuIl19
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('18.2.10');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4yLjEwJyk7XG4iXX0=
2
+ export const VERSION = new Version('18.2.13');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4yLjEzJyk7XG4iXX0=
@@ -1291,7 +1291,7 @@ class ThyCascader extends TabIndexDisabledControlValueAccessorMixin {
1291
1291
  this.ngZone.runOutsideAngular(() => {
1292
1292
  this.resizeSubscription = new Observable(observer => {
1293
1293
  const resize = new ResizeObserver((entries) => {
1294
- observer.next();
1294
+ observer.next(entries);
1295
1295
  });
1296
1296
  resize.observe(this.trigger.nativeElement);
1297
1297
  }).subscribe(() => {