@elderbyte/ngx-starter 17.8.0 → 17.9.0
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/esm2022/lib/common/time/interval-coerce.mjs +30 -0
- package/esm2022/lib/common/time/interval.mjs +2 -2
- package/esm2022/lib/common/time/public_api.mjs +2 -1
- package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +41 -0
- package/esm2022/lib/components/overlays/elder-overlay.component.mjs +21 -3
- package/esm2022/lib/components/overlays/elder-overlay.module.mjs +2 -1
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +9 -30
- package/fesm2022/elderbyte-ngx-starter.mjs +95 -33
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/time/interval-coerce.d.ts +3 -0
- package/lib/common/time/public_api.d.ts +1 -0
- package/lib/components/overlays/elder-overlay-ref.d.ts +27 -0
- package/lib/components/overlays/elder-overlay.module.d.ts +1 -0
- package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +0 -2
- package/package.json +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Interval } from './interval';
|
|
2
|
+
export function coerceInterval(value) {
|
|
3
|
+
if (value) {
|
|
4
|
+
if (value instanceof Interval) {
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
7
|
+
else if (((typeof value) === 'string') && value.length > 0) {
|
|
8
|
+
return Interval.parse(value);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
this.logger.warn('Unsupported value that cant be converted to Interval: "' + value + '"');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
export function coerceIntervalIsoStr(value) {
|
|
17
|
+
if (value) {
|
|
18
|
+
if (value instanceof Interval) {
|
|
19
|
+
return value.toInstantString();
|
|
20
|
+
}
|
|
21
|
+
else if ((typeof value) === 'string') {
|
|
22
|
+
return coerceInterval(value)?.toInstantString();
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.logger.warn('Unsupported value that cant be converted to Iso Interval Str: "' + value + '"');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtY29lcmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvaW50ZXJ2YWwtY29lcmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQWlCLE1BQU0sWUFBWSxDQUFDO0FBR3BELE1BQU0sVUFBVSxjQUFjLENBQzVCLEtBQW1EO0lBRW5ELElBQUksS0FBSyxFQUFFO1FBQ1QsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFO1lBQzdCLE9BQU8sS0FBaUIsQ0FBQztTQUMxQjthQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEtBQUssUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDNUQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5REFBeUQsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUE7U0FDMUY7S0FDRjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLEtBQW1EO0lBRW5ELElBQUksS0FBSyxFQUFFO1FBQ1QsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ3RDLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDO1NBQ2pEO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpRUFBaUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUE7U0FDbEc7S0FDRjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ludGVydmFsLCBJc29JbnRlcnZhbFN0cn0gZnJvbSAnLi9pbnRlcnZhbCc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUludGVydmFsKFxuICB2YWx1ZTogSW50ZXJ2YWwgfCBJc29JbnRlcnZhbFN0ciB8IHVuZGVmaW5lZCB8IG51bGxcbik6IEludGVydmFsIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSW50ZXJ2YWwpIHtcbiAgICAgIHJldHVybiB2YWx1ZSBhcyBJbnRlcnZhbDtcbiAgICB9IGVsc2UgaWYgKCgodHlwZW9mIHZhbHVlKSA9PT0gJ3N0cmluZycpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5wYXJzZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ1Vuc3VwcG9ydGVkIHZhbHVlIHRoYXQgY2FudCBiZSBjb252ZXJ0ZWQgdG8gSW50ZXJ2YWw6IFwiJyArIHZhbHVlICsgJ1wiJylcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUludGVydmFsSXNvU3RyKFxuICB2YWx1ZTogSW50ZXJ2YWwgfCBJc29JbnRlcnZhbFN0ciB8IHVuZGVmaW5lZCB8IG51bGxcbik6IElzb0ludGVydmFsU3RyIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSW50ZXJ2YWwpIHtcbiAgICAgIHJldHVybiB2YWx1ZS50b0luc3RhbnRTdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKCh0eXBlb2YgdmFsdWUpID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGNvZXJjZUludGVydmFsKHZhbHVlKT8udG9JbnN0YW50U3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ1Vuc3VwcG9ydGVkIHZhbHVlIHRoYXQgY2FudCBiZSBjb252ZXJ0ZWQgdG8gSXNvIEludGVydmFsIFN0cjogXCInICsgdmFsdWUgKyAnXCInKVxuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -26,7 +26,7 @@ export class Interval {
|
|
|
26
26
|
static parse(iso) {
|
|
27
27
|
const parts = iso.split('/');
|
|
28
28
|
if (parts.length !== 2) {
|
|
29
|
-
throw new Error('The given string is not a valid iso interval: ' + iso);
|
|
29
|
+
throw new Error('The given string is not a valid iso interval: "' + iso + '"');
|
|
30
30
|
}
|
|
31
31
|
const start = parts[0] ? Instant.parse(parts[0]) : null;
|
|
32
32
|
const endStr = parts[1];
|
|
@@ -436,4 +436,4 @@ export class Interval {
|
|
|
436
436
|
return this.start?.compareTo(other.start);
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdGltZS9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVFuRCxNQUFNLE9BQU8sUUFBUTtJQUluQjs7OztnRkFJNEU7SUFFNUUsWUFDa0IsS0FBYyxFQUNkLEdBQVk7UUFEWixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBUztRQVZiLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFXbEUsQ0FBQztJQUVMOzs7O2dGQUk0RTtJQUU1RTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsR0FBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDekU7UUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUM7U0FDdkU7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FBQyxLQUFlO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIEluc3RhbnQsIExvY2FsRGF0ZSwgbmF0aXZlSnMsIFBlcmlvZCwgVGVtcG9yYWxBbW91bnQsIFpvbmVJZH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5pbXBvcnQge1RpbWVVdGlsfSBmcm9tICcuL3RpbWUtdXRpbCc7XG5pbXBvcnQge1BlcmlvZER1cmF0aW9ufSBmcm9tICcuL3BlcmlvZC1kdXJhdGlvbic7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIElTTy04NjAxIGludGVydmFsIHN0cmluZy5cbiAqIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gKi9cbmV4cG9ydCB0eXBlIElzb0ludGVydmFsU3RyID0gc3RyaW5nO1xuXG5leHBvcnQgY2xhc3MgSW50ZXJ2YWwge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhcnQ6IEluc3RhbnQsXG4gICAgcHVibGljIHJlYWRvbmx5IGVuZDogSW5zdGFudFxuICApIHsgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgQnVpbGRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBQYXJzZXMgYW4gSVNPLTg2MDEgaW50ZXJ2YWwgc3RyaW5nLlxuICAgKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICAgKiBAcGFyYW0gaXNvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKFxuICAgIGlzbzogSXNvSW50ZXJ2YWxTdHJcbiAgKTogSW50ZXJ2YWwge1xuICAgIGNvbnN0IHBhcnRzID0gaXNvLnNwbGl0KCcvJyk7XG5cbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBnaXZlbiBzdHJpbmcgaXMgbm90IGEgdmFsaWQgaXNvIGludGVydmFsOiAnICsgaXNvKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IHBhcnRzWzBdID8gSW5zdGFudC5wYXJzZShwYXJ0c1swXSkgOiBudWxsO1xuXG4gICAgY29uc3QgZW5kU3RyID0gcGFydHNbMV07XG4gICAgLy8gVGhlICdlbmQnIHBhcnQgY2FuIGVpdGhlciBiZSBhbiBpbnN0YW50IG9yIGEgZHVyYXRpb24gaW4gaXNvIGZvcm1hdFxuICAgIGlmIChzdGFydCAmJiBlbmRTdHIgJiYgZW5kU3RyLnN0YXJ0c1dpdGgoJ1AnKSB8fCBlbmRTdHIuc3RhcnRzV2l0aCgnLVAnKSkge1xuICAgICAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5wYXJzZShlbmRTdHIpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mU3RhcnRBbmRPZmZzZXQoXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICBkdXJhdGlvblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZW5kU3RyID8gSW5zdGFudC5wYXJzZShlbmRTdHIpIDogbnVsbFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHllc3RlcmRheSh6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkoXG4gICAgICBMb2NhbERhdGUubm93KCkubWludXNEYXlzKDEpLFxuICAgICAgem9uZUlkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgIHRvbW9ycm93KHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShcbiAgICAgIExvY2FsRGF0ZS5ub3coKS5wbHVzRGF5cygxKSxcbiAgICAgIHpvbmVJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvZGF5KHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShMb2NhbERhdGUubm93KCksIHpvbmVJZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEludGVydmFsIGZyb20gYSBEYXRlIGJ5IHNwcmVhZGluZyBpdCB0byB0aGUgYmVnaW4gYW5kIGVuZCBvZiBpdHMgZGF5LlxuICAgKiBAcGFyYW0gZGF0ZSBEYXRlIHRvIHNwcmVhZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZkRheURhdGUoZGF0ZTogRGF0ZSk6IEludGVydmFsIHtcbiAgICBjb25zdCBsb2NhbERhdGUgPSBMb2NhbERhdGUuZnJvbShuYXRpdmVKcyhkYXRlKSk7XG4gICAgcmV0dXJuIEludGVydmFsLm9mRGF5KGxvY2FsRGF0ZSwgWm9uZUlkLnN5c3RlbURlZmF1bHQoKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mRGF5KGRheTogTG9jYWxEYXRlLCB6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuYmV0d2VlbkRheXMoXG4gICAgICBkYXksXG4gICAgICBkYXkucGx1c0RheXMoMSksXG4gICAgICB6b25lSWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiZXR3ZWVuRGF5cyhcbiAgICBzdGFydERheUluY2x1c2l2ZTogTG9jYWxEYXRlLFxuICAgIGVuZERheUV4Y2x1c2l2ZTogTG9jYWxEYXRlLFxuICAgIHpvbmVJZDogWm9uZUlkXG4gICkge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHN0YXJ0RGF5SW5jbHVzaXZlLmF0U3RhcnRPZkRheSh6b25lSWQpLnRvSW5zdGFudCgpLFxuICAgICAgZW5kRGF5RXhjbHVzaXZlLmF0U3RhcnRPZkRheSh6b25lSWQpLnRvSW5zdGFudCgpXG4gICAgKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnRlcnZhbCB3aXRoIHRoZSBnaXZlbiBzdGFydCB0aW1lIHBvaW50XG4gICAqIGFuZCBhIG9mZnNldCBmcm9tIHRoZSBzdGFydC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHlvdSBzaG91bGQgdXNlIFBlcmlvZCBmb3IgZGF5cyB0byBhY2NvdW50IGZvciB6b25lIHNwZWNpZmljXG4gICAqIHRoaW5ncyBsaWtlIGRheWxpZ2h0IHNhdmluZy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0SW5jbHVzaXZlXG4gICAqIEBwYXJhbSBvZmZzZXRFeGNsdXNpdmUgQSBQZXJpb2Qgb3IgRHVyYXRpb24gb2Zmc2V0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZlN0YXJ0QW5kT2Zmc2V0KHN0YXJ0SW5jbHVzaXZlOiBJbnN0YW50LCBvZmZzZXRFeGNsdXNpdmU6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHN0YXJ0SW5jbHVzaXZlLFxuICAgICAgc3RhcnRJbmNsdXNpdmUucGx1cyhvZmZzZXRFeGNsdXNpdmUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgc3RhcnRJbmNsdXNpdmU6IEluc3RhbnQsXG4gICAgZW5kRXhjbHVzaXZlOiBJbnN0YW50XG4gICk6IEludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IEludGVydmFsKFxuICAgICAgc3RhcnRJbmNsdXNpdmUsXG4gICAgICBlbmRFeGNsdXNpdmVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZkRhdGUoXG4gICAgc3RhcnRJbmNsdXNpdmU6IERhdGUgfCBzdHJpbmcsXG4gICAgZW5kRXhjbHVzaXZlOiBEYXRlIHwgc3RyaW5nXG4gICk6IEludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IEludGVydmFsKFxuICAgICAgVGltZVV0aWwuaW5zdGFudChzdGFydEluY2x1c2l2ZSksXG4gICAgICBUaW1lVXRpbC5pbnN0YW50KGVuZEV4Y2x1c2l2ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgcmFuZ2UgaXMgZW1wdHkuXG4gICAqIDxwPlxuICAgKiBBbiBlbXB0eSByYW5nZSBvY2N1cnMgd2hlbiB0aGUgc3RhcnQgZGF0ZSBlcXVhbHMgdGhlIGluY2x1c2l2ZSBlbmQgZGF0ZS5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSByYW5nZSBpcyBlbXB0eVxuICAgKi9cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyh0aGlzLmVuZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBzdGFydCBvZiB0aGUgaW50ZXJ2YWwgaXMgdW5ib3VuZGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgc3RhcnQgaXMgdW5ib3VuZGVkXG4gICAqL1xuICBwdWJsaWMgaXNVbmJvdW5kZWRTdGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uZXF1YWxzKEluc3RhbnQuTUlOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwgaXMgdW5ib3VuZGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgZW5kIGlzIHVuYm91bmRlZFxuICAgKi9cbiAgcHVibGljIGlzVW5ib3VuZGVkRW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuZD8uZXF1YWxzKEluc3RhbnQuTUFYKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB0b0R1cmF0aW9uKCk6IER1cmF0aW9uIHtcbiAgICBpZighdGhpcy5zdGFydCB8fCAhdGhpcy5lbmQpIHJldHVybiBEdXJhdGlvbi5aRVJPO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5iZXR3ZWVuKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvcignQ291bGQgbm90IGNvbnZlcnQgdG8gRHVyYXRpb24hIEVycm9yOiAnLGUgKTtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5aRVJPO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b1BlcmlvZER1cmF0aW9uKHpvbmU6IFpvbmVJZCk6IFBlcmlvZER1cmF0aW9uIHtcbiAgICBpZighdGhpcy5zdGFydCB8fCAhdGhpcy5lbmQpIHJldHVybiBQZXJpb2REdXJhdGlvbi56ZXJvKCk7XG5cbiAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24uYmV0d2VlbihcbiAgICAgIHRoaXMuc3RhcnQ/LmF0Wm9uZSh6b25lKSxcbiAgICAgIHRoaXMuZW5kPy5hdFpvbmUoem9uZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCk6IElzb0ludGVydmFsU3RyIHtcbiAgICByZXR1cm4gdGhpcy50b0R1cmF0aW9uU3RyaW5nKCk7XG4gIH1cblxuICBwdWJsaWMgdG9JbnN0YW50U3RyaW5nKCk6IElzb0ludGVydmFsU3RyIHtcbiAgICBsZXQgaW5zdGFudFN0cmluZyA9ICcnO1xuICAgIGlmICh0aGlzLnN0YXJ0KSB7XG4gICAgICBpbnN0YW50U3RyaW5nID0gaW5zdGFudFN0cmluZyArIHRoaXMuc3RhcnQudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgaW5zdGFudFN0cmluZyA9IGluc3RhbnRTdHJpbmcgKyAnLyc7XG4gICAgaWYgKHRoaXMuZW5kKSB7XG4gICAgICBpbnN0YW50U3RyaW5nID0gaW5zdGFudFN0cmluZyArIHRoaXMuZW5kLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW50U3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHRvRHVyYXRpb25TdHJpbmcoKTogSXNvSW50ZXJ2YWxTdHIge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py50b1N0cmluZygpICsgJy8nICsgdGhpcy50b0R1cmF0aW9uKCkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgTW9kaWZpY2F0aW9uIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGlzIHJhbmdlIHdpdGggdGhlIHNwZWNpZmllZCBzdGFydCBpbnN0YW50LlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnQgIHRoZSBzdGFydCBpbnN0YW50IGZvciB0aGUgbmV3IGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIGFuIGludGVydmFsIHdpdGggdGhlIGVuZCBmcm9tIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgc3RhcnRcbiAgICogQHRocm93cyBEYXRlVGltZUV4Y2VwdGlvbiBpZiB0aGUgcmVzdWx0aW5nIGludGVydmFsIGhhcyBlbmQgYmVmb3JlIHN0YXJ0XG4gICAqL1xuICBwdWJsaWMgd2l0aFN0YXJ0KHN0YXJ0OiBJbnN0YW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihzdGFydCwgdGhpcy5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb3B5IG9mIHRoaXMgcmFuZ2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGVuZCBpbnN0YW50LlxuICAgKlxuICAgKiBAcGFyYW0gZW5kICB0aGUgZW5kIGluc3RhbnQgZm9yIHRoZSBuZXcgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gYW4gaW50ZXJ2YWwgd2l0aCB0aGUgc3RhcnQgZnJvbSB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGVuZFxuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSByZXN1bHRpbmcgaW50ZXJ2YWwgaGFzIGVuZCBiZWZvcmUgc3RhcnRcbiAgICovXG4gIHB1YmxpYyB3aXRoRW5kKGVuZDogSW5zdGFudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YodGhpcy5zdGFydCwgZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgZmluZHMgdGhlIGludGVyc2VjdGlvbiBvZiB0d28gaW50ZXJ2YWxzLlxuICAgKiBUaGlzIHRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIHR3byBpbnRlcnZhbHMgYXJlIG5vdCB7QGxpbmtwbGFpbiAjaXNDb25uZWN0ZWQoSW50ZXJ2YWwpIGNvbm5lY3RlZH0uXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsIHRvIGNoZWNrIGZvciwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB0d28gaW50ZXJ2YWxzXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIGludGVydmFscyBkbyBub3QgY29ubmVjdFxuICAgKi9cbiAgcHVibGljIGludGVyc2VjdGlvbihvdGhlcjogSW50ZXJ2YWwpOiBJbnRlcnZhbCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQob3RoZXIpID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcnZhbHMgZG8gbm90IGNvbm5lY3Q6ICcgKyB0aGlzICsgJyBhbmQgJyArIG90aGVyKTtcbiAgICB9XG4gICAgY29uc3QgY21wU3RhcnQgPSB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpO1xuICAgIGNvbnN0IGNtcEVuZCA9IHRoaXMuZW5kPy5jb21wYXJlVG8ob3RoZXIuZW5kKTtcbiAgICBpZiAoY21wU3RhcnQgPj0gMCAmJiBjbXBFbmQgPD0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmIChjbXBTdGFydCA8PSAwICYmIGNtcEVuZCA+PSAwKSB7XG4gICAgICByZXR1cm4gb3RoZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyB0aGlzLnN0YXJ0IDogb3RoZXIuc3RhcnQpO1xuICAgICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gdGhpcy5lbmQgOiBvdGhlci5lbmQpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKG5ld1N0YXJ0LCBuZXdFbmQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSB1bmlvbiBvZiB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhpcyBmaW5kcyB0aGUgdW5pb24gb2YgdHdvIGludGVydmFscy5cbiAgICogVGhpcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGFyZSBub3Qge0BsaW5rcGxhaW4gI2lzQ29ubmVjdGVkKEludGVydmFsKSBjb25uZWN0ZWR9LlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgaXMgdGhlIHVuaW9uIG9mIHRoZSB0d28gaW50ZXJ2YWxzXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIGludGVydmFscyBkbyBub3QgY29ubmVjdFxuICAgKi9cbiAgcHVibGljIHVuaW9uKG90aGVyOiBJbnRlcnZhbCk6IEludGVydmFsIHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZChvdGhlcikgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVydmFscyBkbyBub3QgY29ubmVjdDogJyArIHRoaXMgKyAnIGFuZCAnICsgb3RoZXIpO1xuICAgIH1cbiAgICBjb25zdCBjbXBTdGFydCA9IHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gICAgY29uc3QgY21wRW5kID0gdGhpcy5lbmQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpO1xuICAgIGlmIChjbXBTdGFydCA+PSAwICYmIGNtcEVuZCA8PSAwKSB7XG4gICAgICByZXR1cm4gb3RoZXI7XG4gICAgfSBlbHNlIGlmIChjbXBTdGFydCA8PSAwICYmIGNtcEVuZCA+PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3U3RhcnQgPSAoY21wU3RhcnQgPj0gMCA/IG90aGVyLnN0YXJ0IDogdGhpcy5zdGFydCk7XG4gICAgICBjb25zdCBuZXdFbmQgPSAoY21wRW5kIDw9IDAgPyBvdGhlci5lbmQgOiB0aGlzLmVuZCk7XG4gICAgICByZXR1cm4gSW50ZXJ2YWwub2YobmV3U3RhcnQsIG5ld0VuZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHNtYWxsZXN0IGludGVydmFsIHRoYXQgZW5jbG9zZXMgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2Qgd2lsbCB7QGxpbmtwbGFpbiAjZW5jbG9zZXMoSW50ZXJ2YWwpIGVuY2xvc2V9XG4gICAqIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsIHRvIGNoZWNrIGZvciwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgaW50ZXJ2YWwgdGhhdCBzcGFucyB0aGUgdHdvIGludGVydmFsc1xuICAgKi9cbiAgcHVibGljIHNwYW4ob3RoZXI6IEludGVydmFsKTogSW50ZXJ2YWwge1xuICAgIGNvbnN0IGNtcFN0YXJ0ID0gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgICBjb25zdCBjbXBFbmQgPSB0aGlzLmVuZD8uY29tcGFyZVRvKG90aGVyLmVuZCk7XG4gICAgY29uc3QgbmV3U3RhcnQgPSAoY21wU3RhcnQgPj0gMCA/IG90aGVyLnN0YXJ0IDogdGhpcy5zdGFydCk7XG4gICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gb3RoZXIuZW5kIDogdGhpcy5lbmQpO1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihuZXdTdGFydCwgbmV3RW5kKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNoaWZ0IHRoZSB3aG9sZSBpbnRlcnZhbCBieSB0aGUgZ2l2ZW4gZGF5cyBwZXJpb2QuXG4gICAqIEBwYXJhbSBkYXlzXG4gICAqL1xuICBwdWJsaWMgc2hpZnREYXlzKGRheXM6IG51bWJlcik6IEludGVydmFsIHtcbiAgICByZXR1cm4gdGhpcy5zaGlmdChQZXJpb2Qub2ZEYXlzKGRheXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGlmdCB0aGUgd2hvbGUgaW50ZXJ2YWwgYnkgdGhlIGdpdmVuIHRlbXBvcmFsIGFtb3VudC5cbiAgICogTm90ZSB0aGF0IG9ubHkgUGVyaW9kIHdpbGwgYWNjb3VudCBmb3Igem9uZSBzcGVjaWZpYyB0aGluZ3Mgc3VjaCBhcyBkYXlsaWdodCBzYXZpbmdzLlxuICAgKiBVc2UgRHVyYXRpb24gb25seSBpZiB5b3UgYXJlIGJlbG93IGRheXMuXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICovXG4gIHB1YmxpYyBzaGlmdChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQ/LnBsdXMob2Zmc2V0KSxcbiAgICAgIHRoaXMuZW5kPy5wbHVzKG9mZnNldClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vdmVTdGFydChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQ/LnBsdXMob2Zmc2V0KSxcbiAgICAgIHRoaXMuZW5kXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlRW5kKG9mZnNldDogVGVtcG9yYWxBbW91bnQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgdGhpcy5zdGFydCxcbiAgICAgIHRoaXMuZW5kPy5wbHVzKG9mZnNldClcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVydmFsIFF1ZXJ5IEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBUaW1lRnJhbWUgb3ZlcmxhcHMgd2l0aCB0aGlzIG9uZS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyIFRpbWVGcmFtZSB0byBjaGVjayBhZ2FpbnN0XG4gICAqIEByZXR1cm4gUmV0dXJucyB7QGNvZGUgdHJ1ZX0gaWYgdGhlIHR3byBjYW5kaWRhdGVzIG92ZXJsYXAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIG92ZXJsYXBzKG90aGVyOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvdGhlci5lcXVhbHModGhpcykgfHwgKHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpIDwgMCAmJiBvdGhlci5zdGFydD8uY29tcGFyZVRvKHRoaXMuZW5kKSA8IDApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpdCB0aGUgZ2l2ZW4gbG9jYWxEYXRlIG92ZXJsYXBzIHdpdGggdGhlIGdpdmVuIFRpbWVGcmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHRpbWVGcmFtZSBUaW1lRnJhbWUgdG8gY2hlY2sgYWdhaW5zdFxuICAgKiBAcGFyYW0gbG9jYWxEYXRlIExvY2FsRGF0ZSB0byBjaGVja1xuICAgKi9cbiAgcHVibGljIG92ZXJsYXBzV2l0aExvY2FsRGF0ZShcbiAgICBsb2NhbERhdGU6IERhdGVcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxhcHMoSW50ZXJ2YWwub2ZEYXlEYXRlKGxvY2FsRGF0ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoaXMgY2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgaW5zdGFudCBpcyB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGlzIGludGVydmFsLlxuICAgKiBJZiB0aGlzIHJhbmdlIGhhcyBhbiB1bmJvdW5kZWQgc3RhcnQgdGhlbiB7QGNvZGUgY29udGFpbnMoSW5zdGFudCNNSU4pfSByZXR1cm5zIHRydWUuXG4gICAqIElmIHRoaXMgcmFuZ2UgaGFzIGFuIHVuYm91bmRlZCBlbmQgdGhlbiB7QGNvZGUgY29udGFpbnMoSW5zdGFudCNNQVgpfSByZXR1cm5zIHRydWUuXG4gICAqIElmIHRoaXMgcmFuZ2UgaXMgZW1wdHkgdGhlbiB0aGlzIG1ldGhvZCBhbHdheXMgcmV0dXJucyBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBpbnN0YW50LCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBjb250YWlucyB0aGUgaW5zdGFudFxuICAgKi9cbiAgcHVibGljICBjb250YWlucyhpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8PSAwICYmIChpbnN0YW50LmNvbXBhcmVUbyh0aGlzLmVuZCkgPCAwIHx8IHRoaXMuaXNVbmJvdW5kZWRFbmQoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgZW5jbG9zZXMgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgY2hlY2tzIGlmIHRoZSBib3VuZHMgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbCBhcmUgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhpcyBpbnRlcnZhbC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgZW5jbG9zZXMgaXRzZWxmLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgY29udGFpbnMgdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgZW5jbG9zZXMob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCkgPD0gMCAmJiBvdGhlci5lbmQ/LmNvbXBhcmVUbyh0aGlzLmVuZCkgPD0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBhYnV0cyAoaXMgbmV4dCB0byBvciBoYXMgYSBjb21tb24gYm91bmRhcnkgd2l0aCkgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGUgZW5kIG9mIHRoaXMgaW50ZXJ2YWwgaXMgdGhlIHN0YXJ0IG9mIHRoZSBvdGhlciwgb3IgdmljZSB2ZXJzYS5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgZG9lcyBub3QgYWJ1dCBpdHNlbGYuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBhYnV0cyB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBhYnV0cyhvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmVxdWFscyhvdGhlci5zdGFydCkgIT09IHRoaXMuc3RhcnQ/LmVxdWFscyhvdGhlci5lbmQpOyAvLyAhPT0gbWVhbnMgWE9SXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgY29ubmVjdGVkIHRvIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhlIHR3byBpbnRlcnZhbHMgaGF2ZSBhbiBlbmNsb3NlZCBpbnRlcnZhbCBpbiBjb21tb24sIGV2ZW4gaWYgdGhhdCBpbnRlcnZhbCBpcyBlbXB0eS5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgaXMgY29ubmVjdGVkIHRvIGl0c2VsZi5cbiAgICogPHA+XG4gICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB7QGNvZGUgKG92ZXJsYXBzKG90aGVyKSB8fCBhYnV0cyhvdGhlcikpfS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGludGVydmFsIGlzIGNvbm5lY3RlZCB0byB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBpc0Nvbm5lY3RlZChvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcXVhbHMob3RoZXIpIHx8ICh0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuZW5kKSA8PSAwICYmIG90aGVyLnN0YXJ0Py5jb21wYXJlVG8odGhpcy5lbmQpIDw9IDApO1xuICB9XG5cbiAgLy8gLS0tXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgc3RhcnRzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBvdGhlciBpbnN0YW50IHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RhcnQgb2YgdGhpcyBpbnRlcnZhbCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyBpc0FmdGVySW5zdGFudChpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA+IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgZW5kcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50LlxuICAgKiBTaW5jZSBpbnRlcnZhbHMgZG8gbm90IGluY2x1ZGUgdGhlaXIgZW5kIHBvaW50cywgdGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIHRoZVxuICAgKiBpbnN0YW50IGVxdWFscyB0aGUgZW5kIG9mIHRoZSBpbnRlcnZhbC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBvdGhlciBpbnN0YW50IHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RhcnQgb2YgdGhpcyBpbnRlcnZhbCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNCZWZvcmVJbnN0YW50KGluc3RhbnQ6IEluc3RhbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8PSAwICYmIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgc3RhcnRzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogaW5zdGFudCBlcXVhbHMgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnRlcnZhbCAgdGhlIG90aGVyIGludGVydmFsIHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGluc3RhbnQgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNBZnRlcihpbnRlcnZhbDogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uY29tcGFyZVRvKGludGVydmFsLmVuZCkgPj0gMCAmJiAhaW50ZXJ2YWwuZXF1YWxzKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhlIHJlc3VsdCBpcyB0cnVlIGlmIHRoaXMgaW5zdGFudCBlbmRzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogdHdvIGludGVydmFscyBhYnV0LlxuICAgKiBBbiBlbXB0eSBpbnRlcnZhbCBiZWhhdmVzIGFzIHRob3VnaCBpdCBpcyBhbiBpbnN0YW50IGZvciBjb21wYXJpc29uIHB1cnBvc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnN0YW50IGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyBpc0JlZm9yZShpbnRlcnZhbDogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmNvbXBhcmVUbyhpbnRlcnZhbC5zdGFydCkgPD0gMCAmJiAhaW50ZXJ2YWwuZXF1YWxzKHRoaXMpO1xuICB9XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXF1YWxpdHkgJiBIYXNoY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgZXF1YWwgdG8gYW5vdGhlciBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIENvbXBhcmVzIHRoaXMge0Bjb2RlIEludGVydmFsfSB3aXRoIGFub3RoZXIgZW5zdXJpbmcgdGhhdCB0aGUgdHdvIGluc3RhbnRzIGFyZSB0aGUgc2FtZS5cbiAgICogT25seSBvYmplY3RzIG9mIHR5cGUge0Bjb2RlIEludGVydmFsfSBhcmUgY29tcGFyZWQsIG90aGVyIHR5cGVzIHJldHVybiBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIG9iaiAgdGhlIG9iamVjdCB0byBjaGVjaywgbnVsbCByZXR1cm5zIGZhbHNlXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGVxdWFsIHRvIHRoZSBvdGhlciBpbnRlcnZhbFxuICAgKi9cbiAgcHVibGljIGVxdWFscyhvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzID09PSBvYmopIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgSW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IG90aGVyID0gPEludGVydmFsPiBvYmo7XG4gICAgICByZXR1cm4gdGhpcy5zdGFydD8uZXF1YWxzKG90aGVyLnN0YXJ0KSAmJiB0aGlzLmVuZD8uZXF1YWxzKG90aGVyLmVuZCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0aGlzIEludGVydmFsIHRvIHRoZSBnaXZlbiBJbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSBjb21wYXJpc29uIGlzIGJhc2VkIG9uIHRoZSB0aW1lLWxpbmUgcG9zaXRpb24gb2YgdGhlIGxvd2VyIGJvdW5kIGluc3RhbnRzIChJbnRlcnZhbCBzdGFydCkuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciB0aGUgb3RoZXIgSW50ZXJ2YWwgdG8gY29tcGFyZSB0bywgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgY29tcGFyYXRvciB2YWx1ZSwgbmVnYXRpdmUgaWYgbGVzcywgcG9zaXRpdmUgaWYgZ3JlYXRlclxuICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIG90aGVyIGlzIG51bGxcbiAgICovXG4gIHB1YmxpYyBjb21wYXJlVG8ob3RoZXI6IEludGVydmFsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
439
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdGltZS9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVFuRCxNQUFNLE9BQU8sUUFBUTtJQUluQjs7OztnRkFJNEU7SUFFNUUsWUFDa0IsS0FBYyxFQUNkLEdBQVk7UUFEWixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBUztRQVZiLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFXbEUsQ0FBQztJQUVMOzs7O2dGQUk0RTtJQUU1RTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsR0FBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2hGO1FBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFD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QUcsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxTQUFTLENBQUMsS0FBZTtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBJbnN0YW50LCBMb2NhbERhdGUsIG5hdGl2ZUpzLCBQZXJpb2QsIFRlbXBvcmFsQW1vdW50LCBab25lSWR9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi90aW1lLXV0aWwnO1xuaW1wb3J0IHtQZXJpb2REdXJhdGlvbn0gZnJvbSAnLi9wZXJpb2QtZHVyYXRpb24nO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJU08tODYwMSBpbnRlcnZhbCBzdHJpbmcuXG4gKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICovXG5leHBvcnQgdHlwZSBJc29JbnRlcnZhbFN0ciA9IHN0cmluZztcblxuZXhwb3J0IGNsYXNzIEludGVydmFsIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXJ0OiBJbnN0YW50LFxuICAgIHB1YmxpYyByZWFkb25seSBlbmQ6IEluc3RhbnRcbiAgKSB7IH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljIEJ1aWxkZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUGFyc2VzIGFuIElTTy04NjAxIGludGVydmFsIHN0cmluZy5cbiAgICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIGlzb1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZShcbiAgICBpc286IElzb0ludGVydmFsU3RyXG4gICk6IEludGVydmFsIHtcbiAgICBjb25zdCBwYXJ0cyA9IGlzby5zcGxpdCgnLycpO1xuXG4gICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZ2l2ZW4gc3RyaW5nIGlzIG5vdCBhIHZhbGlkIGlzbyBpbnRlcnZhbDogXCInICsgaXNvICsgJ1wiJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnQgPSBwYXJ0c1swXSA/IEluc3RhbnQucGFyc2UocGFydHNbMF0pIDogbnVsbDtcblxuICAgIGNvbnN0IGVuZFN0ciA9IHBhcnRzWzFdO1xuICAgIC8vIFRoZSAnZW5kJyBwYXJ0IGNhbiBlaXRoZXIgYmUgYW4gaW5zdGFudCBvciBhIGR1cmF0aW9uIGluIGlzbyBmb3JtYXRcbiAgICBpZiAoc3RhcnQgJiYgZW5kU3RyICYmIGVuZFN0ci5zdGFydHNXaXRoKCdQJykgfHwgZW5kU3RyLnN0YXJ0c1dpdGgoJy1QJykpIHtcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gRHVyYXRpb24ucGFyc2UoZW5kU3RyKTtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZlN0YXJ0QW5kT2Zmc2V0KFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZHVyYXRpb25cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGVuZFN0ciA/IEluc3RhbnQucGFyc2UoZW5kU3RyKSA6IG51bGxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB5ZXN0ZXJkYXkoem9uZUlkOiBab25lSWQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mRGF5KFxuICAgICAgTG9jYWxEYXRlLm5vdygpLm1pbnVzRGF5cygxKSxcbiAgICAgIHpvbmVJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljICB0b21vcnJvdyh6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkoXG4gICAgICBMb2NhbERhdGUubm93KCkucGx1c0RheXMoMSksXG4gICAgICB6b25lSWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b2RheSh6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkoTG9jYWxEYXRlLm5vdygpLCB6b25lSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBJbnRlcnZhbCBmcm9tIGEgRGF0ZSBieSBzcHJlYWRpbmcgaXQgdG8gdGhlIGJlZ2luIGFuZCBlbmQgb2YgaXRzIGRheS5cbiAgICogQHBhcmFtIGRhdGUgRGF0ZSB0byBzcHJlYWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2ZEYXlEYXRlKGRhdGU6IERhdGUpOiBJbnRlcnZhbCB7XG4gICAgY29uc3QgbG9jYWxEYXRlID0gTG9jYWxEYXRlLmZyb20obmF0aXZlSnMoZGF0ZSkpO1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShsb2NhbERhdGUsIFpvbmVJZC5zeXN0ZW1EZWZhdWx0KCkpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZkRheShkYXk6IExvY2FsRGF0ZSwgem9uZUlkOiBab25lSWQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLmJldHdlZW5EYXlzKFxuICAgICAgZGF5LFxuICAgICAgZGF5LnBsdXNEYXlzKDEpLFxuICAgICAgem9uZUlkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYmV0d2VlbkRheXMoXG4gICAgc3RhcnREYXlJbmNsdXNpdmU6IExvY2FsRGF0ZSxcbiAgICBlbmREYXlFeGNsdXNpdmU6IExvY2FsRGF0ZSxcbiAgICB6b25lSWQ6IFpvbmVJZFxuICApIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICBzdGFydERheUluY2x1c2l2ZS5hdFN0YXJ0T2ZEYXkoem9uZUlkKS50b0luc3RhbnQoKSxcbiAgICAgIGVuZERheUV4Y2x1c2l2ZS5hdFN0YXJ0T2ZEYXkoem9uZUlkKS50b0luc3RhbnQoKVxuICAgICk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW50ZXJ2YWwgd2l0aCB0aGUgZ2l2ZW4gc3RhcnQgdGltZSBwb2ludFxuICAgKiBhbmQgYSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIHVzZSBQZXJpb2QgZm9yIGRheXMgdG8gYWNjb3VudCBmb3Igem9uZSBzcGVjaWZpY1xuICAgKiB0aGluZ3MgbGlrZSBkYXlsaWdodCBzYXZpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBzdGFydEluY2x1c2l2ZVxuICAgKiBAcGFyYW0gb2Zmc2V0RXhjbHVzaXZlIEEgUGVyaW9kIG9yIER1cmF0aW9uIG9mZnNldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2ZTdGFydEFuZE9mZnNldChzdGFydEluY2x1c2l2ZTogSW5zdGFudCwgb2Zmc2V0RXhjbHVzaXZlOiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICBzdGFydEluY2x1c2l2ZSxcbiAgICAgIHN0YXJ0SW5jbHVzaXZlLnBsdXMob2Zmc2V0RXhjbHVzaXZlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mKFxuICAgIHN0YXJ0SW5jbHVzaXZlOiBJbnN0YW50LFxuICAgIGVuZEV4Y2x1c2l2ZTogSW5zdGFudFxuICApOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBJbnRlcnZhbChcbiAgICAgIHN0YXJ0SW5jbHVzaXZlLFxuICAgICAgZW5kRXhjbHVzaXZlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZEYXRlKFxuICAgIHN0YXJ0SW5jbHVzaXZlOiBEYXRlIHwgc3RyaW5nLFxuICAgIGVuZEV4Y2x1c2l2ZTogRGF0ZSB8IHN0cmluZ1xuICApOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBJbnRlcnZhbChcbiAgICAgIFRpbWVVdGlsLmluc3RhbnQoc3RhcnRJbmNsdXNpdmUpLFxuICAgICAgVGltZVV0aWwuaW5zdGFudChlbmRFeGNsdXNpdmUpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHJhbmdlIGlzIGVtcHR5LlxuICAgKiA8cD5cbiAgICogQW4gZW1wdHkgcmFuZ2Ugb2NjdXJzIHdoZW4gdGhlIHN0YXJ0IGRhdGUgZXF1YWxzIHRoZSBpbmNsdXNpdmUgZW5kIGRhdGUuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcmFuZ2UgaXMgZW1wdHlcbiAgICovXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5lcXVhbHModGhpcy5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3RhcnQgb2YgdGhlIGludGVydmFsIGlzIHVuYm91bmRlZC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIHN0YXJ0IGlzIHVuYm91bmRlZFxuICAgKi9cbiAgcHVibGljIGlzVW5ib3VuZGVkU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyhJbnN0YW50Lk1JTik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBlbmQgb2YgdGhlIGludGVydmFsIGlzIHVuYm91bmRlZC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGVuZCBpcyB1bmJvdW5kZWRcbiAgICovXG4gIHB1YmxpYyBpc1VuYm91bmRlZEVuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmVxdWFscyhJbnN0YW50Lk1BWCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdG9EdXJhdGlvbigpOiBEdXJhdGlvbiB7XG4gICAgaWYoIXRoaXMuc3RhcnQgfHwgIXRoaXMuZW5kKSByZXR1cm4gRHVyYXRpb24uWkVSTztcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uYmV0d2Vlbih0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoJ0NvdWxkIG5vdCBjb252ZXJ0IHRvIER1cmF0aW9uISBFcnJvcjogJyxlICk7XG4gICAgICByZXR1cm4gRHVyYXRpb24uWkVSTztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9QZXJpb2REdXJhdGlvbih6b25lOiBab25lSWQpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgaWYoIXRoaXMuc3RhcnQgfHwgIXRoaXMuZW5kKSByZXR1cm4gUGVyaW9kRHVyYXRpb24uemVybygpO1xuXG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLmJldHdlZW4oXG4gICAgICB0aGlzLnN0YXJ0Py5hdFpvbmUoem9uZSksXG4gICAgICB0aGlzLmVuZD8uYXRab25lKHpvbmUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBJc29JbnRlcnZhbFN0ciB7XG4gICAgcmV0dXJuIHRoaXMudG9EdXJhdGlvblN0cmluZygpO1xuICB9XG5cbiAgcHVibGljIHRvSW5zdGFudFN0cmluZygpOiBJc29JbnRlcnZhbFN0ciB7XG4gICAgbGV0IGluc3RhbnRTdHJpbmcgPSAnJztcbiAgICBpZiAodGhpcy5zdGFydCkge1xuICAgICAgaW5zdGFudFN0cmluZyA9IGluc3RhbnRTdHJpbmcgKyB0aGlzLnN0YXJ0LnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGluc3RhbnRTdHJpbmcgPSBpbnN0YW50U3RyaW5nICsgJy8nO1xuICAgIGlmICh0aGlzLmVuZCkge1xuICAgICAgaW5zdGFudFN0cmluZyA9IGluc3RhbnRTdHJpbmcgKyB0aGlzLmVuZC50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFudFN0cmluZztcbiAgfVxuXG4gIHB1YmxpYyB0b0R1cmF0aW9uU3RyaW5nKCk6IElzb0ludGVydmFsU3RyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8udG9TdHJpbmcoKSArICcvJyArIHRoaXMudG9EdXJhdGlvbigpLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIE1vZGlmaWNhdGlvbiBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvcHkgb2YgdGhpcyByYW5nZSB3aXRoIHRoZSBzcGVjaWZpZWQgc3RhcnQgaW5zdGFudC5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0ICB0aGUgc3RhcnQgaW5zdGFudCBmb3IgdGhlIG5ldyBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiBhbiBpbnRlcnZhbCB3aXRoIHRoZSBlbmQgZnJvbSB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIHN0YXJ0XG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIHJlc3VsdGluZyBpbnRlcnZhbCBoYXMgZW5kIGJlZm9yZSBzdGFydFxuICAgKi9cbiAgcHVibGljIHdpdGhTdGFydChzdGFydDogSW5zdGFudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2Yoc3RhcnQsIHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGlzIHJhbmdlIHdpdGggdGhlIHNwZWNpZmllZCBlbmQgaW5zdGFudC5cbiAgICpcbiAgICogQHBhcmFtIGVuZCAgdGhlIGVuZCBpbnN0YW50IGZvciB0aGUgbmV3IGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIGFuIGludGVydmFsIHdpdGggdGhlIHN0YXJ0IGZyb20gdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBlbmRcbiAgICogQHRocm93cyBEYXRlVGltZUV4Y2VwdGlvbiBpZiB0aGUgcmVzdWx0aW5nIGludGVydmFsIGhhcyBlbmQgYmVmb3JlIHN0YXJ0XG4gICAqL1xuICBwdWJsaWMgd2l0aEVuZChlbmQ6IEluc3RhbnQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKHRoaXMuc3RhcnQsIGVuZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGlzIGZpbmRzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdHdvIGludGVydmFscy5cbiAgICogVGhpcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGFyZSBub3Qge0BsaW5rcGxhaW4gI2lzQ29ubmVjdGVkKEludGVydmFsKSBjb25uZWN0ZWR9LlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgaXMgdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgdHdvIGludGVydmFsc1xuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSBpbnRlcnZhbHMgZG8gbm90IGNvbm5lY3RcbiAgICovXG4gIHB1YmxpYyBpbnRlcnNlY3Rpb24ob3RoZXI6IEludGVydmFsKTogSW50ZXJ2YWwge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKG90aGVyKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJ2YWxzIGRvIG5vdCBjb25uZWN0OiAnICsgdGhpcyArICcgYW5kICcgKyBvdGhlcik7XG4gICAgfVxuICAgIGNvbnN0IGNtcFN0YXJ0ID0gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgICBjb25zdCBjbXBFbmQgPSB0aGlzLmVuZD8uY29tcGFyZVRvKG90aGVyLmVuZCk7XG4gICAgaWYgKGNtcFN0YXJ0ID49IDAgJiYgY21wRW5kIDw9IDApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gZWxzZSBpZiAoY21wU3RhcnQgPD0gMCAmJiBjbXBFbmQgPj0gMCkge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdTdGFydCA9IChjbXBTdGFydCA+PSAwID8gdGhpcy5zdGFydCA6IG90aGVyLnN0YXJ0KTtcbiAgICAgIGNvbnN0IG5ld0VuZCA9IChjbXBFbmQgPD0gMCA/IHRoaXMuZW5kIDogb3RoZXIuZW5kKTtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZihuZXdTdGFydCwgbmV3RW5kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgdW5pb24gb2YgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgZmluZHMgdGhlIHVuaW9uIG9mIHR3byBpbnRlcnZhbHMuXG4gICAqIFRoaXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgdHdvIGludGVydmFscyBhcmUgbm90IHtAbGlua3BsYWluICNpc0Nvbm5lY3RlZChJbnRlcnZhbCkgY29ubmVjdGVkfS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwgdG8gY2hlY2sgZm9yLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSB1bmlvbiBvZiB0aGUgdHdvIGludGVydmFsc1xuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSBpbnRlcnZhbHMgZG8gbm90IGNvbm5lY3RcbiAgICovXG4gIHB1YmxpYyB1bmlvbihvdGhlcjogSW50ZXJ2YWwpOiBJbnRlcnZhbCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQob3RoZXIpID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcnZhbHMgZG8gbm90IGNvbm5lY3Q6ICcgKyB0aGlzICsgJyBhbmQgJyArIG90aGVyKTtcbiAgICB9XG4gICAgY29uc3QgY21wU3RhcnQgPSB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpO1xuICAgIGNvbnN0IGNtcEVuZCA9IHRoaXMuZW5kPy5jb21wYXJlVG8ob3RoZXIuZW5kKTtcbiAgICBpZiAoY21wU3RhcnQgPj0gMCAmJiBjbXBFbmQgPD0gMCkge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0gZWxzZSBpZiAoY21wU3RhcnQgPD0gMCAmJiBjbXBFbmQgPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyBvdGhlci5zdGFydCA6IHRoaXMuc3RhcnQpO1xuICAgICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gb3RoZXIuZW5kIDogdGhpcy5lbmQpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKG5ld1N0YXJ0LCBuZXdFbmQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBzbWFsbGVzdCBpbnRlcnZhbCB0aGF0IGVuY2xvc2VzIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIHdpbGwge0BsaW5rcGxhaW4gI2VuY2xvc2VzKEludGVydmFsKSBlbmNsb3NlfVxuICAgKiB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgc3BhbnMgdGhlIHR3byBpbnRlcnZhbHNcbiAgICovXG4gIHB1YmxpYyBzcGFuKG90aGVyOiBJbnRlcnZhbCk6IEludGVydmFsIHtcbiAgICBjb25zdCBjbXBTdGFydCA9IHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gICAgY29uc3QgY21wRW5kID0gdGhpcy5lbmQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpO1xuICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyBvdGhlci5zdGFydCA6IHRoaXMuc3RhcnQpO1xuICAgIGNvbnN0IG5ld0VuZCA9IChjbXBFbmQgPD0gMCA/IG90aGVyLmVuZCA6IHRoaXMuZW5kKTtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YobmV3U3RhcnQsIG5ld0VuZCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBTaGlmdCB0aGUgd2hvbGUgaW50ZXJ2YWwgYnkgdGhlIGdpdmVuIGRheXMgcGVyaW9kLlxuICAgKiBAcGFyYW0gZGF5c1xuICAgKi9cbiAgcHVibGljIHNoaWZ0RGF5cyhkYXlzOiBudW1iZXIpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hpZnQoUGVyaW9kLm9mRGF5cyhkYXlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2hpZnQgdGhlIHdob2xlIGludGVydmFsIGJ5IHRoZSBnaXZlbiB0ZW1wb3JhbCBhbW91bnQuXG4gICAqIE5vdGUgdGhhdCBvbmx5IFBlcmlvZCB3aWxsIGFjY291bnQgZm9yIHpvbmUgc3BlY2lmaWMgdGhpbmdzIHN1Y2ggYXMgZGF5bGlnaHQgc2F2aW5ncy5cbiAgICogVXNlIER1cmF0aW9uIG9ubHkgaWYgeW91IGFyZSBiZWxvdyBkYXlzLlxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqL1xuICBwdWJsaWMgc2hpZnQob2Zmc2V0OiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICB0aGlzLnN0YXJ0Py5wbHVzKG9mZnNldCksXG4gICAgICB0aGlzLmVuZD8ucGx1cyhvZmZzZXQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlU3RhcnQob2Zmc2V0OiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICB0aGlzLnN0YXJ0Py5wbHVzKG9mZnNldCksXG4gICAgICB0aGlzLmVuZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW92ZUVuZChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQsXG4gICAgICB0aGlzLmVuZD8ucGx1cyhvZmZzZXQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcnZhbCBRdWVyeSBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gVGltZUZyYW1lIG92ZXJsYXBzIHdpdGggdGhpcyBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBUaW1lRnJhbWUgdG8gY2hlY2sgYWdhaW5zdFxuICAgKiBAcmV0dXJuIFJldHVybnMge0Bjb2RlIHRydWV9IGlmIHRoZSB0d28gY2FuZGlkYXRlcyBvdmVybGFwLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyBvdmVybGFwcyhvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb3RoZXIuZXF1YWxzKHRoaXMpIHx8ICh0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuZW5kKSA8IDAgJiYgb3RoZXIuc3RhcnQ/LmNvbXBhcmVUbyh0aGlzLmVuZCkgPCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaXQgdGhlIGdpdmVuIGxvY2FsRGF0ZSBvdmVybGFwcyB3aXRoIHRoZSBnaXZlbiBUaW1lRnJhbWUuXG4gICAqXG4gICAqIEBwYXJhbSB0aW1lRnJhbWUgVGltZUZyYW1lIHRvIGNoZWNrIGFnYWluc3RcbiAgICogQHBhcmFtIGxvY2FsRGF0ZSBMb2NhbERhdGUgdG8gY2hlY2tcbiAgICovXG4gIHB1YmxpYyBvdmVybGFwc1dpdGhMb2NhbERhdGUoXG4gICAgbG9jYWxEYXRlOiBEYXRlXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXBzKEludGVydmFsLm9mRGF5RGF0ZShsb2NhbERhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBjb250YWlucyB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGlzIGNoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGluc3RhbnQgaXMgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhpcyBpbnRlcnZhbC5cbiAgICogSWYgdGhpcyByYW5nZSBoYXMgYW4gdW5ib3VuZGVkIHN0YXJ0IHRoZW4ge0Bjb2RlIGNvbnRhaW5zKEluc3RhbnQjTUlOKX0gcmV0dXJucyB0cnVlLlxuICAgKiBJZiB0aGlzIHJhbmdlIGhhcyBhbiB1bmJvdW5kZWQgZW5kIHRoZW4ge0Bjb2RlIGNvbnRhaW5zKEluc3RhbnQjTUFYKX0gcmV0dXJucyB0cnVlLlxuICAgKiBJZiB0aGlzIHJhbmdlIGlzIGVtcHR5IHRoZW4gdGhpcyBtZXRob2QgYWx3YXlzIHJldHVybnMgZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgaW5zdGFudCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgY29udGFpbnMgdGhlIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyAgY29udGFpbnMoaW5zdGFudDogSW5zdGFudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPD0gMCAmJiAoaW5zdGFudC5jb21wYXJlVG8odGhpcy5lbmQpIDwgMCB8fCB0aGlzLmlzVW5ib3VuZGVkRW5kKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGVuY2xvc2VzIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGlzIGNoZWNrcyBpZiB0aGUgYm91bmRzIG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwgYXJlIHdpdGhpbiB0aGUgYm91bmRzIG9mIHRoaXMgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGVuY2xvc2VzIGl0c2VsZi5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGludGVydmFsIGNvbnRhaW5zIHRoZSBvdGhlciBpbnRlcnZhbFxuICAgKi9cbiAgcHVibGljIGVuY2xvc2VzKG90aGVyOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpIDw9IDAgJiYgb3RoZXIuZW5kPy5jb21wYXJlVG8odGhpcy5lbmQpIDw9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgYWJ1dHMgKGlzIG5leHQgdG8gb3IgaGFzIGEgY29tbW9uIGJvdW5kYXJ5IHdpdGgpIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhlIGVuZCBvZiB0aGlzIGludGVydmFsIGlzIHRoZSBzdGFydCBvZiB0aGUgb3RoZXIsIG9yIHZpY2UgdmVyc2EuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGRvZXMgbm90IGFidXQgaXRzZWxmLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgYWJ1dHMgdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgYWJ1dHMob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5lcXVhbHMob3RoZXIuc3RhcnQpICE9PSB0aGlzLnN0YXJ0Py5lcXVhbHMob3RoZXIuZW5kKTsgLy8gIT09IG1lYW5zIFhPUlxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGNvbm5lY3RlZCB0byB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhlIHJlc3VsdCBpcyB0cnVlIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGhhdmUgYW4gZW5jbG9zZWQgaW50ZXJ2YWwgaW4gY29tbW9uLCBldmVuIGlmIHRoYXQgaW50ZXJ2YWwgaXMgZW1wdHkuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGlzIGNvbm5lY3RlZCB0byBpdHNlbGYuXG4gICAqIDxwPlxuICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8ge0Bjb2RlIChvdmVybGFwcyhvdGhlcikgfHwgYWJ1dHMob3RoZXIpKX0uXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBpcyBjb25uZWN0ZWQgdG8gdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgaXNDb25uZWN0ZWQob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXF1YWxzKG90aGVyKSB8fCAodGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLmVuZCkgPD0gMCAmJiBvdGhlci5zdGFydD8uY29tcGFyZVRvKHRoaXMuZW5kKSA8PSAwKTtcbiAgfVxuXG4gIC8vIC0tLVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IHN0YXJ0cyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgb3RoZXIgaW5zdGFudCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoaXMgaW50ZXJ2YWwgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNBZnRlckluc3RhbnQoaW5zdGFudDogSW5zdGFudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IGVuZHMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogaW5zdGFudCBlcXVhbHMgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgb3RoZXIgaW5zdGFudCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoaXMgaW50ZXJ2YWwgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudFxuICAgKi9cbiAgcHVibGljIGlzQmVmb3JlSW5zdGFudChpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5jb21wYXJlVG8oaW5zdGFudCkgPD0gMCAmJiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IHN0YXJ0cyBhZnRlciB0aGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIFNpbmNlIGludGVydmFscyBkbyBub3QgaW5jbHVkZSB0aGVpciBlbmQgcG9pbnRzLCB0aGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlXG4gICAqIGluc3RhbnQgZXF1YWxzIHRoZSBlbmQgb2YgdGhlIGludGVydmFsLlxuICAgKiBBbiBlbXB0eSBpbnRlcnZhbCBiZWhhdmVzIGFzIHRob3VnaCBpdCBpcyBhbiBpbnN0YW50IGZvciBjb21wYXJpc29uIHB1cnBvc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnN0YW50IGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudFxuICAgKi9cbiAgcHVibGljIGlzQWZ0ZXIoaW50ZXJ2YWw6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnRlcnZhbC5lbmQpID49IDAgJiYgIWludGVydmFsLmVxdWFscyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgZW5kcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIFNpbmNlIGludGVydmFscyBkbyBub3QgaW5jbHVkZSB0aGVpciBlbmQgcG9pbnRzLCB0aGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlXG4gICAqIHR3byBpbnRlcnZhbHMgYWJ1dC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGludGVydmFsICB0aGUgb3RoZXIgaW50ZXJ2YWwgdG8gY29tcGFyZSB0bywgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW5zdGFudCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNCZWZvcmUoaW50ZXJ2YWw6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5jb21wYXJlVG8oaW50ZXJ2YWwuc3RhcnQpIDw9IDAgJiYgIWludGVydmFsLmVxdWFscyh0aGlzKTtcbiAgfVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEVxdWFsaXR5ICYgSGFzaGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGVxdWFsIHRvIGFub3RoZXIgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBDb21wYXJlcyB0aGlzIHtAY29kZSBJbnRlcnZhbH0gd2l0aCBhbm90aGVyIGVuc3VyaW5nIHRoYXQgdGhlIHR3byBpbnN0YW50cyBhcmUgdGhlIHNhbWUuXG4gICAqIE9ubHkgb2JqZWN0cyBvZiB0eXBlIHtAY29kZSBJbnRlcnZhbH0gYXJlIGNvbXBhcmVkLCBvdGhlciB0eXBlcyByZXR1cm4gZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBvYmogIHRoZSBvYmplY3QgdG8gY2hlY2ssIG51bGwgcmV0dXJucyBmYWxzZVxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpcyBlcXVhbCB0byB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBlcXVhbHMob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcyA9PT0gb2JqKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEludGVydmFsKSB7XG4gICAgICBjb25zdCBvdGhlciA9IDxJbnRlcnZhbD4gb2JqO1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyhvdGhlci5zdGFydCkgJiYgdGhpcy5lbmQ/LmVxdWFscyhvdGhlci5lbmQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdGhpcyBJbnRlcnZhbCB0byB0aGUgZ2l2ZW4gSW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgY29tcGFyaXNvbiBpcyBiYXNlZCBvbiB0aGUgdGltZS1saW5lIHBvc2l0aW9uIG9mIHRoZSBsb3dlciBib3VuZCBpbnN0YW50cyAoSW50ZXJ2YWwgc3RhcnQpLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgdGhlIG90aGVyIEludGVydmFsIHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGNvbXBhcmF0b3IgdmFsdWUsIG5lZ2F0aXZlIGlmIGxlc3MsIHBvc2l0aXZlIGlmIGdyZWF0ZXJcbiAgICogQHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBvdGhlciBpcyBudWxsXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZVRvKG90aGVyOiBJbnRlcnZhbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gIH1cblxuXG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './period-duration';
|
|
2
2
|
export * from './interval';
|
|
3
|
+
export * from './interval-coerce';
|
|
3
4
|
export * from './time-util';
|
|
4
5
|
export * from './date-util';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi90aW1lL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vcGVyaW9kLWR1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJ2YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcnZhbC1jb2VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lLXV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXV0aWwnO1xuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./elder-overlay.component";
|
|
4
|
+
export class ElderOverlayRef {
|
|
5
|
+
/***************************************************************************
|
|
6
|
+
* *
|
|
7
|
+
* Constructor *
|
|
8
|
+
* *
|
|
9
|
+
**************************************************************************/
|
|
10
|
+
constructor(overlay) {
|
|
11
|
+
this.overlay = overlay;
|
|
12
|
+
if (!overlay) {
|
|
13
|
+
throw new Error('ElderOverlayComponent is required!');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/***************************************************************************
|
|
17
|
+
* *
|
|
18
|
+
* Properties *
|
|
19
|
+
* *
|
|
20
|
+
**************************************************************************/
|
|
21
|
+
get attached() {
|
|
22
|
+
return this.overlay.attached;
|
|
23
|
+
}
|
|
24
|
+
/***************************************************************************
|
|
25
|
+
* *
|
|
26
|
+
* Public API *
|
|
27
|
+
* *
|
|
28
|
+
**************************************************************************/
|
|
29
|
+
attachedChange() {
|
|
30
|
+
return this.overlay.attachedChange;
|
|
31
|
+
}
|
|
32
|
+
close() {
|
|
33
|
+
this.overlay.closeOverlay();
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderOverlayRef, deps: [{ token: i1.ElderOverlayComponent }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderOverlayRef }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderOverlayRef, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: () => [{ type: i1.ElderOverlayComponent }] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItb3ZlcmxheS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXktcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUt6QyxNQUFNLE9BQU8sZUFBZTtJQUUxQjs7OztnRkFJNEU7SUFFNUUsWUFDbUIsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFFL0MsSUFBRyxDQUFDLE9BQU8sRUFBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBdENVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyT3ZlcmxheUNvbXBvbmVudH0gZnJvbSAnLi9lbGRlci1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWxkZXJPdmVybGF5UmVmIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXk6IEVsZGVyT3ZlcmxheUNvbXBvbmVudFxuICApIHtcbiAgICBpZighb3ZlcmxheSl7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VsZGVyT3ZlcmxheUNvbXBvbmVudCBpcyByZXF1aXJlZCEnKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGF0dGFjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuYXR0YWNoZWQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYXR0YWNoZWRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5hdHRhY2hlZENoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXkuY2xvc2VPdmVybGF5KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,6 +3,7 @@ import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
|
3
3
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
4
4
|
import { merge, Subject } from 'rxjs';
|
|
5
5
|
import { map, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { ElderOverlayRef } from './elder-overlay-ref';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/cdk/overlay";
|
|
8
9
|
export class OverlayShowOptions {
|
|
@@ -153,7 +154,15 @@ export class ElderOverlayComponent {
|
|
|
153
154
|
return this._overlayRef.attach(searchPanelPortal);
|
|
154
155
|
}
|
|
155
156
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderOverlayComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: i1.OverlayPositionBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ElderOverlayComponent, isStandalone: true, selector: "elder-overlay", inputs: { originX: "originX", originY: "originY", overlayX: "overlayX", overlayY: "overlayY", offsetY: "offsetY", offsetX: "offsetX", backdrop: "backdrop", backdropVisible: "backdropVisible", origin: "origin", positionStrategy: "positionStrategy", overlaySize: "overlaySize" }, outputs: { keydownEvents: "keydownEvents", attachedChange: "attachedChange" },
|
|
157
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ElderOverlayComponent, isStandalone: true, selector: "elder-overlay", inputs: { originX: "originX", originY: "originY", overlayX: "overlayX", overlayY: "overlayY", offsetY: "offsetY", offsetX: "offsetX", backdrop: "backdrop", backdropVisible: "backdropVisible", origin: "origin", positionStrategy: "positionStrategy", overlaySize: "overlaySize" }, outputs: { keydownEvents: "keydownEvents", attachedChange: "attachedChange" }, providers: [
|
|
158
|
+
{
|
|
159
|
+
provide: ElderOverlayRef,
|
|
160
|
+
useFactory: (self) => {
|
|
161
|
+
return new ElderOverlayRef(self);
|
|
162
|
+
},
|
|
163
|
+
deps: [ElderOverlayComponent]
|
|
164
|
+
}
|
|
165
|
+
], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["elderOverlay"], ngImport: i0, template: `
|
|
157
166
|
<ng-template>
|
|
158
167
|
<ng-content></ng-content>
|
|
159
168
|
</ng-template>
|
|
@@ -170,7 +179,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
170
179
|
</ng-template>
|
|
171
180
|
`,
|
|
172
181
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
173
|
-
standalone: true
|
|
182
|
+
standalone: true,
|
|
183
|
+
providers: [
|
|
184
|
+
{
|
|
185
|
+
provide: ElderOverlayRef,
|
|
186
|
+
useFactory: (self) => {
|
|
187
|
+
return new ElderOverlayRef(self);
|
|
188
|
+
},
|
|
189
|
+
deps: [ElderOverlayComponent]
|
|
190
|
+
}
|
|
191
|
+
],
|
|
174
192
|
}]
|
|
175
193
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i1.Overlay }, { type: i1.OverlayPositionBuilder }], propDecorators: { templateRef: [{
|
|
176
194
|
type: ViewChild,
|
|
@@ -202,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
202
220
|
}], attachedChange: [{
|
|
203
221
|
type: Output
|
|
204
222
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItb3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFFRyxNQUFNLEVBQ2QsV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQVV2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUc5QyxNQUFNLE9BQU8sa0JBQWtCO0NBRTlCO0FBY0QsTUFBTSxPQUFPLHFCQUFxQjtJQTZDaEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsYUFBK0IsRUFDL0IsT0FBZ0IsRUFDaEIsZUFBdUM7UUFGdkMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBcERqRDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUd4RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFJNUMsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLFlBQU8sR0FBbUQsSUFBSSxDQUFDO1FBR2hFLFlBQU8sR0FBK0IsT0FBTyxDQUFDO1FBRzlDLFlB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QUFLO2dCQU1LLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFTSyxXQUFXO3NCQURyQixLQUFLO2dCQVdLLGFBQWE7c0JBRHZCLE1BQU07Z0JBV0ksY0FBYztzQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4sXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gIE92ZXJsYXlSZWYsXG4gIE92ZXJsYXlTaXplQ29uZmlnLFxuICBQb3NpdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5leHBvcnQgY2xhc3MgT3ZlcmxheVNob3dPcHRpb25zIHtcbiAgcHVibGljIHNvdXJjZT86IEVsZW1lbnRSZWY7XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1vdmVybGF5JyxcbiAgICBleHBvcnRBczogJ2VsZGVyT3ZlcmxheScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyT3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHtzdGF0aWM6IHRydWV9KSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9oYXNDdXN0b21Qb3NpdGlvblN0cmF0ZWd5ID0gZmFsc2U7XG4gIHByaXZhdGUgX29yaWdpbjogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG9yaWdpblg6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3JpZ2luWTogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nID0gJ2JvdHRvbSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJsYXlYOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJsYXlZOiAndG9wJyB8ICdjZW50ZXInIHwgJ2JvdHRvbScgPSAndG9wJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb2Zmc2V0WSA9IDEwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvZmZzZXRYID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYmFja2Ryb3AgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBiYWNrZHJvcFZpc2libGUgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hdHRhY2hlZENoYW5nZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2tleWRvd25FdmVudHMgPSBuZXcgU3ViamVjdDxLZXlib2FyZEV2ZW50PigpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBwb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcbiAgKSB7XG5cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgY29uc3QgY29uZmlnID0gPE92ZXJsYXlDb25maWc+IHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmJhY2tkcm9wLFxuICAgICAgYmFja2Ryb3BDbGFzczogKHRoaXMuYmFja2Ryb3BWaXNpYmxlKSA/IHVuZGVmaW5lZCA6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCdcbiAgICB9O1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpXG4gICAgKS5zdWJzY3JpYmUoZXYgPT4gdGhpcy5jbG9zZU92ZXJsYXkoKSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICkuc3Vic2NyaWJlKGV2ID0+IHtcbiAgICAgICAgdGhpcy5fa2V5ZG93bkV2ZW50cy5uZXh0KGV2KTtcbiAgICAgICAgaWYgKGV2LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIG1lcmdlKFxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2htZW50cygpLnBpcGUobWFwKCgpID0+IHRydWUpKSxcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpXG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICkuc3Vic2NyaWJlKGV2ID0+IHtcbiAgICAgIHRoaXMuX2F0dGFjaGVkQ2hhbmdlLm5leHQoZXYpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBvcmlnaW4ob3JpZ2luOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4pIHtcbiAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBvc2l0aW9uU3RyYXRlZ3koc3RyYXRlZ3k6IFBvc2l0aW9uU3RyYXRlZ3kpIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgICAgIHRoaXMuX2hhc0N1c3RvbVBvc2l0aW9uU3RyYXRlZ3kgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgb3ZlcmxheVNpemUoc2l6ZTogT3ZlcmxheVNpemVDb25maWcpIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVTaXplKHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbGwga2V5IGV2ZW50cyBvbiB0aGUgb3ZlcmxheVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQga2V5ZG93bkV2ZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5ZG93bkV2ZW50cztcbiAgfVxuXG5cblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgb3ZlcmxheSBpcyBhdHRhY2hlZCAodHJ1ZSkgb3IgZGUtYXR0YWNoZWQgKGZhbHNlKVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYXR0YWNoZWRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dGFjaGVkQ2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgb3ZlcmxheSBjdXJyZW50bHkgYXR0YWNoZWQgYW5kIHRodXMgdmlzaWJsZT9cbiAgICovXG4gIHB1YmxpYyBnZXQgYXR0YWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYgPyB0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBTaG93IHRoaXMgb3ZlcmxheVxuICAgKi9cbiAgcHVibGljIHNob3dPdmVybGF5KG9wdGlvbnM/OiBPdmVybGF5U2hvd09wdGlvbnMpOiBFbWJlZGRlZFZpZXdSZWY8YW55PiB7XG5cblxuICAgIGlmICghdGhpcy5faGFzQ3VzdG9tUG9zaXRpb25TdHJhdGVneSkge1xuXG4gICAgICBsZXQgb3JpZ2luOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW47XG4gICAgICBpZiAoIXRoaXMuX29yaWdpbiAmJiBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlKSB7XG4gICAgICAgIG9yaWdpbiA9IG9wdGlvbnMuc291cmNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JpZ2luID0gdGhpcy5fb3JpZ2luO1xuICAgICAgfVxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KFxuICAgICAgICB0aGlzLmJ1aWxkRGVmYXVsdFN0cmF0ZWd5KG9yaWdpbilcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmF0dGFjaGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5hdHRhY2hPdmVybGF5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhpZGUgdGhpcyBvdmVybGF5XG4gICAqL1xuICBwdWJsaWMgY2xvc2VPdmVybGF5KCk6IGFueSB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBidWlsZERlZmF1bHRTdHJhdGVneShvcmlnaW46IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbik6IFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLnBvc2l0aW9uQnVpbGRlci5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgIG9yaWdpblg6IHRoaXMub3JpZ2luWCxcbiAgICAgICAgb3JpZ2luWTogdGhpcy5vcmlnaW5ZLFxuICAgICAgICBvdmVybGF5WDogdGhpcy5vdmVybGF5WCxcbiAgICAgICAgb3ZlcmxheVk6IHRoaXMub3ZlcmxheVksXG4gICAgICAgIG9mZnNldFk6IHRoaXMub2Zmc2V0WSxcbiAgICAgICAgb2Zmc2V0WDogdGhpcy5vZmZzZXRYXG4gICAgICB9XSk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaE92ZXJsYXkoKTogRW1iZWRkZWRWaWV3UmVmPGFueT4ge1xuICAgIGNvbnN0IHNlYXJjaFBhbmVsUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuICAgICAgdGhpcy50ZW1wbGF0ZVJlZixcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHNlYXJjaFBhbmVsUG9ydGFsKTtcbiAgfVxufVxuIl19
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItb3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFFRyxNQUFNLEVBQ2QsV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQVV2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFHcEQsTUFBTSxPQUFPLGtCQUFrQjtDQUU5QjtBQXVCRCxNQUFNLE9BQU8scUJBQXFCO0lBNkNoQzs7OztnRkFJNEU7SUFFNUUsWUFDVSxhQUErQixFQUMvQixPQUFnQixFQUNoQixlQUF1QztRQUZ2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFwRGpEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3hELGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUk1QywrQkFBMEIsR0FBRyxLQUFLLENBQUM7UUFDbkMsWUFBTyxHQUFtRCxJ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QUFFLENBQUMsSUFBMkIsRUFBRSxFQUFFO2dDQUMxQyxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNuQyxDQUFDOzRCQUNELElBQUksRUFBRSx1QkFBdUI7eUJBQzlCO3FCQUNGO2lCQUNGO2dKQWN5QyxXQUFXO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBTS9CLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQXdFSyxNQUFNO3NCQURoQixLQUFLO2dCQU1LLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFTSyxXQUFXO3NCQURyQixLQUFLO2dCQVdLLGFBQWE7c0JBRHZCLE1BQU07Z0JBV0ksY0FBYztzQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4sXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gIE92ZXJsYXlSZWYsXG4gIE92ZXJsYXlTaXplQ29uZmlnLFxuICBQb3NpdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge21lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RWxkZXJPdmVybGF5UmVmfSBmcm9tICcuL2VsZGVyLW92ZXJsYXktcmVmJztcblxuXG5leHBvcnQgY2xhc3MgT3ZlcmxheVNob3dPcHRpb25zIHtcbiAgcHVibGljIHNvdXJjZT86IEVsZW1lbnRSZWY7XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1vdmVybGF5JyxcbiAgICBleHBvcnRBczogJ2VsZGVyT3ZlcmxheScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBFbGRlck92ZXJsYXlSZWYsXG4gICAgICB1c2VGYWN0b3J5OiAoc2VsZjogRWxkZXJPdmVybGF5Q29tcG9uZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgRWxkZXJPdmVybGF5UmVmKHNlbGYpO1xuICAgICAgfSxcbiAgICAgIGRlcHM6IFtFbGRlck92ZXJsYXlDb21wb25lbnRdXG4gICAgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7c3RhdGljOiB0cnVlfSkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSBfaGFzQ3VzdG9tUG9zaXRpb25TdHJhdGVneSA9IGZhbHNlO1xuICBwcml2YXRlIF9vcmlnaW46IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbiB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcmlnaW5YOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG9yaWdpblk6ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJyA9ICdib3R0b20nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVybGF5WDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVybGF5WTogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nID0gJ3RvcCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG9mZnNldFkgPSAxMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb2Zmc2V0WCA9IDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGJhY2tkcm9wID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYmFja2Ryb3BWaXNpYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXR0YWNoZWRDaGFuZ2UgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9rZXlkb3duRXZlbnRzID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgcG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyXG4gICkge1xuXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IGNvbmZpZyA9IDxPdmVybGF5Q29uZmlnPiB7XG4gICAgICBoYXNCYWNrZHJvcDogdGhpcy5iYWNrZHJvcCxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICh0aGlzLmJhY2tkcm9wVmlzaWJsZSkgPyB1bmRlZmluZWQgOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXG4gICAgfTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICkuc3Vic2NyaWJlKGV2ID0+IHRoaXMuY2xvc2VPdmVybGF5KCkpO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShldiA9PiB7XG4gICAgICAgIHRoaXMuX2tleWRvd25FdmVudHMubmV4dChldik7XG4gICAgICAgIGlmIChldi5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBtZXJnZShcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5waXBlKG1hcCgoKSA9PiB0cnVlKSksXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkucGlwZShtYXAoKCkgPT4gZmFsc2UpKVxuICAgICkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShldiA9PiB7XG4gICAgICB0aGlzLl9hdHRhY2hlZENoYW5nZS5uZXh0KGV2KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgb3JpZ2luKG9yaWdpbjogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luKSB7XG4gICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwb3NpdGlvblN0cmF0ZWd5KHN0cmF0ZWd5OiBQb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gICAgICB0aGlzLl9oYXNDdXN0b21Qb3NpdGlvblN0cmF0ZWd5ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG92ZXJsYXlTaXplKHNpemU6IE92ZXJsYXlTaXplQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZShzaXplKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYWxsIGtleSBldmVudHMgb24gdGhlIG92ZXJsYXlcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGtleWRvd25FdmVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2tleWRvd25FdmVudHM7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIG92ZXJsYXkgaXMgYXR0YWNoZWQgKHRydWUpIG9yIGRlLWF0dGFjaGVkIChmYWxzZSlcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGF0dGFjaGVkQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9hdHRhY2hlZENoYW5nZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJcyB0aGlzIG92ZXJsYXkgY3VycmVudGx5IGF0dGFjaGVkIGFuZCB0aHVzIHZpc2libGU/XG4gICAqL1xuICBwdWJsaWMgZ2V0IGF0dGFjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5UmVmID8gdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpIDogZmFsc2U7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogU2hvdyB0aGlzIG92ZXJsYXlcbiAgICovXG4gIHB1YmxpYyBzaG93T3ZlcmxheShvcHRpb25zPzogT3ZlcmxheVNob3dPcHRpb25zKTogRW1iZWRkZWRWaWV3UmVmPGFueT4ge1xuXG5cbiAgICBpZiAoIXRoaXMuX2hhc0N1c3RvbVBvc2l0aW9uU3RyYXRlZ3kpIHtcblxuICAgICAgbGV0IG9yaWdpbjogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luO1xuICAgICAgaWYgKCF0aGlzLl9vcmlnaW4gJiYgb3B0aW9ucyAmJiBvcHRpb25zLnNvdXJjZSkge1xuICAgICAgICBvcmlnaW4gPSBvcHRpb25zLnNvdXJjZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9yaWdpbiA9IHRoaXMuX29yaWdpbjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShcbiAgICAgICAgdGhpcy5idWlsZERlZmF1bHRTdHJhdGVneShvcmlnaW4pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hdHRhY2hlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXR0YWNoT3ZlcmxheSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlIHRoaXMgb3ZlcmxheVxuICAgKi9cbiAgcHVibGljIGNsb3NlT3ZlcmxheSgpOiBhbnkge1xuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYnVpbGREZWZhdWx0U3RyYXRlZ3kob3JpZ2luOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4pOiBQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbkJ1aWxkZXIuZmxleGlibGVDb25uZWN0ZWRUbyhvcmlnaW4pXG4gICAgICAud2l0aFBvc2l0aW9ucyhbe1xuICAgICAgICBvcmlnaW5YOiB0aGlzLm9yaWdpblgsXG4gICAgICAgIG9yaWdpblk6IHRoaXMub3JpZ2luWSxcbiAgICAgICAgb3ZlcmxheVg6IHRoaXMub3ZlcmxheVgsXG4gICAgICAgIG92ZXJsYXlZOiB0aGlzLm92ZXJsYXlZLFxuICAgICAgICBvZmZzZXRZOiB0aGlzLm9mZnNldFksXG4gICAgICAgIG9mZnNldFg6IHRoaXMub2Zmc2V0WFxuICAgICAgfV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hPdmVybGF5KCk6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHtcbiAgICBjb25zdCBzZWFyY2hQYW5lbFBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgIHRoaXMudGVtcGxhdGVSZWYsXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJcbiAgICApO1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChzZWFyY2hQYW5lbFBvcnRhbCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export { ElderOverlayComponent } from './elder-overlay.component';
|
|
9
9
|
export { ElderOverlayTriggerDirective } from './elder-overlay-trigger.directive';
|
|
10
10
|
export { ElderOverlayOriginDirective } from './elder-overlay-origin.directive';
|
|
11
|
+
export { ElderOverlayRef } from './elder-overlay-ref';
|
|
11
12
|
export class ElderOverlayModule {
|
|
12
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
14
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: ElderOverlayModule, imports: [CommonModule,
|
|
@@ -37,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
37
38
|
]
|
|
38
39
|
}]
|
|
39
40
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItb3ZlcmxheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFN0UsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBZ0JwRCxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQVp2QixZQUFZO1lBQ1osYUFBYTtZQUNiLHFCQUFxQjtZQUNyQiw0QkFBNEI7WUFDNUIsMkJBQTJCLGFBRzNCLHFCQUFxQjtZQUNyQiw0QkFBNEI7WUFDNUIsMkJBQTJCOytHQUd0QixrQkFBa0IsWUFadkIsWUFBWTtZQUNaLGFBQWE7OzJGQVdSLGtCQUFrQjtrQkFkOUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsNEJBQTRCO3dCQUM1QiwyQkFBMkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3FCQUM5QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZGVyT3ZlcmxheUNvbXBvbmVudH0gZnJvbSAnLi9lbGRlci1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQge092ZXJsYXlNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7RWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1vdmVybGF5LXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJPdmVybGF5T3JpZ2luRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLW92ZXJsYXktb3JpZ2luLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB7RWxkZXJPdmVybGF5Q29tcG9uZW50fSBmcm9tICcuL2VsZGVyLW92ZXJsYXkuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1vdmVybGF5LXRyaWdnZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7RWxkZXJPdmVybGF5T3JpZ2luRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLW92ZXJsYXktb3JpZ2luLmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyT3ZlcmxheVJlZn0gZnJvbSAnLi9lbGRlci1vdmVybGF5LXJlZic7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgICAgIEVsZGVyT3ZlcmxheUNvbXBvbmVudCxcbiAgICAgICAgRWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSxcbiAgICAgICAgRWxkZXJPdmVybGF5T3JpZ2luRGlyZWN0aXZlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEVsZGVyT3ZlcmxheUNvbXBvbmVudCxcbiAgICAgICAgRWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSxcbiAgICAgICAgRWxkZXJPdmVybGF5T3JpZ2luRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck92ZXJsYXlNb2R1bGUgeyB9XG4iXX0=
|