@sbb-esta/lyne-elements-experimental-dev 4.13.0-dev.1778593687 → 4.13.0-dev.1778809060
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-cell.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-row.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid.js +1 -1
- package/development/autocomplete-grid-cell.component-BxkWGaX0.js +1 -1
- package/development/autocomplete-grid-option.component-5mPGswUO.js +1 -1
- package/development/autocomplete-grid-row.component-DEm6zyHZ.js +1 -1
- package/development/autocomplete-grid.js +1 -1
- package/development/core/timetable/access-leg-helper.js +1 -1
- package/development/core/timetable/timetable-helper.js +1 -1
- package/development/date-helper-qNdwgC9O.js +1 -1
- package/development/differenceInMinutes-B7_GTDq7.js +1 -1
- package/development/format-DFx4997p.js +1 -1
- package/development/isValid-JpZ7FphI.js +1 -1
- package/development/journey-summary.component-BZwgD4im.js +1 -1
- package/development/journey-summary.js +1 -1
- package/development/mapper-hWWm7Uke.js +1 -1
- package/development/pearl-chain-time.component-B2_BI6E_.js +1 -1
- package/development/pearl-chain-time.js +1 -1
- package/development/pearl-chain-vertical-item.component-D4clzjjQ.js +1 -1
- package/development/pearl-chain-vertical-item.js +1 -1
- package/development/pearl-chain-vertical.component-CpcNFl-x.js +1 -1
- package/development/pearl-chain-vertical.js +1 -1
- package/development/pearl-chain.component-oQZUzsyW.js +1 -1
- package/development/pearl-chain.js +1 -1
- package/development/seat-reservation/common/mapper/icon-mapper.js +1 -1
- package/development/seat-reservation/common/translations/i18n.js +1 -1
- package/development/seat-reservation/common.js +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1 -1
- package/development/seat-reservation/seat-reservation-area.js +1 -1
- package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
- package/development/seat-reservation/seat-reservation-graphic.js +1 -1
- package/development/seat-reservation/seat-reservation-navigation-coach.js +1 -1
- package/development/seat-reservation/seat-reservation-navigation-services.js +1 -1
- package/development/seat-reservation/seat-reservation-place-control.js +1 -1
- package/development/seat-reservation/seat-reservation-scoped.js +1 -1
- package/development/seat-reservation/seat-reservation.js +1 -1
- package/development/seat-reservation-area.component-BWdrKqek.js +1 -1
- package/development/seat-reservation-graphic.component-CN5sWn0I.js +1 -1
- package/development/seat-reservation-navigation-coach.component-tDZkXl-3.js +1 -1
- package/development/seat-reservation-navigation-services.component-CGel7__P.js +1 -1
- package/development/seat-reservation-place-control.component-CM9efId7.js +1 -1
- package/development/seat-reservation-scoped.component-CFA_bJ3o.js +1 -1
- package/development/seat-reservation.component-44IHFFlM.js +1 -1
- package/development/seat-reservation.js +1 -1
- package/development/svgs-kDpBCto5.js +1 -1
- package/development/timetable-duration.component-BhFlqYbV.js +1 -1
- package/development/timetable-duration.js +1 -1
- package/development/timetable-row.component-Dko8laRT.js +1 -1
- package/development/timetable-row.js +1 -1
- package/development/toDate-DOFAOjP-.js +1 -1
- package/package.json +2 -2
|
@@ -517,4 +517,4 @@ var durationToTime = (duration, currentLanguage) => {
|
|
|
517
517
|
//#endregion
|
|
518
518
|
export { removeTimezoneFromISOTimeString as n, durationToTime as t };
|
|
519
519
|
|
|
520
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXItcU5kd2dDOU8uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZERheXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkTWlsbGlzZWNvbmRzLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZEhvdXJzLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbkRheXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluSG91cnMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViRGF5cy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZUlTTy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdWJIb3Vycy5qcyIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvY29yZS9kYXRldGltZS9kYXRlLWhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGREYXlzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkRGF5c1xuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgZGF5cyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBkYXlzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGRheXMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgZGF5cyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMTAgZGF5cyB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gYWRkRGF5cyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgMTApXG4gKiAvLz0+IFRodSBTZXAgMTEgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkRGF5cyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBpZiAoaXNOYU4oYW1vdW50KSkgcmV0dXJuIGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgZGF0ZSwgTmFOKTtcblxuICAvLyBJZiAwIGRheXMsIG5vLW9wIHRvIGF2b2lkIGNoYW5naW5nIHRpbWVzIGluIHRoZSBob3VyIGJlZm9yZSBlbmQgb2YgRFNUXG4gIGlmICghYW1vdW50KSByZXR1cm4gX2RhdGU7XG5cbiAgX2RhdGUuc2V0RGF0ZShfZGF0ZS5nZXREYXRlKCkgKyBhbW91bnQpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkRGF5cztcbiIsImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZE1pbGxpc2Vjb25kc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZE1pbGxpc2Vjb25kc1xuICogQGNhdGVnb3J5IE1pbGxpc2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0XG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbGxpc2Vjb25kcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNzUwIG1pbGxpc2Vjb25kcyB0byAxMCBKdWx5IDIwMTQgMTI6NDU6MzAuMDAwOlxuICogY29uc3QgcmVzdWx0ID0gYWRkTWlsbGlzZWNvbmRzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgNDUsIDMwLCAwKSwgNzUwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6NDU6MzAuNzUwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRNaWxsaXNlY29uZHMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsICt0b0RhdGUoZGF0ZSkgKyBhbW91bnQpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZE1pbGxpc2Vjb25kcztcbiIsImltcG9ydCB7IGFkZE1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL2FkZE1pbGxpc2Vjb25kcy5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5Ib3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGRIb3Vyc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZEhvdXJzXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgaG91cnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgaG91cnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgaG91cnMgdG8gYmUgYWRkZWRcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBob3VycyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMiBob3VycyB0byAxMCBKdWx5IDIwMTQgMjM6MDA6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRIb3VycyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMjMsIDApLCAyKVxuICogLy89PiBGcmkgSnVsIDExIDIwMTQgMDE6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEhvdXJzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkTWlsbGlzZWNvbmRzKGRhdGUsIGFtb3VudCAqIG1pbGxpc2Vjb25kc0luSG91ciwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkSG91cnM7XG4iLCJpbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkRheXNcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgZnVsbCBkYXlzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgZnVsbCBkYXkgcGVyaW9kcyBiZXR3ZWVuIHR3byBkYXRlcy4gRnJhY3Rpb25hbCBkYXlzIGFyZVxuICogdHJ1bmNhdGVkIHRvd2FyZHMgemVyby5cbiAqXG4gKiBPbmUgXCJmdWxsIGRheVwiIGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIGEgbG9jYWwgdGltZSBpbiBvbmUgZGF5IHRvIHRoZSBzYW1lXG4gKiBsb2NhbCB0aW1lIG9uIHRoZSBuZXh0IG9yIHByZXZpb3VzIGRheS4gQSBmdWxsIGRheSBjYW4gc29tZXRpbWVzIGJlIGxlc3MgdGhhblxuICogb3IgbW9yZSB0aGFuIDI0IGhvdXJzIGlmIGEgZGF5bGlnaHQgc2F2aW5ncyBjaGFuZ2UgaGFwcGVucyBiZXR3ZWVuIHR3byBkYXRlcy5cbiAqXG4gKiBUbyBpZ25vcmUgRFNUIGFuZCBvbmx5IG1lYXN1cmUgZXhhY3QgMjQtaG91ciBwZXJpb2RzLCB1c2UgdGhpcyBpbnN0ZWFkOlxuICogYE1hdGgudHJ1bmMoZGlmZmVyZW5jZUluSG91cnMoZGF0ZUxlZnQsIGRhdGVSaWdodCkvMjQpfDBgLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBmdWxsIGRheXMgYWNjb3JkaW5nIHRvIHRoZSBsb2NhbCB0aW1lem9uZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBmdWxsIGRheXMgYXJlIGJldHdlZW5cbiAqIC8vIDIgSnVseSAyMDExIDIzOjAwOjAwIGFuZCAyIEp1bHkgMjAxMiAwMDowMDowMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkRheXMoXG4gKiAgIG5ldyBEYXRlKDIwMTIsIDYsIDIsIDAsIDApLFxuICogICBuZXcgRGF0ZSgyMDExLCA2LCAyLCAyMywgMClcbiAqIClcbiAqIC8vPT4gMzY1XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGZ1bGwgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6NTk6MDAgYW5kIDMgSnVseSAyMDExIDAwOjAxOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluRGF5cyhcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMywgMCwgMSksXG4gKiAgIG5ldyBEYXRlKDIwMTEsIDYsIDIsIDIzLCA1OSlcbiAqIClcbiAqIC8vPT4gMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBmdWxsIGRheXMgYXJlIGJldHdlZW5cbiAqIC8vIDEgTWFyY2ggMjAyMCAwOjAwIGFuZCAxIEp1bmUgMjAyMCAwOjAwID9cbiAqIC8vIE5vdGU6IGJlY2F1c2UgbG9jYWwgdGltZSBpcyB1c2VkLCB0aGVcbiAqIC8vIHJlc3VsdCB3aWxsIGFsd2F5cyBiZSA5MiBkYXlzLCBldmVuIGluXG4gKiAvLyB0aW1lIHpvbmVzIHdoZXJlIERTVCBzdGFydHMgYW5kIHRoZVxuICogLy8gcGVyaW9kIGhhcyBvbmx5IDkyKjI0LTEgaG91cnMuXG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5EYXlzKFxuICogICBuZXcgRGF0ZSgyMDIwLCA1LCAxKSxcbiAqICAgbmV3IERhdGUoMjAyMCwgMiwgMSlcbiAqIClcbiAqIC8vPT4gOTJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkRheXMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcblxuICBjb25zdCBzaWduID0gY29tcGFyZUxvY2FsQXNjKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7XG4gIGNvbnN0IGRpZmZlcmVuY2UgPSBNYXRoLmFicyhcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKSxcbiAgKTtcblxuICBsYXRlckRhdGVfLnNldERhdGUobGF0ZXJEYXRlXy5nZXREYXRlKCkgLSBzaWduICogZGlmZmVyZW5jZSk7XG5cbiAgLy8gTWF0aC5hYnMoZGlmZiBpbiBmdWxsIGRheXMgLSBkaWZmIGluIGNhbGVuZGFyIGRheXMpID09PSAxIGlmIGxhc3QgY2FsZW5kYXIgZGF5IGlzIG5vdCBmdWxsXG4gIC8vIElmIHNvLCByZXN1bHQgbXVzdCBiZSBkZWNyZWFzZWQgYnkgMSBpbiBhYnNvbHV0ZSB2YWx1ZVxuICBjb25zdCBpc0xhc3REYXlOb3RGdWxsID0gTnVtYmVyKFxuICAgIGNvbXBhcmVMb2NhbEFzYyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pID09PSAtc2lnbixcbiAgKTtcblxuICBjb25zdCByZXN1bHQgPSBzaWduICogKGRpZmZlcmVuY2UgLSBpc0xhc3REYXlOb3RGdWxsKTtcbiAgLy8gUHJldmVudCBuZWdhdGl2ZSB6ZXJvXG4gIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xufVxuXG4vLyBMaWtlIGBjb21wYXJlQXNjYCBidXQgdXNlcyBsb2NhbCB0aW1lIG5vdCBVVEMsIHdoaWNoIGlzIG5lZWRlZFxuLy8gZm9yIGFjY3VyYXRlIGVxdWFsaXR5IGNvbXBhcmlzb25zIG9mIFVUQyB0aW1lc3RhbXBzIHRoYXQgZW5kIHVwXG4vLyBoYXZpbmcgdGhlIHNhbWUgcmVwcmVzZW50YXRpb24gaW4gbG9jYWwgdGltZSwgZS5nLiBvbmUgaG91ciBiZWZvcmVcbi8vIERTVCBlbmRzIHZzLiB0aGUgaW5zdGFudCB0aGF0IERTVCBlbmRzLlxuZnVuY3Rpb24gY29tcGFyZUxvY2FsQXNjKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpIHtcbiAgY29uc3QgZGlmZiA9XG4gICAgbGF0ZXJEYXRlLmdldEZ1bGxZZWFyKCkgLSBlYXJsaWVyRGF0ZS5nZXRGdWxsWWVhcigpIHx8XG4gICAgbGF0ZXJEYXRlLmdldE1vbnRoKCkgLSBlYXJsaWVyRGF0ZS5nZXRNb250aCgpIHx8XG4gICAgbGF0ZXJEYXRlLmdldERhdGUoKSAtIGVhcmxpZXJEYXRlLmdldERhdGUoKSB8fFxuICAgIGxhdGVyRGF0ZS5nZXRIb3VycygpIC0gZWFybGllckRhdGUuZ2V0SG91cnMoKSB8fFxuICAgIGxhdGVyRGF0ZS5nZXRNaW51dGVzKCkgLSBlYXJsaWVyRGF0ZS5nZXRNaW51dGVzKCkgfHxcbiAgICBsYXRlckRhdGUuZ2V0U2Vjb25kcygpIC0gZWFybGllckRhdGUuZ2V0U2Vjb25kcygpIHx8XG4gICAgbGF0ZXJEYXRlLmdldE1pbGxpc2Vjb25kcygpIC0gZWFybGllckRhdGUuZ2V0TWlsbGlzZWNvbmRzKCk7XG5cbiAgaWYgKGRpZmYgPCAwKSByZXR1cm4gLTE7XG4gIGlmIChkaWZmID4gMCkgcmV0dXJuIDE7XG5cbiAgLy8gUmV0dXJuIDAgaWYgZGlmZiBpcyAwOyByZXR1cm4gTmFOIGlmIGRpZmYgaXMgTmFOXG4gIHJldHVybiBkaWZmO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbkRheXM7XG4iLCJpbXBvcnQgeyBnZXRSb3VuZGluZ01ldGhvZCB9IGZyb20gXCIuL19saWIvZ2V0Um91bmRpbmdNZXRob2QuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5Ib3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5Ib3Vyc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkhvdXJzXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBob3VycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGhvdXJzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgaG91cnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgaG91cnMgYXJlIGJldHdlZW4gMiBKdWx5IDIwMTQgMDY6NTA6MDAgYW5kIDIgSnVseSAyMDE0IDE5OjAwOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluSG91cnMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDE5LCAwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgNiwgNTApXG4gKiApXG4gKiAvLz0+IDEyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5Ib3VycyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuICBjb25zdCBkaWZmID0gKCtsYXRlckRhdGVfIC0gK2VhcmxpZXJEYXRlXykgLyBtaWxsaXNlY29uZHNJbkhvdXI7XG4gIHJldHVybiBnZXRSb3VuZGluZ01ldGhvZChvcHRpb25zPy5yb3VuZGluZ01ldGhvZCkoZGlmZik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluSG91cnM7XG4iLCJpbXBvcnQgeyBhZGREYXlzIH0gZnJvbSBcIi4vYWRkRGF5cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3ViRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN1YkRheXNcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgZGF5cyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGRheXMgdG8gYmUgc3VidHJhY3RlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBkYXlzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgMTAgZGF5cyBmcm9tIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJEYXlzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCAxMClcbiAqIC8vPT4gRnJpIEF1ZyAyMiAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJEYXlzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkRGF5cyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJEYXlzO1xuIiwiaW1wb3J0IHtcbiAgbWlsbGlzZWNvbmRzSW5Ib3VyLFxuICBtaWxsaXNlY29uZHNJbk1pbnV0ZSxcbn0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBwYXJzZUlTT30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHBhcnNlSVNPXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFBhcnNlIElTTyBzdHJpbmdcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFBhcnNlIHRoZSBnaXZlbiBzdHJpbmcgaW4gSVNPIDg2MDEgZm9ybWF0IGFuZCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqXG4gKiBGdW5jdGlvbiBhY2NlcHRzIGNvbXBsZXRlIElTTyA4NjAxIGZvcm1hdHMgYXMgd2VsbCBhcyBwYXJ0aWFsIGltcGxlbWVudGF0aW9ucy5cbiAqIElTTyA4NjAxOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzbid0IGEgc3RyaW5nLCB0aGUgZnVuY3Rpb24gY2Fubm90IHBhcnNlIHRoZSBzdHJpbmcgb3JcbiAqIHRoZSB2YWx1ZXMgYXJlIGludmFsaWQsIGl0IHJldHVybnMgSW52YWxpZCBEYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gYXJndW1lbnQgLSBUaGUgdmFsdWUgdG8gY29udmVydFxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCBzdHJpbmcgJzIwMTQtMDItMTFUMTE6MzA6MzAnIHRvIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBwYXJzZUlTTygnMjAxNC0wMi0xMVQxMTozMDozMCcpXG4gKiAvLz0+IFR1ZSBGZWIgMTEgMjAxNCAxMTozMDozMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IHN0cmluZyAnKzAyMDE0MTAxJyB0byBkYXRlLFxuICogLy8gaWYgdGhlIGFkZGl0aW9uYWwgbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZXh0ZW5kZWQgeWVhciBmb3JtYXQgaXMgMTpcbiAqIGNvbnN0IHJlc3VsdCA9IHBhcnNlSVNPKCcrMDIwMTQxMDEnLCB7IGFkZGl0aW9uYWxEaWdpdHM6IDEgfSlcbiAqIC8vPT4gRnJpIEFwciAxMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlTTyhhcmd1bWVudCwgb3B0aW9ucykge1xuICBjb25zdCBpbnZhbGlkRGF0ZSA9ICgpID0+IGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4sIE5hTik7XG5cbiAgY29uc3QgYWRkaXRpb25hbERpZ2l0cyA9IG9wdGlvbnM/LmFkZGl0aW9uYWxEaWdpdHMgPz8gMjtcbiAgY29uc3QgZGF0ZVN0cmluZ3MgPSBzcGxpdERhdGVTdHJpbmcoYXJndW1lbnQpO1xuXG4gIGxldCBkYXRlO1xuICBpZiAoZGF0ZVN0cmluZ3MuZGF0ZSkge1xuICAgIGNvbnN0IHBhcnNlWWVhclJlc3VsdCA9IHBhcnNlWWVhcihkYXRlU3RyaW5ncy5kYXRlLCBhZGRpdGlvbmFsRGlnaXRzKTtcbiAgICBkYXRlID0gcGFyc2VEYXRlKHBhcnNlWWVhclJlc3VsdC5yZXN0RGF0ZVN0cmluZywgcGFyc2VZZWFyUmVzdWx0LnllYXIpO1xuICB9XG5cbiAgaWYgKCFkYXRlIHx8IGlzTmFOKCtkYXRlKSkgcmV0dXJuIGludmFsaWREYXRlKCk7XG5cbiAgY29uc3QgdGltZXN0YW1wID0gK2RhdGU7XG4gIGxldCB0aW1lID0gMDtcbiAgbGV0IG9mZnNldDtcblxuICBpZiAoZGF0ZVN0cmluZ3MudGltZSkge1xuICAgIHRpbWUgPSBwYXJzZVRpbWUoZGF0ZVN0cmluZ3MudGltZSk7XG4gICAgaWYgKGlzTmFOKHRpbWUpKSByZXR1cm4gaW52YWxpZERhdGUoKTtcbiAgfVxuXG4gIGlmIChkYXRlU3RyaW5ncy50aW1lem9uZSkge1xuICAgIG9mZnNldCA9IHBhcnNlVGltZXpvbmUoZGF0ZVN0cmluZ3MudGltZXpvbmUpO1xuICAgIGlmIChpc05hTihvZmZzZXQpKSByZXR1cm4gaW52YWxpZERhdGUoKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0bXBEYXRlID0gbmV3IERhdGUodGltZXN0YW1wICsgdGltZSk7XG4gICAgY29uc3QgcmVzdWx0ID0gdG9EYXRlKDAsIG9wdGlvbnM/LmluKTtcbiAgICByZXN1bHQuc2V0RnVsbFllYXIoXG4gICAgICB0bXBEYXRlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgICB0bXBEYXRlLmdldFVUQ01vbnRoKCksXG4gICAgICB0bXBEYXRlLmdldFVUQ0RhdGUoKSxcbiAgICApO1xuICAgIHJlc3VsdC5zZXRIb3VycyhcbiAgICAgIHRtcERhdGUuZ2V0VVRDSG91cnMoKSxcbiAgICAgIHRtcERhdGUuZ2V0VVRDTWludXRlcygpLFxuICAgICAgdG1wRGF0ZS5nZXRVVENTZWNvbmRzKCksXG4gICAgICB0bXBEYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpLFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJldHVybiB0b0RhdGUodGltZXN0YW1wICsgdGltZSArIG9mZnNldCwgb3B0aW9ucz8uaW4pO1xufVxuXG5jb25zdCBwYXR0ZXJucyA9IHtcbiAgZGF0ZVRpbWVEZWxpbWl0ZXI6IC9bVCBdLyxcbiAgdGltZVpvbmVEZWxpbWl0ZXI6IC9bWiBdL2ksXG4gIHRpbWV6b25lOiAvKFtaKy1dLiopJC8sXG59O1xuXG5jb25zdCBkYXRlUmVnZXggPVxuICAvXi0/KD86KFxcZHszfSl8KFxcZHsyfSkoPzotPyhcXGR7Mn0pKT98VyhcXGR7Mn0pKD86LT8oXFxkezF9KSk/fCkkLztcbmNvbnN0IHRpbWVSZWdleCA9XG4gIC9eKFxcZHsyfSg/OlsuLF1cXGQqKT8pKD86Oj8oXFxkezJ9KD86Wy4sXVxcZCopPykpPyg/Ojo/KFxcZHsyfSg/OlsuLF1cXGQqKT8pKT8kLztcbmNvbnN0IHRpbWV6b25lUmVnZXggPSAvXihbKy1dKShcXGR7Mn0pKD86Oj8oXFxkezJ9KSk/JC87XG5cbmZ1bmN0aW9uIHNwbGl0RGF0ZVN0cmluZyhkYXRlU3RyaW5nKSB7XG4gIGNvbnN0IGRhdGVTdHJpbmdzID0ge307XG4gIGNvbnN0IGFycmF5ID0gZGF0ZVN0cmluZy5zcGxpdChwYXR0ZXJucy5kYXRlVGltZURlbGltaXRlcik7XG4gIGxldCB0aW1lU3RyaW5nO1xuXG4gIC8vIFRoZSByZWdleCBtYXRjaCBzaG91bGQgb25seSByZXR1cm4gYXQgbWF4aW11bSB0d28gYXJyYXkgZWxlbWVudHMuXG4gIC8vIFtkYXRlXSwgW3RpbWVdLCBvciBbZGF0ZSwgdGltZV0uXG4gIGlmIChhcnJheS5sZW5ndGggPiAyKSB7XG4gICAgcmV0dXJuIGRhdGVTdHJpbmdzO1xuICB9XG5cbiAgaWYgKC86Ly50ZXN0KGFycmF5WzBdKSkge1xuICAgIHRpbWVTdHJpbmcgPSBhcnJheVswXTtcbiAgfSBlbHNlIHtcbiAgICBkYXRlU3RyaW5ncy5kYXRlID0gYXJyYXlbMF07XG4gICAgdGltZVN0cmluZyA9IGFycmF5WzFdO1xuICAgIGlmIChwYXR0ZXJucy50aW1lWm9uZURlbGltaXRlci50ZXN0KGRhdGVTdHJpbmdzLmRhdGUpKSB7XG4gICAgICBkYXRlU3RyaW5ncy5kYXRlID0gZGF0ZVN0cmluZy5zcGxpdChwYXR0ZXJucy50aW1lWm9uZURlbGltaXRlcilbMF07XG4gICAgICB0aW1lU3RyaW5nID0gZGF0ZVN0cmluZy5zdWJzdHIoXG4gICAgICAgIGRhdGVTdHJpbmdzLmRhdGUubGVuZ3RoLFxuICAgICAgICBkYXRlU3RyaW5nLmxlbmd0aCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRpbWVTdHJpbmcpIHtcbiAgICBjb25zdCB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lLmV4ZWModGltZVN0cmluZyk7XG4gICAgaWYgKHRva2VuKSB7XG4gICAgICBkYXRlU3RyaW5ncy50aW1lID0gdGltZVN0cmluZy5yZXBsYWNlKHRva2VuWzFdLCBcIlwiKTtcbiAgICAgIGRhdGVTdHJpbmdzLnRpbWV6b25lID0gdG9rZW5bMV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGVTdHJpbmdzLnRpbWUgPSB0aW1lU3RyaW5nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRlU3RyaW5ncztcbn1cblxuZnVuY3Rpb24gcGFyc2VZZWFyKGRhdGVTdHJpbmcsIGFkZGl0aW9uYWxEaWdpdHMpIHtcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFxuICAgIFwiXig/OihcXFxcZHs0fXxbKy1dXFxcXGR7XCIgK1xuICAgICAgKDQgKyBhZGRpdGlvbmFsRGlnaXRzKSArXG4gICAgICBcIn0pfChcXFxcZHsyfXxbKy1dXFxcXGR7XCIgK1xuICAgICAgKDIgKyBhZGRpdGlvbmFsRGlnaXRzKSArXG4gICAgICBcIn0pJClcIixcbiAgKTtcblxuICBjb25zdCBjYXB0dXJlcyA9IGRhdGVTdHJpbmcubWF0Y2gocmVnZXgpO1xuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgeWVhclxuICBpZiAoIWNhcHR1cmVzKSByZXR1cm4geyB5ZWFyOiBOYU4sIHJlc3REYXRlU3RyaW5nOiBcIlwiIH07XG5cbiAgY29uc3QgeWVhciA9IGNhcHR1cmVzWzFdID8gcGFyc2VJbnQoY2FwdHVyZXNbMV0pIDogbnVsbDtcbiAgY29uc3QgY2VudHVyeSA9IGNhcHR1cmVzWzJdID8gcGFyc2VJbnQoY2FwdHVyZXNbMl0pIDogbnVsbDtcblxuICAvLyBlaXRoZXIgeWVhciBvciBjZW50dXJ5IGlzIG51bGwsIG5vdCBib3RoXG4gIHJldHVybiB7XG4gICAgeWVhcjogY2VudHVyeSA9PT0gbnVsbCA/IHllYXIgOiBjZW50dXJ5ICogMTAwLFxuICAgIHJlc3REYXRlU3RyaW5nOiBkYXRlU3RyaW5nLnNsaWNlKChjYXB0dXJlc1sxXSB8fCBjYXB0dXJlc1syXSkubGVuZ3RoKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRlKGRhdGVTdHJpbmcsIHllYXIpIHtcbiAgLy8gSW52YWxpZCBJU08tZm9ybWF0dGVkIHllYXJcbiAgaWYgKHllYXIgPT09IG51bGwpIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuXG4gIGNvbnN0IGNhcHR1cmVzID0gZGF0ZVN0cmluZy5tYXRjaChkYXRlUmVnZXgpO1xuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgc3RyaW5nXG4gIGlmICghY2FwdHVyZXMpIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuXG4gIGNvbnN0IGlzV2Vla0RhdGUgPSAhIWNhcHR1cmVzWzRdO1xuICBjb25zdCBkYXlPZlllYXIgPSBwYXJzZURhdGVVbml0KGNhcHR1cmVzWzFdKTtcbiAgY29uc3QgbW9udGggPSBwYXJzZURhdGVVbml0KGNhcHR1cmVzWzJdKSAtIDE7XG4gIGNvbnN0IGRheSA9IHBhcnNlRGF0ZVVuaXQoY2FwdHVyZXNbM10pO1xuICBjb25zdCB3ZWVrID0gcGFyc2VEYXRlVW5pdChjYXB0dXJlc1s0XSk7XG4gIGNvbnN0IGRheU9mV2VlayA9IHBhcnNlRGF0ZVVuaXQoY2FwdHVyZXNbNV0pIC0gMTtcblxuICBpZiAoaXNXZWVrRGF0ZSkge1xuICAgIGlmICghdmFsaWRhdGVXZWVrRGF0ZSh5ZWFyLCB3ZWVrLCBkYXlPZldlZWspKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgICB9XG4gICAgcmV0dXJuIGRheU9mSVNPV2Vla1llYXIoeWVhciwgd2VlaywgZGF5T2ZXZWVrKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XG4gICAgaWYgKFxuICAgICAgIXZhbGlkYXRlRGF0ZSh5ZWFyLCBtb250aCwgZGF5KSB8fFxuICAgICAgIXZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSh5ZWFyLCBkYXlPZlllYXIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgICB9XG4gICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5ZWFyLCBtb250aCwgTWF0aC5tYXgoZGF5T2ZZZWFyLCBkYXkpKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGVVbml0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA/IHBhcnNlSW50KHZhbHVlKSA6IDE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVGltZSh0aW1lU3RyaW5nKSB7XG4gIGNvbnN0IGNhcHR1cmVzID0gdGltZVN0cmluZy5tYXRjaCh0aW1lUmVnZXgpO1xuICBpZiAoIWNhcHR1cmVzKSByZXR1cm4gTmFOOyAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgdGltZVxuXG4gIGNvbnN0IGhvdXJzID0gcGFyc2VUaW1lVW5pdChjYXB0dXJlc1sxXSk7XG4gIGNvbnN0IG1pbnV0ZXMgPSBwYXJzZVRpbWVVbml0KGNhcHR1cmVzWzJdKTtcbiAgY29uc3Qgc2Vjb25kcyA9IHBhcnNlVGltZVVuaXQoY2FwdHVyZXNbM10pO1xuXG4gIGlmICghdmFsaWRhdGVUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSkge1xuICAgIHJldHVybiBOYU47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIGhvdXJzICogbWlsbGlzZWNvbmRzSW5Ib3VyICsgbWludXRlcyAqIG1pbGxpc2Vjb25kc0luTWludXRlICsgc2Vjb25kcyAqIDEwMDBcbiAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VUaW1lVW5pdCh2YWx1ZSkge1xuICByZXR1cm4gKHZhbHVlICYmIHBhcnNlRmxvYXQodmFsdWUucmVwbGFjZShcIixcIiwgXCIuXCIpKSkgfHwgMDtcbn1cblxuZnVuY3Rpb24gcGFyc2VUaW1lem9uZSh0aW1lem9uZVN0cmluZykge1xuICBpZiAodGltZXpvbmVTdHJpbmcgPT09IFwiWlwiKSByZXR1cm4gMDtcblxuICBjb25zdCBjYXB0dXJlcyA9IHRpbWV6b25lU3RyaW5nLm1hdGNoKHRpbWV6b25lUmVnZXgpO1xuICBpZiAoIWNhcHR1cmVzKSByZXR1cm4gMDtcblxuICBjb25zdCBzaWduID0gY2FwdHVyZXNbMV0gPT09IFwiK1wiID8gLTEgOiAxO1xuICBjb25zdCBob3VycyA9IHBhcnNlSW50KGNhcHR1cmVzWzJdKTtcbiAgY29uc3QgbWludXRlcyA9IChjYXB0dXJlc1szXSAmJiBwYXJzZUludChjYXB0dXJlc1szXSkpIHx8IDA7XG5cbiAgaWYgKCF2YWxpZGF0ZVRpbWV6b25lKGhvdXJzLCBtaW51dGVzKSkge1xuICAgIHJldHVybiBOYU47XG4gIH1cblxuICByZXR1cm4gc2lnbiAqIChob3VycyAqIG1pbGxpc2Vjb25kc0luSG91ciArIG1pbnV0ZXMgKiBtaWxsaXNlY29uZHNJbk1pbnV0ZSk7XG59XG5cbmZ1bmN0aW9uIGRheU9mSVNPV2Vla1llYXIoaXNvV2Vla1llYXIsIHdlZWssIGRheSkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XG4gIGRhdGUuc2V0VVRDRnVsbFllYXIoaXNvV2Vla1llYXIsIDAsIDQpO1xuICBjb25zdCBmb3VydGhPZkphbnVhcnlEYXkgPSBkYXRlLmdldFVUQ0RheSgpIHx8IDc7XG4gIGNvbnN0IGRpZmYgPSAod2VlayAtIDEpICogNyArIGRheSArIDEgLSBmb3VydGhPZkphbnVhcnlEYXk7XG4gIGRhdGUuc2V0VVRDRGF0ZShkYXRlLmdldFVUQ0RhdGUoKSArIGRpZmYpO1xuICByZXR1cm4gZGF0ZTtcbn1cblxuLy8gVmFsaWRhdGlvbiBmdW5jdGlvbnNcblxuLy8gRmVicnVhcnkgaXMgbnVsbCB0byBoYW5kbGUgdGhlIGxlYXAgeWVhciAodXNpbmcgfHwpXG5jb25zdCBkYXlzSW5Nb250aHMgPSBbMzEsIG51bGwsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXTtcblxuZnVuY3Rpb24gaXNMZWFwWWVhckluZGV4KHllYXIpIHtcbiAgcmV0dXJuIHllYXIgJSA0MDAgPT09IDAgfHwgKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZURhdGUoeWVhciwgbW9udGgsIGRhdGUpIHtcbiAgcmV0dXJuIChcbiAgICBtb250aCA+PSAwICYmXG4gICAgbW9udGggPD0gMTEgJiZcbiAgICBkYXRlID49IDEgJiZcbiAgICBkYXRlIDw9IChkYXlzSW5Nb250aHNbbW9udGhdIHx8IChpc0xlYXBZZWFySW5kZXgoeWVhcikgPyAyOSA6IDI4KSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVEYXlPZlllYXJEYXRlKHllYXIsIGRheU9mWWVhcikge1xuICByZXR1cm4gZGF5T2ZZZWFyID49IDEgJiYgZGF5T2ZZZWFyIDw9IChpc0xlYXBZZWFySW5kZXgoeWVhcikgPyAzNjYgOiAzNjUpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVdlZWtEYXRlKF95ZWFyLCB3ZWVrLCBkYXkpIHtcbiAgcmV0dXJuIHdlZWsgPj0gMSAmJiB3ZWVrIDw9IDUzICYmIGRheSA+PSAwICYmIGRheSA8PSA2O1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpIHtcbiAgaWYgKGhvdXJzID09PSAyNCkge1xuICAgIHJldHVybiBtaW51dGVzID09PSAwICYmIHNlY29uZHMgPT09IDA7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIHNlY29uZHMgPj0gMCAmJlxuICAgIHNlY29uZHMgPCA2MCAmJlxuICAgIG1pbnV0ZXMgPj0gMCAmJlxuICAgIG1pbnV0ZXMgPCA2MCAmJlxuICAgIGhvdXJzID49IDAgJiZcbiAgICBob3VycyA8IDI1XG4gICk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVGltZXpvbmUoX2hvdXJzLCBtaW51dGVzKSB7XG4gIHJldHVybiBtaW51dGVzID49IDAgJiYgbWludXRlcyA8PSA1OTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwYXJzZUlTTztcbiIsImltcG9ydCB7IGFkZEhvdXJzIH0gZnJvbSBcIi4vYWRkSG91cnMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN1YkhvdXJzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3ViSG91cnNcbiAqIEBjYXRlZ29yeSBIb3VyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGhvdXJzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBob3VycyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGhvdXJzIHRvIGJlIHN1YnRyYWN0ZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIGhvdXJzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgMiBob3VycyBmcm9tIDExIEp1bHkgMjAxNCAwMTowMDowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN1YkhvdXJzKG5ldyBEYXRlKDIwMTQsIDYsIDExLCAxLCAwKSwgMilcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDIzOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJIb3VycyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGFkZEhvdXJzKGRhdGUsIC1hbW91bnQsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN1YkhvdXJzO1xuIiwiaW1wb3J0IHtcbiAgaTE4bkR1cmF0aW9uSG91cixcbiAgaTE4bkR1cmF0aW9uTWludXRlLFxuICBpMThuRHVyYXRpb25EYXksXG59IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQge1xuICBpc1ZhbGlkLFxuICBwYXJzZUlTTyxcbiAgZGlmZmVyZW5jZUluRGF5cyxcbiAgZGlmZmVyZW5jZUluSG91cnMsXG4gIGRpZmZlcmVuY2VJbk1pbnV0ZXMsXG4gIGFkZE1pbnV0ZXMsXG4gIHN1YkhvdXJzLFxuICBzdWJEYXlzLFxufSBmcm9tICdkYXRlLWZucyc7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBvZmZzZXQgb2YgYSBJU08gZGF0ZSBzdHJpbmcuIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb2Zmc2V0IGlzIGlnbm9yZWQuXG4gKiBJZiBpdCBpcyBub3QgcmVtb3ZlZCB0aGUgdGltZSB3b3VsZCBiZSBjb252ZXJ0ZWQgdG8gdGhlIGJyb3dzZXJzIGxvY2FsIHRpbWUuXG4gKiBFeGFtcGxlOiBcIjIwMjItMDgtMjlUMDk6MzA6MDArMDM6MDBcIiB3b3VsZCBiZSBjaGFuZ2VkIHRvIFwiMjAyMi0wOC0yOVQwODozMDowMCswMjowMFwiIC0tPiBub3QgdGhlIGRlc2lyZWQgb3V0Y29tZSwgYXMgd2Ugd2FudCB0byB1c2UgdGhlIHRpbWUgaW4gdGhlIHRpbWV6b25lIGFuZCBub3QgdGhlIGxvY2FsIHRpbWUuXG4gKlxuICogQWZ0ZXIgdGhlIG9mZnNldCBpcyByZW1vdmVkIGEgbmV3IGRhdGUgaXMgY3JlYXRlZCBpbiB0aGUgYnJvd3NlcnMgbG9jYWwgdGltZS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHRpbWUgb2YgdGhlIElTTyBkYXRlIHN0cmluZyBpcyBkaXNwbGF5ZWQgYW5kIG5vdCBhIGNvbnZlcnRlZCB0aW1lLlxuICogRXhhbXBsZTogXCIyMDIyLTA4LTI5VDA5OjMwOjAwKzAzOjAwXCIgd291bGQgYmUgY2hhbmdlZCB0byBcIjIwMjItMDgtMjlUMDk6MzA6MDArMDI6MDBcIiAtLT4gZGVzaXJlZCBvdXRjb21lXG4gKiBBdHRlbnRpb246IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY29udmVydCB0aGUgdGltZSB0byB0aGUgY29ycmVjdCB0aW1lIGluIHRoZSBsb2NhbCB0aW1lem9uZS4gSXQgaXMgYSB3b3JrYXJvdW5kIHRvIG1ha2Ugc3VyZSwgdGhhdCB0aGUgZ2l2ZW4gdGltZSBpcyBkaXNwbGF5ZWQgd2l0aG91dCBiZWluZyBjb252ZXJ0ZWQuXG4gKlxuICogT2Zmc2V0OiBEaWZmZXJlbmNlIGJldHdlZW4gdGhlIHRpbWV6b25lIGFuZCBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZS5cbiAqXG4gKiBAcGFyYW0gaXNvVGltZSAtIHRoZSBpc28gdGltZSB3aXRoIHRoZSB0aW1lem9uZSBvZmZzZXRcbiAqIEByZXR1cm5zIGEgbmV3IGRhdGUgd2l0aCB0aGUgbG9jYWwgdGltZXpvbmUgd2l0aCB0aGUgbG9jYWwgb2Zmc2V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGlzb1RpbWU/OiBzdHJpbmcpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFpc29UaW1lKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBwYXJzZWREYXRlID0gcGFyc2VJU08oaXNvVGltZSk7XG5cbiAgaWYgKCFpc1ZhbGlkKHBhcnNlZERhdGUpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChpc29UaW1lLmluY2x1ZGVzKCdaJykpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoaXNvVGltZS5yZXBsYWNlKCdaJywgJycpKTtcbiAgfVxuXG4gIGlmIChpc29UaW1lLmluY2x1ZGVzKCdUJykpIHtcbiAgICBjb25zdCBkYXRlVGltZSA9IGlzb1RpbWUuc3BsaXQoJ1QnKTtcblxuICAgIGlmIChkYXRlVGltZVsxXSAmJiAoZGF0ZVRpbWVbMV0uaW5jbHVkZXMoJysnKSB8fCBkYXRlVGltZVsxXS5pbmNsdWRlcygnLScpKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGAke2RhdGVUaW1lWzBdfVQke2RhdGVUaW1lWzFdLnNwbGl0KC9bKy1dLylbMF19YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgRGF0ZShpc29UaW1lKTtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGEgZHVyYXRpb24gbnVtYmVyIHRvIGRhdGUgc3RyaW5nIHdpdGggc3BlY2lmaWMgZm9ybWF0XG4gKlxuICogQHBhcmFtIGR1cmF0aW9uIC0gZHVyYXRpb24gaW4gbWludXRlc1xuICogQHBhcmFtIGN1cnJlbnRMYW5ndWFnZSAtIGN1cnJlbnRMYW5ndWFnZVxuICogQHJldHVybnMgYW4gT2JqZWN0IHdpdGggdHdvIHN0cmluZ3MgaW4gdGhlIGZvcm1hdCBcImRkIGhoIG1tXCIgKHNob3J0KSBhbiBcInggRGF5KHMpIHggSG91cihzKSB4IE1pbnV0ZShzKSAobG9uZylcIlxuICogKi9cblxuZXhwb3J0IGNvbnN0IGR1cmF0aW9uVG9UaW1lID0gKFxuICBkdXJhdGlvbjogbnVtYmVyLFxuICBjdXJyZW50TGFuZ3VhZ2U/OiBzdHJpbmcsXG4pOiB7IHNob3J0OiBzdHJpbmc7IGxvbmc6IHN0cmluZyB9ID0+IHtcbiAgY29uc3Qgc2hvcnQgPSBbXTtcbiAgY29uc3QgbG9uZyA9IFtdO1xuXG4gIGNvbnN0IG5vdyA9IDA7XG4gIGxldCBmdXR1cmUgPSBhZGRNaW51dGVzKG5vdywgZHVyYXRpb24pO1xuXG4gIGNvbnN0IGRheXMgPSBkaWZmZXJlbmNlSW5EYXlzKGZ1dHVyZSwgbm93KTtcbiAgaWYgKGRheXMgPiAwKSB7XG4gICAgc2hvcnQucHVzaChgJHtkYXlzfSBkYCk7XG4gICAgaWYgKGN1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgbG9uZy5wdXNoKFxuICAgICAgICBgJHtkYXlzfSAke1xuICAgICAgICAgIGRheXMgPiAxXG4gICAgICAgICAgICA/IGkxOG5EdXJhdGlvbkRheS5tdWx0aXBsZS5sb25nW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgICAgIDogaTE4bkR1cmF0aW9uRGF5LnNpbmdsZS5sb25nW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBmdXR1cmUgPSBzdWJEYXlzKGZ1dHVyZSwgZGF5cyk7XG4gIH1cblxuICBjb25zdCBob3VycyA9IGRpZmZlcmVuY2VJbkhvdXJzKGZ1dHVyZSwgbm93KTtcbiAgaWYgKGhvdXJzID4gMCkge1xuICAgIHNob3J0LnB1c2goYCR7aG91cnN9IGhgKTtcbiAgICBpZiAoY3VycmVudExhbmd1YWdlKSB7XG4gICAgICBsb25nLnB1c2goXG4gICAgICAgIGAke2hvdXJzfSAke1xuICAgICAgICAgIGhvdXJzID4gMVxuICAgICAgICAgICAgPyBpMThuRHVyYXRpb25Ib3VyLm11bHRpcGxlLmxvbmdbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgICAgOiBpMThuRHVyYXRpb25Ib3VyLnNpbmdsZS5sb25nW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBmdXR1cmUgPSBzdWJIb3VycyhmdXR1cmUsIGhvdXJzKTtcbiAgfVxuXG4gIGNvbnN0IG1pbnV0ZXMgPSBkaWZmZXJlbmNlSW5NaW51dGVzKGZ1dHVyZSwgbm93KTtcbiAgaWYgKG1pbnV0ZXMgPiAwKSB7XG4gICAgc2hvcnQucHVzaChgJHttaW51dGVzfSBtaW5gKTtcbiAgICBpZiAoY3VycmVudExhbmd1YWdlKSB7XG4gICAgICBsb25nLnB1c2goXG4gICAgICAgIGAke21pbnV0ZXN9ICR7XG4gICAgICAgICAgbWludXRlcyA+IDFcbiAgICAgICAgICAgID8gaTE4bkR1cmF0aW9uTWludXRlLm11bHRpcGxlLmxvbmdbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgICAgOiBpMThuRHVyYXRpb25NaW51dGUuc2luZ2xlLmxvbmdbY3VycmVudExhbmd1YWdlXVxuICAgICAgICB9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzaG9ydDogc2hvcnQuam9pbignICcpLFxuICAgIGxvbmc6IGxvbmcuam9pbignICcpLFxuICB9O1xufTtcbiJdLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxLDIsMyw0LDUsNiw3XSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZCQSxTQUFnQixRQUFRLE1BQU0sUUFBUSxTQUFTO0NBQzdDLE1BQU0sUUFBUSxPQUFPLE1BQU0sU0FBUyxHQUFHO0NBQ3ZDLElBQUksTUFBTSxPQUFPLEVBQUUsT0FBTyxjQUFjLFNBQVMsTUFBTSxNQUFNLElBQUk7Q0FHakUsSUFBSSxDQUFDLFFBQVEsT0FBTztDQUVwQixNQUFNLFFBQVEsTUFBTSxTQUFTLEdBQUcsT0FBTztDQUN2QyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1JULFNBQWdCLGdCQUFnQixNQUFNLFFBQVEsU0FBUztDQUNyRCxPQUFPLGNBQWMsU0FBUyxNQUFNLE1BQU0sQ0FBQyxPQUFPLEtBQUssR0FBRyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0RuRSxTQUFnQixTQUFTLE1BQU0sUUFBUSxTQUFT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
|
|
520
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXItcU5kd2dDOU8uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZERheXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkTWlsbGlzZWNvbmRzLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZEhvdXJzLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbkRheXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluSG91cnMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViRGF5cy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZUlTTy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdWJIb3Vycy5qcyIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvY29yZS9kYXRldGltZS9kYXRlLWhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGREYXlzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkRGF5c1xuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgZGF5cyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBkYXlzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGRheXMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgZGF5cyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMTAgZGF5cyB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gYWRkRGF5cyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgMTApXG4gKiAvLz0+IFRodSBTZXAgMTEgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkRGF5cyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBpZiAoaXNOYU4oYW1vdW50KSkgcmV0dXJuIGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgZGF0ZSwgTmFOKTtcblxuICAvLyBJZiAwIGRheXMsIG5vLW9wIHRvIGF2b2lkIGNoYW5naW5nIHRpbWVzIGluIHRoZSBob3VyIGJlZm9yZSBlbmQgb2YgRFNUXG4gIGlmICghYW1vdW50KSByZXR1cm4gX2RhdGU7XG5cbiAgX2RhdGUuc2V0RGF0ZShfZGF0ZS5nZXREYXRlKCkgKyBhbW91bnQpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkRGF5cztcbiIsImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZE1pbGxpc2Vjb25kc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZE1pbGxpc2Vjb25kc1xuICogQGNhdGVnb3J5IE1pbGxpc2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0XG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbGxpc2Vjb25kcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNzUwIG1pbGxpc2Vjb25kcyB0byAxMCBKdWx5IDIwMTQgMTI6NDU6MzAuMDAwOlxuICogY29uc3QgcmVzdWx0ID0gYWRkTWlsbGlzZWNvbmRzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgNDUsIDMwLCAwKSwgNzUwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6NDU6MzAuNzUwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRNaWxsaXNlY29uZHMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsICt0b0RhdGUoZGF0ZSkgKyBhbW91bnQpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZE1pbGxpc2Vjb25kcztcbiIsImltcG9ydCB7IGFkZE1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL2FkZE1pbGxpc2Vjb25kcy5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5Ib3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGRIb3Vyc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZEhvdXJzXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgaG91cnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgaG91cnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgaG91cnMgdG8gYmUgYWRkZWRcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBob3VycyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMiBob3VycyB0byAxMCBKdWx5IDIwMTQgMjM6MDA6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRIb3VycyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMjMsIDApLCAyKVxuICogLy89PiBGcmkgSnVsIDExIDIwMTQgMDE6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEhvdXJzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkTWlsbGlzZWNvbmRzKGRhdGUsIGFtb3VudCAqIG1pbGxpc2Vjb25kc0luSG91ciwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkSG91cnM7XG4iLCJpbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkRheXNcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgZnVsbCBkYXlzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgZnVsbCBkYXkgcGVyaW9kcyBiZXR3ZWVuIHR3byBkYXRlcy4gRnJhY3Rpb25hbCBkYXlzIGFyZVxuICogdHJ1bmNhdGVkIHRvd2FyZHMgemVyby5cbiAqXG4gKiBPbmUgXCJmdWxsIGRheVwiIGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIGEgbG9jYWwgdGltZSBpbiBvbmUgZGF5IHRvIHRoZSBzYW1lXG4gKiBsb2NhbCB0aW1lIG9uIHRoZSBuZXh0IG9yIHByZXZpb3VzIGRheS4gQSBmdWxsIGRheSBjYW4gc29tZXRpbWVzIGJlIGxlc3MgdGhhblxuICogb3IgbW9yZSB0aGFuIDI0IGhvdXJzIGlmIGEgZGF5bGlnaHQgc2F2aW5ncyBjaGFuZ2UgaGFwcGVucyBiZXR3ZWVuIHR3byBkYXRlcy5cbiAqXG4gKiBUbyBpZ25vcmUgRFNUIGFuZCBvbmx5IG1lYXN1cmUgZXhhY3QgMjQtaG91ciBwZXJpb2RzLCB1c2UgdGhpcyBpbnN0ZWFkOlxuICogYE1hdGgudHJ1bmMoZGlmZmVyZW5jZUluSG91cnMoZGF0ZUxlZnQsIGRhdGVSaWdodCkvMjQpfDBgLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBmdWxsIGRheXMgYWNjb3JkaW5nIHRvIHRoZSBsb2NhbCB0aW1lem9uZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBmdWxsIGRheXMgYXJlIGJldHdlZW5cbiAqIC8vIDIgSnVseSAyMDExIDIzOjAwOjAwIGFuZCAyIEp1bHkgMjAxMiAwMDowMDowMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkRheXMoXG4gKiAgIG5ldyBEYXRlKDIwMTIsIDYsIDIsIDAsIDApLFxuICogICBuZXcgRGF0ZSgyMDExLCA2LCAyLCAyMywgMClcbiAqIClcbiAqIC8vPT4gMzY1XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGZ1bGwgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6NTk6MDAgYW5kIDMgSnVseSAyMDExIDAwOjAxOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluRGF5cyhcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMywgMCwgMSksXG4gKiAgIG5ldyBEYXRlKDIwMTEsIDYsIDIsIDIzLCA1OSlcbiAqIClcbiAqIC8vPT4gMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBmdWxsIGRheXMgYXJlIGJldHdlZW5cbiAqIC8vIDEgTWFyY2ggMjAyMCAwOjAwIGFuZCAxIEp1bmUgMjAyMCAwOjAwID9cbiAqIC8vIE5vdGU6IGJlY2F1c2UgbG9jYWwgdGltZSBpcyB1c2VkLCB0aGVcbiAqIC8vIHJlc3VsdCB3aWxsIGFsd2F5cyBiZSA5MiBkYXlzLCBldmVuIGluXG4gKiAvLyB0aW1lIHpvbmVzIHdoZXJlIERTVCBzdGFydHMgYW5kIHRoZVxuICogLy8gcGVyaW9kIGhhcyBvbmx5IDkyKjI0LTEgaG91cnMuXG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5EYXlzKFxuICogICBuZXcgRGF0ZSgyMDIwLCA1LCAxKSxcbiAqICAgbmV3IERhdGUoMjAyMCwgMiwgMSlcbiAqIClcbiAqIC8vPT4gOTJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkRheXMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcblxuICBjb25zdCBzaWduID0gY29tcGFyZUxvY2FsQXNjKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7XG4gIGNvbnN0IGRpZmZlcmVuY2UgPSBNYXRoLmFicyhcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKSxcbiAgKTtcblxuICBsYXRlckRhdGVfLnNldERhdGUobGF0ZXJEYXRlXy5nZXREYXRlKCkgLSBzaWduICogZGlmZmVyZW5jZSk7XG5cbiAgLy8gTWF0aC5hYnMoZGlmZiBpbiBmdWxsIGRheXMgLSBkaWZmIGluIGNhbGVuZGFyIGRheXMpID09PSAxIGlmIGxhc3QgY2FsZW5kYXIgZGF5IGlzIG5vdCBmdWxsXG4gIC8vIElmIHNvLCByZXN1bHQgbXVzdCBiZSBkZWNyZWFzZWQgYnkgMSBpbiBhYnNvbHV0ZSB2YWx1ZVxuICBjb25zdCBpc0xhc3REYXlOb3RGdWxsID0gTnVtYmVyKFxuICAgIGNvbXBhcmVMb2NhbEFzYyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pID09PSAtc2lnbixcbiAgKTtcblxuICBjb25zdCByZXN1bHQgPSBzaWduICogKGRpZmZlcmVuY2UgLSBpc0xhc3REYXlOb3RGdWxsKTtcbiAgLy8gUHJldmVudCBuZWdhdGl2ZSB6ZXJvXG4gIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xufVxuXG4vLyBMaWtlIGBjb21wYXJlQXNjYCBidXQgdXNlcyBsb2NhbCB0aW1lIG5vdCBVVEMsIHdoaWNoIGlzIG5lZWRlZFxuLy8gZm9yIGFjY3VyYXRlIGVxdWFsaXR5IGNvbXBhcmlzb25zIG9mIFVUQyB0aW1lc3RhbXBzIHRoYXQgZW5kIHVwXG4vLyBoYXZpbmcgdGhlIHNhbWUgcmVwcmVzZW50YXRpb24gaW4gbG9jYWwgdGltZSwgZS5nLiBvbmUgaG91ciBiZWZvcmVcbi8vIERTVCBlbmRzIHZzLiB0aGUgaW5zdGFudCB0aGF0IERTVCBlbmRzLlxuZnVuY3Rpb24gY29tcGFyZUxvY2FsQXNjKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpIHtcbiAgY29uc3QgZGlmZiA9XG4gICAgbGF0ZXJEYXRlLmdldEZ1bGxZZWFyKCkgLSBlYXJsaWVyRGF0ZS5nZXRGdWxsWWVhcigpIHx8XG4gICAgbGF0ZXJEYXRlLmdldE1vbnRoKCkgLSBlYXJsaWVyRGF0ZS5nZXRNb250aCgpIHx8XG4gICAgbGF0ZXJEYXRlLmdldERhdGUoKSAtIGVhcmxpZXJEYXRlLmdldERhdGUoKSB8fFxuICAgIGxhdGVyRGF0ZS5nZXRIb3VycygpIC0gZWFybGllckRhdGUuZ2V0SG91cnMoKSB8fFxuICAgIGxhdGVyRGF0ZS5nZXRNaW51dGVzKCkgLSBlYXJsaWVyRGF0ZS5nZXRNaW51dGVzKCkgfHxcbiAgICBsYXRlckRhdGUuZ2V0U2Vjb25kcygpIC0gZWFybGllckRhdGUuZ2V0U2Vjb25kcygpIHx8XG4gICAgbGF0ZXJEYXRlLmdldE1pbGxpc2Vjb25kcygpIC0gZWFybGllckRhdGUuZ2V0TWlsbGlzZWNvbmRzKCk7XG5cbiAgaWYgKGRpZmYgPCAwKSByZXR1cm4gLTE7XG4gIGlmIChkaWZmID4gMCkgcmV0dXJuIDE7XG5cbiAgLy8gUmV0dXJuIDAgaWYgZGlmZiBpcyAwOyByZXR1cm4gTmFOIGlmIGRpZmYgaXMgTmFOXG4gIHJldHVybiBkaWZmO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbkRheXM7XG4iLCJpbXBvcnQgeyBnZXRSb3VuZGluZ01ldGhvZCB9IGZyb20gXCIuL19saWIvZ2V0Um91bmRpbmdNZXRob2QuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5Ib3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5Ib3Vyc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkhvdXJzXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBob3VycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGhvdXJzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgaG91cnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgaG91cnMgYXJlIGJldHdlZW4gMiBKdWx5IDIwMTQgMDY6NTA6MDAgYW5kIDIgSnVseSAyMDE0IDE5OjAwOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluSG91cnMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDE5LCAwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgNiwgNTApXG4gKiApXG4gKiAvLz0+IDEyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5Ib3VycyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuICBjb25zdCBkaWZmID0gKCtsYXRlckRhdGVfIC0gK2VhcmxpZXJEYXRlXykgLyBtaWxsaXNlY29uZHNJbkhvdXI7XG4gIHJldHVybiBnZXRSb3VuZGluZ01ldGhvZChvcHRpb25zPy5yb3VuZGluZ01ldGhvZCkoZGlmZik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluSG91cnM7XG4iLCJpbXBvcnQgeyBhZGREYXlzIH0gZnJvbSBcIi4vYWRkRGF5cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3ViRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN1YkRheXNcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgZGF5cyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGRheXMgdG8gYmUgc3VidHJhY3RlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBkYXlzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgMTAgZGF5cyBmcm9tIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJEYXlzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCAxMClcbiAqIC8vPT4gRnJpIEF1ZyAyMiAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJEYXlzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkRGF5cyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJEYXlzO1xuIiwiaW1wb3J0IHtcbiAgbWlsbGlzZWNvbmRzSW5Ib3VyLFxuICBtaWxsaXNlY29uZHNJbk1pbnV0ZSxcbn0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBwYXJzZUlTT30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHBhcnNlSVNPXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFBhcnNlIElTTyBzdHJpbmdcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFBhcnNlIHRoZSBnaXZlbiBzdHJpbmcgaW4gSVNPIDg2MDEgZm9ybWF0IGFuZCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqXG4gKiBGdW5jdGlvbiBhY2NlcHRzIGNvbXBsZXRlIElTTyA4NjAxIGZvcm1hdHMgYXMgd2VsbCBhcyBwYXJ0aWFsIGltcGxlbWVudGF0aW9ucy5cbiAqIElTTyA4NjAxOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzbid0IGEgc3RyaW5nLCB0aGUgZnVuY3Rpb24gY2Fubm90IHBhcnNlIHRoZSBzdHJpbmcgb3JcbiAqIHRoZSB2YWx1ZXMgYXJlIGludmFsaWQsIGl0IHJldHVybnMgSW52YWxpZCBEYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gYXJndW1lbnQgLSBUaGUgdmFsdWUgdG8gY29udmVydFxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCBzdHJpbmcgJzIwMTQtMDItMTFUMTE6MzA6MzAnIHRvIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBwYXJzZUlTTygnMjAxNC0wMi0xMVQxMTozMDozMCcpXG4gKiAvLz0+IFR1ZSBGZWIgMTEgMjAxNCAxMTozMDozMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IHN0cmluZyAnKzAyMDE0MTAxJyB0byBkYXRlLFxuICogLy8gaWYgdGhlIGFkZGl0aW9uYWwgbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZXh0ZW5kZWQgeWVhciBmb3JtYXQgaXMgMTpcbiAqIGNvbnN0IHJlc3VsdCA9IHBhcnNlSVNPKCcrMDIwMTQxMDEnLCB7IGFkZGl0aW9uYWxEaWdpdHM6IDEgfSlcbiAqIC8vPT4gRnJpIEFwciAxMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlTTyhhcmd1bWVudCwgb3B0aW9ucykge1xuICBjb25zdCBpbnZhbGlkRGF0ZSA9ICgpID0+IGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4sIE5hTik7XG5cbiAgY29uc3QgYWRkaXRpb25hbERpZ2l0cyA9IG9wdGlvbnM/LmFkZGl0aW9uYWxEaWdpdHMgPz8gMjtcbiAgY29uc3QgZGF0ZVN0cmluZ3MgPSBzcGxpdERhdGVTdHJpbmcoYXJndW1lbnQpO1xuXG4gIGxldCBkYXRlO1xuICBpZiAoZGF0ZVN0cmluZ3MuZGF0ZSkge1xuICAgIGNvbnN0IHBhcnNlWWVhclJlc3VsdCA9IHBhcnNlWWVhcihkYXRlU3RyaW5ncy5kYXRlLCBhZGRpdGlvbmFsRGlnaXRzKTtcbiAgICBkYXRlID0gcGFyc2VEYXRlKHBhcnNlWWVhclJlc3VsdC5yZXN0RGF0ZVN0cmluZywgcGFyc2VZZWFyUmVzdWx0LnllYXIpO1xuICB9XG5cbiAgaWYgKCFkYXRlIHx8IGlzTmFOKCtkYXRlKSkgcmV0dXJuIGludmFsaWREYXRlKCk7XG5cbiAgY29uc3QgdGltZXN0YW1wID0gK2RhdGU7XG4gIGxldCB0aW1lID0gMDtcbiAgbGV0IG9mZnNldDtcblxuICBpZiAoZGF0ZVN0cmluZ3MudGltZSkge1xuICAgIHRpbWUgPSBwYXJzZVRpbWUoZGF0ZVN0cmluZ3MudGltZSk7XG4gICAgaWYgKGlzTmFOKHRpbWUpKSByZXR1cm4gaW52YWxpZERhdGUoKTtcbiAgfVxuXG4gIGlmIChkYXRlU3RyaW5ncy50aW1lem9uZSkge1xuICAgIG9mZnNldCA9IHBhcnNlVGltZXpvbmUoZGF0ZVN0cmluZ3MudGltZXpvbmUpO1xuICAgIGlmIChpc05hTihvZmZzZXQpKSByZXR1cm4gaW52YWxpZERhdGUoKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0bXBEYXRlID0gbmV3IERhdGUodGltZXN0YW1wICsgdGltZSk7XG4gICAgY29uc3QgcmVzdWx0ID0gdG9EYXRlKDAsIG9wdGlvbnM/LmluKTtcbiAgICByZXN1bHQuc2V0RnVsbFllYXIoXG4gICAgICB0bXBEYXRlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgICB0bXBEYXRlLmdldFVUQ01vbnRoKCksXG4gICAgICB0bXBEYXRlLmdldFVUQ0RhdGUoKSxcbiAgICApO1xuICAgIHJlc3VsdC5zZXRIb3VycyhcbiAgICAgIHRtcERhdGUuZ2V0VVRDSG91cnMoKSxcbiAgICAgIHRtcERhdGUuZ2V0VVRDTWludXRlcygpLFxuICAgICAgdG1wRGF0ZS5nZXRVVENTZWNvbmRzKCksXG4gICAgICB0bXBEYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpLFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJldHVybiB0b0RhdGUodGltZXN0YW1wICsgdGltZSArIG9mZnNldCwgb3B0aW9ucz8uaW4pO1xufVxuXG5jb25zdCBwYXR0ZXJucyA9IHtcbiAgZGF0ZVRpbWVEZWxpbWl0ZXI6IC9bVCBdLyxcbiAgdGltZVpvbmVEZWxpbWl0ZXI6IC9bWiBdL2ksXG4gIHRpbWV6b25lOiAvKFtaKy1dLiopJC8sXG59O1xuXG5jb25zdCBkYXRlUmVnZXggPVxuICAvXi0/KD86KFxcZHszfSl8KFxcZHsyfSkoPzotPyhcXGR7Mn0pKT98VyhcXGR7Mn0pKD86LT8oXFxkezF9KSk/fCkkLztcbmNvbnN0IHRpbWVSZWdleCA9XG4gIC9eKFxcZHsyfSg/OlsuLF1cXGQqKT8pKD86Oj8oXFxkezJ9KD86Wy4sXVxcZCopPykpPyg/Ojo/KFxcZHsyfSg/OlsuLF1cXGQqKT8pKT8kLztcbmNvbnN0IHRpbWV6b25lUmVnZXggPSAvXihbKy1dKShcXGR7Mn0pKD86Oj8oXFxkezJ9KSk/JC87XG5cbmZ1bmN0aW9uIHNwbGl0RGF0ZVN0cmluZyhkYXRlU3RyaW5nKSB7XG4gIGNvbnN0IGRhdGVTdHJpbmdzID0ge307XG4gIGNvbnN0IGFycmF5ID0gZGF0ZVN0cmluZy5zcGxpdChwYXR0ZXJucy5kYXRlVGltZURlbGltaXRlcik7XG4gIGxldCB0aW1lU3RyaW5nO1xuXG4gIC8vIFRoZSByZWdleCBtYXRjaCBzaG91bGQgb25seSByZXR1cm4gYXQgbWF4aW11bSB0d28gYXJyYXkgZWxlbWVudHMuXG4gIC8vIFtkYXRlXSwgW3RpbWVdLCBvciBbZGF0ZSwgdGltZV0uXG4gIGlmIChhcnJheS5sZW5ndGggPiAyKSB7XG4gICAgcmV0dXJuIGRhdGVTdHJpbmdzO1xuICB9XG5cbiAgaWYgKC86Ly50ZXN0KGFycmF5WzBdKSkge1xuICAgIHRpbWVTdHJpbmcgPSBhcnJheVswXTtcbiAgfSBlbHNlIHtcbiAgICBkYXRlU3RyaW5ncy5kYXRlID0gYXJyYXlbMF07XG4gICAgdGltZVN0cmluZyA9IGFycmF5WzFdO1xuICAgIGlmIChwYXR0ZXJucy50aW1lWm9uZURlbGltaXRlci50ZXN0KGRhdGVTdHJpbmdzLmRhdGUpKSB7XG4gICAgICBkYXRlU3RyaW5ncy5kYXRlID0gZGF0ZVN0cmluZy5zcGxpdChwYXR0ZXJucy50aW1lWm9uZURlbGltaXRlcilbMF07XG4gICAgICB0aW1lU3RyaW5nID0gZGF0ZVN0cmluZy5zdWJzdHIoXG4gICAgICAgIGRhdGVTdHJpbmdzLmRhdGUubGVuZ3RoLFxuICAgICAgICBkYXRlU3RyaW5nLmxlbmd0aCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRpbWVTdHJpbmcpIHtcbiAgICBjb25zdCB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lLmV4ZWModGltZVN0cmluZyk7XG4gICAgaWYgKHRva2VuKSB7XG4gICAgICBkYXRlU3RyaW5ncy50aW1lID0gdGltZVN0cmluZy5yZXBsYWNlKHRva2VuWzFdLCBcIlwiKTtcbiAgICAgIGRhdGVTdHJpbmdzLnRpbWV6b25lID0gdG9rZW5bMV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGVTdHJpbmdzLnRpbWUgPSB0aW1lU3RyaW5nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRlU3RyaW5ncztcbn1cblxuZnVuY3Rpb24gcGFyc2VZZWFyKGRhdGVTdHJpbmcsIGFkZGl0aW9uYWxEaWdpdHMpIHtcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFxuICAgIFwiXig/OihcXFxcZHs0fXxbKy1dXFxcXGR7XCIgK1xuICAgICAgKDQgKyBhZGRpdGlvbmFsRGlnaXRzKSArXG4gICAgICBcIn0pfChcXFxcZHsyfXxbKy1dXFxcXGR7XCIgK1xuICAgICAgKDIgKyBhZGRpdGlvbmFsRGlnaXRzKSArXG4gICAgICBcIn0pJClcIixcbiAgKTtcblxuICBjb25zdCBjYXB0dXJlcyA9IGRhdGVTdHJpbmcubWF0Y2gocmVnZXgpO1xuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgeWVhclxuICBpZiAoIWNhcHR1cmVzKSByZXR1cm4geyB5ZWFyOiBOYU4sIHJlc3REYXRlU3RyaW5nOiBcIlwiIH07XG5cbiAgY29uc3QgeWVhciA9IGNhcHR1cmVzWzFdID8gcGFyc2VJbnQoY2FwdHVyZXNbMV0pIDogbnVsbDtcbiAgY29uc3QgY2VudHVyeSA9IGNhcHR1cmVzWzJdID8gcGFyc2VJbnQoY2FwdHVyZXNbMl0pIDogbnVsbDtcblxuICAvLyBlaXRoZXIgeWVhciBvciBjZW50dXJ5IGlzIG51bGwsIG5vdCBib3RoXG4gIHJldHVybiB7XG4gICAgeWVhcjogY2VudHVyeSA9PT0gbnVsbCA/IHllYXIgOiBjZW50dXJ5ICogMTAwLFxuICAgIHJlc3REYXRlU3RyaW5nOiBkYXRlU3RyaW5nLnNsaWNlKChjYXB0dXJlc1sxXSB8fCBjYXB0dXJlc1syXSkubGVuZ3RoKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRlKGRhdGVTdHJpbmcsIHllYXIpIHtcbiAgLy8gSW52YWxpZCBJU08tZm9ybWF0dGVkIHllYXJcbiAgaWYgKHllYXIgPT09IG51bGwpIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuXG4gIGNvbnN0IGNhcHR1cmVzID0gZGF0ZVN0cmluZy5tYXRjaChkYXRlUmVnZXgpO1xuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgc3RyaW5nXG4gIGlmICghY2FwdHVyZXMpIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuXG4gIGNvbnN0IGlzV2Vla0RhdGUgPSAhIWNhcHR1cmVzWzRdO1xuICBjb25zdCBkYXlPZlllYXIgPSBwYXJzZURhdGVVbml0KGNhcHR1cmVzWzFdKTtcbiAgY29uc3QgbW9udGggPSBwYXJzZURhdGVVbml0KGNhcHR1cmVzWzJdKSAtIDE7XG4gIGNvbnN0IGRheSA9IHBhcnNlRGF0ZVVuaXQoY2FwdHVyZXNbM10pO1xuICBjb25zdCB3ZWVrID0gcGFyc2VEYXRlVW5pdChjYXB0dXJlc1s0XSk7XG4gIGNvbnN0IGRheU9mV2VlayA9IHBhcnNlRGF0ZVVuaXQoY2FwdHVyZXNbNV0pIC0gMTtcblxuICBpZiAoaXNXZWVrRGF0ZSkge1xuICAgIGlmICghdmFsaWRhdGVXZWVrRGF0ZSh5ZWFyLCB3ZWVrLCBkYXlPZldlZWspKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgICB9XG4gICAgcmV0dXJuIGRheU9mSVNPV2Vla1llYXIoeWVhciwgd2VlaywgZGF5T2ZXZWVrKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XG4gICAgaWYgKFxuICAgICAgIXZhbGlkYXRlRGF0ZSh5ZWFyLCBtb250aCwgZGF5KSB8fFxuICAgICAgIXZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSh5ZWFyLCBkYXlPZlllYXIpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgICB9XG4gICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5ZWFyLCBtb250aCwgTWF0aC5tYXgoZGF5T2ZZZWFyLCBkYXkpKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGVVbml0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA/IHBhcnNlSW50KHZhbHVlKSA6IDE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVGltZSh0aW1lU3RyaW5nKSB7XG4gIGNvbnN0IGNhcHR1cmVzID0gdGltZVN0cmluZy5tYXRjaCh0aW1lUmVnZXgpO1xuICBpZiAoIWNhcHR1cmVzKSByZXR1cm4gTmFOOyAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgdGltZVxuXG4gIGNvbnN0IGhvdXJzID0gcGFyc2VUaW1lVW5pdChjYXB0dXJlc1sxXSk7XG4gIGNvbnN0IG1pbnV0ZXMgPSBwYXJzZVRpbWVVbml0KGNhcHR1cmVzWzJdKTtcbiAgY29uc3Qgc2Vjb25kcyA9IHBhcnNlVGltZVVuaXQoY2FwdHVyZXNbM10pO1xuXG4gIGlmICghdmFsaWRhdGVUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSkge1xuICAgIHJldHVybiBOYU47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIGhvdXJzICogbWlsbGlzZWNvbmRzSW5Ib3VyICsgbWludXRlcyAqIG1pbGxpc2Vjb25kc0luTWludXRlICsgc2Vjb25kcyAqIDEwMDBcbiAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VUaW1lVW5pdCh2YWx1ZSkge1xuICByZXR1cm4gKHZhbHVlICYmIHBhcnNlRmxvYXQodmFsdWUucmVwbGFjZShcIixcIiwgXCIuXCIpKSkgfHwgMDtcbn1cblxuZnVuY3Rpb24gcGFyc2VUaW1lem9uZSh0aW1lem9uZVN0cmluZykge1xuICBpZiAodGltZXpvbmVTdHJpbmcgPT09IFwiWlwiKSByZXR1cm4gMDtcblxuICBjb25zdCBjYXB0dXJlcyA9IHRpbWV6b25lU3RyaW5nLm1hdGNoKHRpbWV6b25lUmVnZXgpO1xuICBpZiAoIWNhcHR1cmVzKSByZXR1cm4gMDtcblxuICBjb25zdCBzaWduID0gY2FwdHVyZXNbMV0gPT09IFwiK1wiID8gLTEgOiAxO1xuICBjb25zdCBob3VycyA9IHBhcnNlSW50KGNhcHR1cmVzWzJdKTtcbiAgY29uc3QgbWludXRlcyA9IChjYXB0dXJlc1szXSAmJiBwYXJzZUludChjYXB0dXJlc1szXSkpIHx8IDA7XG5cbiAgaWYgKCF2YWxpZGF0ZVRpbWV6b25lKGhvdXJzLCBtaW51dGVzKSkge1xuICAgIHJldHVybiBOYU47XG4gIH1cblxuICByZXR1cm4gc2lnbiAqIChob3VycyAqIG1pbGxpc2Vjb25kc0luSG91ciArIG1pbnV0ZXMgKiBtaWxsaXNlY29uZHNJbk1pbnV0ZSk7XG59XG5cbmZ1bmN0aW9uIGRheU9mSVNPV2Vla1llYXIoaXNvV2Vla1llYXIsIHdlZWssIGRheSkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XG4gIGRhdGUuc2V0VVRDRnVsbFllYXIoaXNvV2Vla1llYXIsIDAsIDQpO1xuICBjb25zdCBmb3VydGhPZkphbnVhcnlEYXkgPSBkYXRlLmdldFVUQ0RheSgpIHx8IDc7XG4gIGNvbnN0IGRpZmYgPSAod2VlayAtIDEpICogNyArIGRheSArIDEgLSBmb3VydGhPZkphbnVhcnlEYXk7XG4gIGRhdGUuc2V0VVRDRGF0ZShkYXRlLmdldFVUQ0RhdGUoKSArIGRpZmYpO1xuICByZXR1cm4gZGF0ZTtcbn1cblxuLy8gVmFsaWRhdGlvbiBmdW5jdGlvbnNcblxuLy8gRmVicnVhcnkgaXMgbnVsbCB0byBoYW5kbGUgdGhlIGxlYXAgeWVhciAodXNpbmcgfHwpXG5jb25zdCBkYXlzSW5Nb250aHMgPSBbMzEsIG51bGwsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXTtcblxuZnVuY3Rpb24gaXNMZWFwWWVhckluZGV4KHllYXIpIHtcbiAgcmV0dXJuIHllYXIgJSA0MDAgPT09IDAgfHwgKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZURhdGUoeWVhciwgbW9udGgsIGRhdGUpIHtcbiAgcmV0dXJuIChcbiAgICBtb250aCA+PSAwICYmXG4gICAgbW9udGggPD0gMTEgJiZcbiAgICBkYXRlID49IDEgJiZcbiAgICBkYXRlIDw9IChkYXlzSW5Nb250aHNbbW9udGhdIHx8IChpc0xlYXBZZWFySW5kZXgoeWVhcikgPyAyOSA6IDI4KSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVEYXlPZlllYXJEYXRlKHllYXIsIGRheU9mWWVhcikge1xuICByZXR1cm4gZGF5T2ZZZWFyID49IDEgJiYgZGF5T2ZZZWFyIDw9IChpc0xlYXBZZWFySW5kZXgoeWVhcikgPyAzNjYgOiAzNjUpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVdlZWtEYXRlKF95ZWFyLCB3ZWVrLCBkYXkpIHtcbiAgcmV0dXJuIHdlZWsgPj0gMSAmJiB3ZWVrIDw9IDUzICYmIGRheSA+PSAwICYmIGRheSA8PSA2O1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpIHtcbiAgaWYgKGhvdXJzID09PSAyNCkge1xuICAgIHJldHVybiBtaW51dGVzID09PSAwICYmIHNlY29uZHMgPT09IDA7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIHNlY29uZHMgPj0gMCAmJlxuICAgIHNlY29uZHMgPCA2MCAmJlxuICAgIG1pbnV0ZXMgPj0gMCAmJlxuICAgIG1pbnV0ZXMgPCA2MCAmJlxuICAgIGhvdXJzID49IDAgJiZcbiAgICBob3VycyA8IDI1XG4gICk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVGltZXpvbmUoX2hvdXJzLCBtaW51dGVzKSB7XG4gIHJldHVybiBtaW51dGVzID49IDAgJiYgbWludXRlcyA8PSA1OTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwYXJzZUlTTztcbiIsImltcG9ydCB7IGFkZEhvdXJzIH0gZnJvbSBcIi4vYWRkSG91cnMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN1YkhvdXJzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3ViSG91cnNcbiAqIEBjYXRlZ29yeSBIb3VyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGhvdXJzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBob3VycyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGhvdXJzIHRvIGJlIHN1YnRyYWN0ZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIGhvdXJzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgMiBob3VycyBmcm9tIDExIEp1bHkgMjAxNCAwMTowMDowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN1YkhvdXJzKG5ldyBEYXRlKDIwMTQsIDYsIDExLCAxLCAwKSwgMilcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDIzOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJIb3VycyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGFkZEhvdXJzKGRhdGUsIC1hbW91bnQsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN1YkhvdXJzO1xuIiwiaW1wb3J0IHtcbiAgaTE4bkR1cmF0aW9uSG91cixcbiAgaTE4bkR1cmF0aW9uTWludXRlLFxuICBpMThuRHVyYXRpb25EYXksXG59IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQge1xuICBpc1ZhbGlkLFxuICBwYXJzZUlTTyxcbiAgZGlmZmVyZW5jZUluRGF5cyxcbiAgZGlmZmVyZW5jZUluSG91cnMsXG4gIGRpZmZlcmVuY2VJbk1pbnV0ZXMsXG4gIGFkZE1pbnV0ZXMsXG4gIHN1YkhvdXJzLFxuICBzdWJEYXlzLFxufSBmcm9tICdkYXRlLWZucyc7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBvZmZzZXQgb2YgYSBJU08gZGF0ZSBzdHJpbmcuIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb2Zmc2V0IGlzIGlnbm9yZWQuXG4gKiBJZiBpdCBpcyBub3QgcmVtb3ZlZCB0aGUgdGltZSB3b3VsZCBiZSBjb252ZXJ0ZWQgdG8gdGhlIGJyb3dzZXJzIGxvY2FsIHRpbWUuXG4gKiBFeGFtcGxlOiBcIjIwMjItMDgtMjlUMDk6MzA6MDArMDM6MDBcIiB3b3VsZCBiZSBjaGFuZ2VkIHRvIFwiMjAyMi0wOC0yOVQwODozMDowMCswMjowMFwiIC0tPiBub3QgdGhlIGRlc2lyZWQgb3V0Y29tZSwgYXMgd2Ugd2FudCB0byB1c2UgdGhlIHRpbWUgaW4gdGhlIHRpbWV6b25lIGFuZCBub3QgdGhlIGxvY2FsIHRpbWUuXG4gKlxuICogQWZ0ZXIgdGhlIG9mZnNldCBpcyByZW1vdmVkIGEgbmV3IGRhdGUgaXMgY3JlYXRlZCBpbiB0aGUgYnJvd3NlcnMgbG9jYWwgdGltZS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHRpbWUgb2YgdGhlIElTTyBkYXRlIHN0cmluZyBpcyBkaXNwbGF5ZWQgYW5kIG5vdCBhIGNvbnZlcnRlZCB0aW1lLlxuICogRXhhbXBsZTogXCIyMDIyLTA4LTI5VDA5OjMwOjAwKzAzOjAwXCIgd291bGQgYmUgY2hhbmdlZCB0byBcIjIwMjItMDgtMjlUMDk6MzA6MDArMDI6MDBcIiAtLT4gZGVzaXJlZCBvdXRjb21lXG4gKiBBdHRlbnRpb246IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY29udmVydCB0aGUgdGltZSB0byB0aGUgY29ycmVjdCB0aW1lIGluIHRoZSBsb2NhbCB0aW1lem9uZS4gSXQgaXMgYSB3b3JrYXJvdW5kIHRvIG1ha2Ugc3VyZSwgdGhhdCB0aGUgZ2l2ZW4gdGltZSBpcyBkaXNwbGF5ZWQgd2l0aG91dCBiZWluZyBjb252ZXJ0ZWQuXG4gKlxuICogT2Zmc2V0OiBEaWZmZXJlbmNlIGJldHdlZW4gdGhlIHRpbWV6b25lIGFuZCBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZS5cbiAqXG4gKiBAcGFyYW0gaXNvVGltZSAtIHRoZSBpc28gdGltZSB3aXRoIHRoZSB0aW1lem9uZSBvZmZzZXRcbiAqIEByZXR1cm5zIGEgbmV3IGRhdGUgd2l0aCB0aGUgbG9jYWwgdGltZXpvbmUgd2l0aCB0aGUgbG9jYWwgb2Zmc2V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGlzb1RpbWU/OiBzdHJpbmcpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFpc29UaW1lKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBwYXJzZWREYXRlID0gcGFyc2VJU08oaXNvVGltZSk7XG5cbiAgaWYgKCFpc1ZhbGlkKHBhcnNlZERhdGUpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChpc29UaW1lLmluY2x1ZGVzKCdaJykpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoaXNvVGltZS5yZXBsYWNlKCdaJywgJycpKTtcbiAgfVxuXG4gIGlmIChpc29UaW1lLmluY2x1ZGVzKCdUJykpIHtcbiAgICBjb25zdCBkYXRlVGltZSA9IGlzb1RpbWUuc3BsaXQoJ1QnKTtcblxuICAgIGlmIChkYXRlVGltZVsxXSAmJiAoZGF0ZVRpbWVbMV0uaW5jbHVkZXMoJysnKSB8fCBkYXRlVGltZVsxXS5pbmNsdWRlcygnLScpKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGAke2RhdGVUaW1lWzBdfVQke2RhdGVUaW1lWzFdLnNwbGl0KC9bKy1dLylbMF19YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgRGF0ZShpc29UaW1lKTtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGEgZHVyYXRpb24gbnVtYmVyIHRvIGRhdGUgc3RyaW5nIHdpdGggc3BlY2lmaWMgZm9ybWF0XG4gKlxuICogQHBhcmFtIGR1cmF0aW9uIC0gZHVyYXRpb24gaW4gbWludXRlc1xuICogQHBhcmFtIGN1cnJlbnRMYW5ndWFnZSAtIGN1cnJlbnRMYW5ndWFnZVxuICogQHJldHVybnMgYW4gT2JqZWN0IHdpdGggdHdvIHN0cmluZ3MgaW4gdGhlIGZvcm1hdCBcImRkIGhoIG1tXCIgKHNob3J0KSBhbiBcInggRGF5KHMpIHggSG91cihzKSB4IE1pbnV0ZShzKSAobG9uZylcIlxuICogKi9cblxuZXhwb3J0IGNvbnN0IGR1cmF0aW9uVG9UaW1lID0gKFxuICBkdXJhdGlvbjogbnVtYmVyLFxuICBjdXJyZW50TGFuZ3VhZ2U/OiBzdHJpbmcsXG4pOiB7IHNob3J0OiBzdHJpbmc7IGxvbmc6IHN0cmluZyB9ID0+IHtcbiAgY29uc3Qgc2hvcnQgPSBbXTtcbiAgY29uc3QgbG9uZyA9IFtdO1xuXG4gIGNvbnN0IG5vdyA9IDA7XG4gIGxldCBmdXR1cmUgPSBhZGRNaW51dGVzKG5vdywgZHVyYXRpb24pO1xuXG4gIGNvbnN0IGRheXMgPSBkaWZmZXJlbmNlSW5EYXlzKGZ1dHVyZSwgbm93KTtcbiAgaWYgKGRheXMgPiAwKSB7XG4gICAgc2hvcnQucHVzaChgJHtkYXlzfSBkYCk7XG4gICAgaWYgKGN1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgbG9uZy5wdXNoKFxuICAgICAgICBgJHtkYXlzfSAke1xuICAgICAgICAgIGRheXMgPiAxXG4gICAgICAgICAgICA/IGkxOG5EdXJhdGlvbkRheS5tdWx0aXBsZS5sb25nW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgICAgIDogaTE4bkR1cmF0aW9uRGF5LnNpbmdsZS5sb25nW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBmdXR1cmUgPSBzdWJEYXlzKGZ1dHVyZSwgZGF5cyk7XG4gIH1cblxuICBjb25zdCBob3VycyA9IGRpZmZlcmVuY2VJbkhvdXJzKGZ1dHVyZSwgbm93KTtcbiAgaWYgKGhvdXJzID4gMCkge1xuICAgIHNob3J0LnB1c2goYCR7aG91cnN9IGhgKTtcbiAgICBpZiAoY3VycmVudExhbmd1YWdlKSB7XG4gICAgICBsb25nLnB1c2goXG4gICAgICAgIGAke2hvdXJzfSAke1xuICAgICAgICAgIGhvdXJzID4gMVxuICAgICAgICAgICAgPyBpMThuRHVyYXRpb25Ib3VyLm11bHRpcGxlLmxvbmdbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgICAgOiBpMThuRHVyYXRpb25Ib3VyLnNpbmdsZS5sb25nW2N1cnJlbnRMYW5ndWFnZV1cbiAgICAgICAgfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBmdXR1cmUgPSBzdWJIb3VycyhmdXR1cmUsIGhvdXJzKTtcbiAgfVxuXG4gIGNvbnN0IG1pbnV0ZXMgPSBkaWZmZXJlbmNlSW5NaW51dGVzKGZ1dHVyZSwgbm93KTtcbiAgaWYgKG1pbnV0ZXMgPiAwKSB7XG4gICAgc2hvcnQucHVzaChgJHttaW51dGVzfSBtaW5gKTtcbiAgICBpZiAoY3VycmVudExhbmd1YWdlKSB7XG4gICAgICBsb25nLnB1c2goXG4gICAgICAgIGAke21pbnV0ZXN9ICR7XG4gICAgICAgICAgbWludXRlcyA+IDFcbiAgICAgICAgICAgID8gaTE4bkR1cmF0aW9uTWludXRlLm11bHRpcGxlLmxvbmdbY3VycmVudExhbmd1YWdlXVxuICAgICAgICAgICAgOiBpMThuRHVyYXRpb25NaW51dGUuc2luZ2xlLmxvbmdbY3VycmVudExhbmd1YWdlXVxuICAgICAgICB9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzaG9ydDogc2hvcnQuam9pbignICcpLFxuICAgIGxvbmc6IGxvbmcuam9pbignICcpLFxuICB9O1xufTtcbiJdLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxLDIsMyw0LDUsNiw3XSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZCQSxTQUFnQixRQUFRLE1BQU0sUUFBUSxTQUFTO0NBQzdDLE1BQU0sUUFBUSxPQUFPLE1BQU0sU0FBUyxFQUFFO0NBQ3RDLElBQUksTUFBTSxNQUFNLEdBQUcsT0FBTyxjQUFjLFNBQVMsTUFBTSxNQUFNLEdBQUc7Q0FHaEUsSUFBSSxDQUFDLFFBQVEsT0FBTztDQUVwQixNQUFNLFFBQVEsTUFBTSxRQUFRLElBQUksTUFBTTtDQUN0QyxPQUFPO0FBQ1Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNUQSxTQUFnQixnQkFBZ0IsTUFBTSxRQUFRLFNBQVM7Q0FDckQsT0FBTyxjQUFjLFNBQVMsTUFBTSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksTUFBTTtBQUNsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0ZBLFNBQWdCLFNBQVMsTUFBTSxR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
|
|
@@ -107,4 +107,4 @@ function differenceInMinutes(dateLeft, dateRight, options) {
|
|
|
107
107
|
//#endregion
|
|
108
108
|
export { getRoundingMethod as n, addMinutes as r, differenceInMinutes as t };
|
|
109
109
|
|
|
110
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW5jZUluTWludXRlcy1CN19HVERxNy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkTWludXRlcy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9fbGliL2dldFJvdW5kaW5nTWV0aG9kLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5NaW51dGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pbGxpc2Vjb25kc0luTWludXRlIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZE1pbnV0ZXN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBhZGRNaW51dGVzXG4gKiBAY2F0ZWdvcnkgTWludXRlIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbnV0ZXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgbWludXRlcyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBtaW51dGVzIGFkZGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFkZCAzMCBtaW51dGVzIHRvIDEwIEp1bHkgMjAxNCAxMjowMDowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZE1pbnV0ZXMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCAwKSwgMzApXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjozMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTWludXRlcyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBfZGF0ZS5zZXRUaW1lKF9kYXRlLmdldFRpbWUoKSArIGFtb3VudCAqIG1pbGxpc2Vjb25kc0luTWludXRlKTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZE1pbnV0ZXM7XG4iLCJleHBvcnQgZnVuY3Rpb24gZ2V0Um91bmRpbmdNZXRob2QobWV0aG9kKSB7XG4gIHJldHVybiAobnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgcm91bmQgPSBtZXRob2QgPyBNYXRoW21ldGhvZF0gOiBNYXRoLnRydW5jO1xuICAgIGNvbnN0IHJlc3VsdCA9IHJvdW5kKG51bWJlcik7XG4gICAgLy8gUHJldmVudCBuZWdhdGl2ZSB6ZXJvXG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gMCA/
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW5jZUluTWludXRlcy1CN19HVERxNy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkTWludXRlcy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9fbGliL2dldFJvdW5kaW5nTWV0aG9kLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5NaW51dGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pbGxpc2Vjb25kc0luTWludXRlIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZE1pbnV0ZXN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBhZGRNaW51dGVzXG4gKiBAY2F0ZWdvcnkgTWludXRlIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbnV0ZXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgbWludXRlcyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBtaW51dGVzIGFkZGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFkZCAzMCBtaW51dGVzIHRvIDEwIEp1bHkgMjAxNCAxMjowMDowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZE1pbnV0ZXMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCAwKSwgMzApXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjozMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTWludXRlcyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBfZGF0ZS5zZXRUaW1lKF9kYXRlLmdldFRpbWUoKSArIGFtb3VudCAqIG1pbGxpc2Vjb25kc0luTWludXRlKTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZE1pbnV0ZXM7XG4iLCJleHBvcnQgZnVuY3Rpb24gZ2V0Um91bmRpbmdNZXRob2QobWV0aG9kKSB7XG4gIHJldHVybiAobnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgcm91bmQgPSBtZXRob2QgPyBNYXRoW21ldGhvZF0gOiBNYXRoLnRydW5jO1xuICAgIGNvbnN0IHJlc3VsdCA9IHJvdW5kKG51bWJlcik7XG4gICAgLy8gUHJldmVudCBuZWdhdGl2ZSB6ZXJvXG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gMCA/IDAgOiByZXN1bHQ7XG4gIH07XG59XG4iLCJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBNaWxsaXNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQHBhcmFtIGxhdGVyRGF0ZSAtIFRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0gZWFybGllckRhdGUgLSBUaGUgZWFybGllciBkYXRlXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWlsbGlzZWNvbmRzIGFyZSBiZXR3ZWVuXG4gKiAvLyAyIEp1bHkgMjAxNCAxMjozMDoyMC42MDAgYW5kIDIgSnVseSAyMDE0IDEyOjMwOjIxLjcwMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyhcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgMTIsIDMwLCAyMSwgNzAwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgMTIsIDMwLCAyMCwgNjAwKVxuICogKVxuICogLy89PiAxMTAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSkge1xuICByZXR1cm4gK3RvRGF0ZShsYXRlckRhdGUpIC0gK3RvRGF0ZShlYXJsaWVyRGF0ZSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzO1xuIiwiaW1wb3J0IHsgZ2V0Um91bmRpbmdNZXRob2QgfSBmcm9tIFwiLi9fbGliL2dldFJvdW5kaW5nTWV0aG9kLmpzXCI7XG5pbXBvcnQgeyBtaWxsaXNlY29uZHNJbk1pbnV0ZSB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5NaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluTWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBtaW51dGVzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBzaWduZWQgbnVtYmVyIG9mIGZ1bGwgKHJvdW5kZWQgdG93YXJkcyAwKSBtaW51dGVzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBkYXRlTGVmdCAtIFRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0gZGF0ZVJpZ2h0IC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgbWludXRlc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBtaW51dGVzIGFyZSBiZXR3ZWVuIDIgSnVseSAyMDE0IDEyOjA3OjU5IGFuZCAyIEp1bHkgMjAxNCAxMjoyMDowMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAyMCwgMCksXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCA3LCA1OSlcbiAqIClcbiAqIC8vPT4gMTJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWludXRlcyBhcmUgYmV0d2VlbiAxMDowMTo1OSBhbmQgMTA6MDA6MDBcbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gKiAgIG5ldyBEYXRlKDIwMDAsIDAsIDEsIDEwLCAwLCAwKSxcbiAqICAgbmV3IERhdGUoMjAwMCwgMCwgMSwgMTAsIDEsIDU5KVxuICogKVxuICogLy89PiAtMVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluTWludXRlcyhkYXRlTGVmdCwgZGF0ZVJpZ2h0LCBvcHRpb25zKSB7XG4gIGNvbnN0IGRpZmYgPVxuICAgIGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyhkYXRlTGVmdCwgZGF0ZVJpZ2h0KSAvIG1pbGxpc2Vjb25kc0luTWludXRlO1xuICByZXR1cm4gZ2V0Um91bmRpbmdNZXRob2Qob3B0aW9ucz8ucm91bmRpbmdNZXRob2QpKGRpZmYpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbk1pbnV0ZXM7XG4iXSwieF9nb29nbGVfaWdub3JlTGlzdCI6WzAsMSwyLDNdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkJBLFNBQWdCLFdBQVcsTUFBTSxRQUFRLFNBQVM7Q0FDaEQsTUFBTSxRQUFRLE9BQU8sTUFBTSxTQUFTLEVBQUU7Q0FDdEMsTUFBTSxRQUFRLE1BQU0sUUFBUSxJQUFJLFNBQVMsb0JBQW9CO0NBQzdELE9BQU87QUFDVDs7O0FDakNBLFNBQWdCLGtCQUFrQixRQUFRO0NBQ3hDLFFBQVEsV0FBVztFQUVqQixNQUFNLFVBRFEsU0FBUyxLQUFLLFVBQVUsS0FBSyxPQUN0QixNQUFNO0VBRTNCLE9BQU8sV0FBVyxJQUFJLElBQUk7Q0FDNUI7QUFDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2lCQSxTQUFnQix5QkFBeUIsV0FBVyxhQUFhO0NBQy9ELE9BQU8sQ0FBQyxPQUFPLFNBQVMsSUFBSSxDQUFDLE9BQU8sV0FBVztBQUNqRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWUEsU0FBZ0Isb0JBQW9CLFVBQVUsV0FBVyxTQUFTO0NBQ2hFLE1BQU0sT0FDSix5QkFBeUIsVUFBVSxTQUFTLElBQUk7Q0FDbEQsT0FBTyxrQkFBa0IsU0FBUyxjQUFjLEVBQUUsSUFBSTtBQUN4RCJ9
|