@rudderstack/integrations-lib 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/errors/platform_error.d.ts +1 -1
- package/build/errors/platform_error.d.ts.map +1 -1
- package/build/errors/platform_error.js +3 -3
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +7 -1
- package/build/lib/set-value/index.d.ts +4 -0
- package/build/lib/set-value/index.d.ts.map +1 -0
- package/build/lib/set-value/index.js +84 -0
- package/build/lib/set-value/set-value.test.d.ts +2 -0
- package/build/lib/set-value/set-value.test.d.ts.map +1 -0
- package/build/lib/set-value/set-value.test.js +105 -0
- package/build/utils/misc.d.ts +1 -0
- package/build/utils/misc.d.ts.map +1 -1
- package/build/utils/misc.js +9 -2
- package/build/utils/misc.test.js +52 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform_error.d.ts","sourceRoot":"","sources":["../../src/errors/platform_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"platform_error.d.ts","sourceRoot":"","sources":["../../src/errors/platform_error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY;CAOtD"}
|
|
@@ -4,12 +4,12 @@ exports.PlatformError = void 0;
|
|
|
4
4
|
const tags_1 = require("../tags");
|
|
5
5
|
const base_1 = require("./base");
|
|
6
6
|
class PlatformError extends base_1.BaseError {
|
|
7
|
-
constructor(message) {
|
|
7
|
+
constructor(message, statusCode = 400) {
|
|
8
8
|
const finalStatTags = {
|
|
9
9
|
[tags_1.TAG_NAMES.ERROR_CATEGORY]: tags_1.ERROR_CATEGORIES.PLATFORM,
|
|
10
10
|
};
|
|
11
|
-
super(message,
|
|
11
|
+
super(message, statusCode, finalStatTags);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
exports.PlatformError = PlatformError;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1fZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL3BsYXRmb3JtX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUFzRDtBQUN0RCxpQ0FBbUM7QUFFbkMsTUFBYSxhQUFjLFNBQVEsZ0JBQVM7SUFDMUMsWUFBWSxPQUFlLEVBQUUsYUFBcUIsR0FBRztRQUNuRCxNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLGdCQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsdUJBQWdCLENBQUMsUUFBUTtTQUN0RCxDQUFDO1FBRUYsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBUkQsc0NBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUQUdfTkFNRVMsIEVSUk9SX0NBVEVHT1JJRVMgfSBmcm9tICcuLi90YWdzJztcbmltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybUVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBzdGF0dXNDb2RlOiBudW1iZXIgPSA0MDApIHtcbiAgICBjb25zdCBmaW5hbFN0YXRUYWdzID0ge1xuICAgICAgW1RBR19OQU1FUy5FUlJPUl9DQVRFR09SWV06IEVSUk9SX0NBVEVHT1JJRVMuUExBVEZPUk0sXG4gICAgfTtcblxuICAgIHN1cGVyKG1lc3NhZ2UsIHN0YXR1c0NvZGUsIGZpbmFsU3RhdFRhZ3MpO1xuICB9XG59XG4iXX0=
|
package/build/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import setValue from './lib/set-value';
|
|
1
2
|
export * from './types';
|
|
2
3
|
export * from './tags';
|
|
3
4
|
export * from './errors';
|
|
@@ -6,4 +7,5 @@ export * from './structured-logger';
|
|
|
6
7
|
export * from './network';
|
|
7
8
|
export * from './utils';
|
|
8
9
|
export * from './constants';
|
|
10
|
+
export { setValue };
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -13,7 +13,13 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
13
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
16
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.setValue = void 0;
|
|
21
|
+
const set_value_1 = __importDefault(require("./lib/set-value"));
|
|
22
|
+
exports.setValue = set_value_1.default;
|
|
17
23
|
__exportStar(require("./types"), exports);
|
|
18
24
|
__exportStar(require("./tags"), exports);
|
|
19
25
|
__exportStar(require("./errors"), exports);
|
|
@@ -22,4 +28,4 @@ __exportStar(require("./structured-logger"), exports);
|
|
|
22
28
|
__exportStar(require("./network"), exports);
|
|
23
29
|
__exportStar(require("./utils"), exports);
|
|
24
30
|
__exportStar(require("./constants"), exports);
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBdUM7QUFVOUIsbUJBVkYsbUJBQVEsQ0FVRTtBQVJqQiwwQ0FBd0I7QUFDeEIseUNBQXVCO0FBQ3ZCLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsc0RBQW9DO0FBQ3BDLDRDQUEwQjtBQUMxQiwwQ0FBd0I7QUFDeEIsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNldFZhbHVlIGZyb20gJy4vbGliL3NldC12YWx1ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWdzJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbG9nZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlZC1sb2dnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0IHsgc2V0VmFsdWUgfTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/set-value/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;8BA4EZ,MAAM,QAAQ,SAAS,SAAS,SAAS,GAAG,YAAY,SAAS,OAAO;AAA7F,wBAiBE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const set_value_1 = __importDefault(require("set-value"));
|
|
7
|
+
const DEFAULT_SEPARATOR = '.';
|
|
8
|
+
const RESERVED_KEYS = Object.freeze(['__proto__', 'constructor', 'prototype']);
|
|
9
|
+
const splitString = (input, options = {}) => {
|
|
10
|
+
const sep = options.separator || DEFAULT_SEPARATOR;
|
|
11
|
+
const preserve = sep === '/' ? false : options.preservePaths;
|
|
12
|
+
if (typeof input === 'string' && preserve !== false && /\//.test(input)) {
|
|
13
|
+
return [input];
|
|
14
|
+
}
|
|
15
|
+
const parts = [];
|
|
16
|
+
let part = '';
|
|
17
|
+
const convertToPushablePart = (pushPart) => {
|
|
18
|
+
const number = Number(pushPart);
|
|
19
|
+
if (pushPart.trim() !== '' && Number.isInteger(number)) {
|
|
20
|
+
return number;
|
|
21
|
+
}
|
|
22
|
+
return pushPart;
|
|
23
|
+
};
|
|
24
|
+
// eslint-disable-next-line no-plusplus
|
|
25
|
+
for (let i = 0; i < input.length; i++) {
|
|
26
|
+
const value = input[i];
|
|
27
|
+
if (value !== '\\' && value !== sep) {
|
|
28
|
+
part += value;
|
|
29
|
+
}
|
|
30
|
+
if (value === '\\') {
|
|
31
|
+
// eslint-disable-next-line no-plusplus
|
|
32
|
+
part += input[++i];
|
|
33
|
+
}
|
|
34
|
+
if (value === sep) {
|
|
35
|
+
parts.push(convertToPushablePart(part));
|
|
36
|
+
part = '';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (part) {
|
|
40
|
+
parts.push(convertToPushablePart(part));
|
|
41
|
+
}
|
|
42
|
+
return parts;
|
|
43
|
+
};
|
|
44
|
+
const split = (path, options) => {
|
|
45
|
+
if (typeof path === 'symbol')
|
|
46
|
+
return [path];
|
|
47
|
+
if (Array.isArray(path))
|
|
48
|
+
return path;
|
|
49
|
+
if (typeof path === 'string') {
|
|
50
|
+
if (options && typeof options.split === 'function')
|
|
51
|
+
return options.split(path);
|
|
52
|
+
return splitString(path, options);
|
|
53
|
+
}
|
|
54
|
+
return [];
|
|
55
|
+
};
|
|
56
|
+
const doUnsafeKeysExist = (parts) => {
|
|
57
|
+
if (typeof parts === 'string') {
|
|
58
|
+
return RESERVED_KEYS.includes(parts);
|
|
59
|
+
}
|
|
60
|
+
return parts.some((part) => RESERVED_KEYS.includes(part));
|
|
61
|
+
};
|
|
62
|
+
const treatUnsafeKeys = (parts, options) => {
|
|
63
|
+
if (typeof parts === 'string') {
|
|
64
|
+
return parts;
|
|
65
|
+
}
|
|
66
|
+
return parts.join(options?.separator || DEFAULT_SEPARATOR);
|
|
67
|
+
};
|
|
68
|
+
exports.default = (obj, path, value, options) => {
|
|
69
|
+
const pathParts = split(path, options);
|
|
70
|
+
// Check if any part of the path is a reserved key
|
|
71
|
+
const unsafeKeyExist = doUnsafeKeysExist(pathParts);
|
|
72
|
+
if (unsafeKeyExist) {
|
|
73
|
+
const safePath = treatUnsafeKeys(pathParts, options);
|
|
74
|
+
Object.defineProperty(obj, safePath, {
|
|
75
|
+
value,
|
|
76
|
+
writable: true,
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true,
|
|
79
|
+
});
|
|
80
|
+
return obj;
|
|
81
|
+
}
|
|
82
|
+
return (0, set_value_1.default)(obj, path, value, options);
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NldC12YWx1ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUFpQztBQUVqQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBRS9FLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYSxFQUFFLFVBQTRCLEVBQUUsRUFBdUIsRUFBRTtJQUN6RixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLGlCQUFpQixDQUFDO0lBQ25ELE1BQU0sUUFBUSxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUU3RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdkUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxLQUFLLEdBQXdCLEVBQUUsQ0FBQztJQUN0QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7SUFFZCxNQUFNLHFCQUFxQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0RCxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsdUNBQXVDO0lBQ3ZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRTtZQUNuQyxJQUFJLElBQUksS0FBSyxDQUFDO1NBQ2Y7UUFFRCxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsdUNBQXVDO1lBQ3ZDLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQjtRQUVELElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRTtZQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNYO0tBQ0Y7SUFFRCxJQUFJLElBQUksRUFBRTtRQUNSLEtBQUssQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN6QztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUF3QixFQUFFLE9BQTBCLEVBQTZCLEVBQUU7SUFDaEcsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNyQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssVUFBVTtZQUFFLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRSxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFnQyxFQUFXLEVBQUU7SUFDdEUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0lBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBbUMsRUFDbkMsT0FBMEIsRUFDbEIsRUFBRTtJQUNWLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUVGLGtCQUFlLENBQUMsR0FBVyxFQUFFLElBQXdCLEVBQUUsS0FBVSxFQUFFLE9BQTBCLEVBQUUsRUFBRTtJQUMvRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLGtEQUFrRDtJQUNsRCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxJQUFJLGNBQWMsRUFBRTtRQUNsQixNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUNuQyxLQUFLO1lBQ0wsUUFBUSxFQUFFLElBQUk7WUFDZCxVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztLQUNaO0lBRUQsT0FBTyxJQUFBLG1CQUFRLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNldFZhbHVlIGZyb20gJ3NldC12YWx1ZSc7XG5cbmNvbnN0IERFRkFVTFRfU0VQQVJBVE9SID0gJy4nO1xuY29uc3QgUkVTRVJWRURfS0VZUyA9IE9iamVjdC5mcmVlemUoWydfX3Byb3RvX18nLCAnY29uc3RydWN0b3InLCAncHJvdG90eXBlJ10pO1xuXG5jb25zdCBzcGxpdFN0cmluZyA9IChpbnB1dDogc3RyaW5nLCBvcHRpb25zOiBzZXRWYWx1ZS5PcHRpb25zID0ge30pOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0+IHtcbiAgY29uc3Qgc2VwID0gb3B0aW9ucy5zZXBhcmF0b3IgfHwgREVGQVVMVF9TRVBBUkFUT1I7XG4gIGNvbnN0IHByZXNlcnZlID0gc2VwID09PSAnLycgPyBmYWxzZSA6IG9wdGlvbnMucHJlc2VydmVQYXRocztcblxuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyAmJiBwcmVzZXJ2ZSAhPT0gZmFsc2UgJiYgL1xcLy8udGVzdChpbnB1dCkpIHtcbiAgICByZXR1cm4gW2lucHV0XTtcbiAgfVxuXG4gIGNvbnN0IHBhcnRzOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gW107XG4gIGxldCBwYXJ0ID0gJyc7XG5cbiAgY29uc3QgY29udmVydFRvUHVzaGFibGVQYXJ0ID0gKHB1c2hQYXJ0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIocHVzaFBhcnQpO1xuICAgIGlmIChwdXNoUGFydC50cmltKCkgIT09ICcnICYmIE51bWJlci5pc0ludGVnZXIobnVtYmVyKSkge1xuICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICB9XG4gICAgcmV0dXJuIHB1c2hQYXJ0O1xuICB9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dFtpXTtcbiAgICBpZiAodmFsdWUgIT09ICdcXFxcJyAmJiB2YWx1ZSAhPT0gc2VwKSB7XG4gICAgICBwYXJ0ICs9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJ1xcXFwnKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGx1c3BsdXNcbiAgICAgIHBhcnQgKz0gaW5wdXRbKytpXTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IHNlcCkge1xuICAgICAgcGFydHMucHVzaChjb252ZXJ0VG9QdXNoYWJsZVBhcnQocGFydCkpO1xuICAgICAgcGFydCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwYXJ0KSB7XG4gICAgcGFydHMucHVzaChjb252ZXJ0VG9QdXNoYWJsZVBhcnQocGFydCkpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnRzO1xufTtcblxuY29uc3Qgc3BsaXQgPSAocGF0aDogc2V0VmFsdWUuSW5wdXRUeXBlLCBvcHRpb25zPzogc2V0VmFsdWUuT3B0aW9ucyk6IHN0cmluZyB8IChzdHJpbmcgfCBhbnkpW10gPT4ge1xuICBpZiAodHlwZW9mIHBhdGggPT09ICdzeW1ib2wnKSByZXR1cm4gW3BhdGhdO1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXRoKSkgcmV0dXJuIHBhdGg7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAob3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5zcGxpdCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG9wdGlvbnMuc3BsaXQocGF0aCk7XG4gICAgcmV0dXJuIHNwbGl0U3RyaW5nKHBhdGgsIG9wdGlvbnMpO1xuICB9XG4gIHJldHVybiBbXTtcbn07XG5cbmNvbnN0IGRvVW5zYWZlS2V5c0V4aXN0ID0gKHBhcnRzOiBzdHJpbmcgfCAoc3RyaW5nIHwgYW55KVtdKTogYm9vbGVhbiA9PiB7XG4gIGlmICh0eXBlb2YgcGFydHMgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFJFU0VSVkVEX0tFWVMuaW5jbHVkZXMocGFydHMpO1xuICB9XG4gIHJldHVybiBwYXJ0cy5zb21lKChwYXJ0KSA9PiBSRVNFUlZFRF9LRVlTLmluY2x1ZGVzKHBhcnQpKTtcbn07XG5cbmNvbnN0IHRyZWF0VW5zYWZlS2V5cyA9IChcbiAgcGFydHM6IHN0cmluZyB8IChzdHJpbmcgfCBudW1iZXIpW10sXG4gIG9wdGlvbnM/OiBzZXRWYWx1ZS5PcHRpb25zLFxuKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBwYXJ0cyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFydHM7XG4gIH1cbiAgcmV0dXJuIHBhcnRzLmpvaW4ob3B0aW9ucz8uc2VwYXJhdG9yIHx8IERFRkFVTFRfU0VQQVJBVE9SKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChvYmo6IG9iamVjdCwgcGF0aDogc2V0VmFsdWUuSW5wdXRUeXBlLCB2YWx1ZTogYW55LCBvcHRpb25zPzogc2V0VmFsdWUuT3B0aW9ucykgPT4ge1xuICBjb25zdCBwYXRoUGFydHMgPSBzcGxpdChwYXRoLCBvcHRpb25zKTtcblxuICAvLyBDaGVjayBpZiBhbnkgcGFydCBvZiB0aGUgcGF0aCBpcyBhIHJlc2VydmVkIGtleVxuICBjb25zdCB1bnNhZmVLZXlFeGlzdCA9IGRvVW5zYWZlS2V5c0V4aXN0KHBhdGhQYXJ0cyk7XG4gIGlmICh1bnNhZmVLZXlFeGlzdCkge1xuICAgIGNvbnN0IHNhZmVQYXRoID0gdHJlYXRVbnNhZmVLZXlzKHBhdGhQYXJ0cywgb3B0aW9ucyk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgc2FmZVBhdGgsIHtcbiAgICAgIHZhbHVlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICByZXR1cm4gc2V0VmFsdWUob2JqLCBwYXRoLCB2YWx1ZSwgb3B0aW9ucyk7XG59O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-value.test.d.ts","sourceRoot":"","sources":["../../../src/lib/set-value/set-value.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const split_string_1 = __importDefault(require("split-string"));
|
|
7
|
+
const _1 = __importDefault(require("."));
|
|
8
|
+
describe('set-value', () => {
|
|
9
|
+
it('should set value', () => {
|
|
10
|
+
const obj = {};
|
|
11
|
+
(0, _1.default)(obj, 'a.b.c', 1);
|
|
12
|
+
expect(obj).toEqual({ a: { b: { c: 1 } } });
|
|
13
|
+
});
|
|
14
|
+
it('should not allow setting constructor', () => {
|
|
15
|
+
const obj = {};
|
|
16
|
+
(0, _1.default)(obj, 'a.constructor.b', 'c');
|
|
17
|
+
expect(obj['a.constructor.b']).toBe('c');
|
|
18
|
+
(0, _1.default)(obj, 'a.constructor', 'c');
|
|
19
|
+
expect(obj['a.constructor']).toBe('c');
|
|
20
|
+
(0, _1.default)(obj, 'constructor', 'c');
|
|
21
|
+
expect(obj.constructor).toBe('c');
|
|
22
|
+
});
|
|
23
|
+
it('should not allow setting prototype', () => {
|
|
24
|
+
const obj = {};
|
|
25
|
+
(0, _1.default)(obj, 'a.prototype.b', 'c');
|
|
26
|
+
expect(obj['a.prototype.b']).toBe('c');
|
|
27
|
+
(0, _1.default)(obj, 'a.prototype', 'c');
|
|
28
|
+
expect(obj['a.prototype']).toBe('c');
|
|
29
|
+
(0, _1.default)(obj, 'prototype', 'c');
|
|
30
|
+
expect(obj.prototype).toBe('c');
|
|
31
|
+
});
|
|
32
|
+
it('should not allow setting __proto__', () => {
|
|
33
|
+
const obj = {};
|
|
34
|
+
(0, _1.default)(obj, 'a.__proto__.b', 'c');
|
|
35
|
+
expect(obj['a.__proto__.b']).toBe('c');
|
|
36
|
+
(0, _1.default)(obj, 'a.__proto__', 'c');
|
|
37
|
+
expect(obj['a.__proto__']).toBe('c');
|
|
38
|
+
(0, _1.default)(obj, '__proto__', 'c');
|
|
39
|
+
// eslint-disable-next-line no-proto
|
|
40
|
+
expect(obj.__proto__).toBe('c');
|
|
41
|
+
});
|
|
42
|
+
it('should set when key is a symbol', () => {
|
|
43
|
+
const key = Symbol('foo');
|
|
44
|
+
const obj = {};
|
|
45
|
+
(0, _1.default)(obj, key, 'bar');
|
|
46
|
+
expect(obj[key]).toBe('bar');
|
|
47
|
+
});
|
|
48
|
+
it('should support passing an array as the key', () => {
|
|
49
|
+
const actual = (0, _1.default)({ a: 'a', b: { c: 'd' } }, ['b', 'c', 'd'], 'eee');
|
|
50
|
+
expect(actual).toEqual({ a: 'a', b: { c: { d: 'eee' } } });
|
|
51
|
+
});
|
|
52
|
+
it('should merge an existing value with the given value', () => {
|
|
53
|
+
const obj = { a: { b: { c: 'd' } } };
|
|
54
|
+
(0, _1.default)(obj, 'a.b', { y: 'z' }, { merge: true });
|
|
55
|
+
expect(obj.a.b).toEqual({ c: 'd', y: 'z' });
|
|
56
|
+
});
|
|
57
|
+
it('should not split properties with a forward slash when preservePaths is true', () => {
|
|
58
|
+
const obj = {};
|
|
59
|
+
(0, _1.default)(obj, 'foo/bar/baz.md', 'c', { preservePaths: true });
|
|
60
|
+
expect(obj['foo/bar/baz.md']).toBe('c');
|
|
61
|
+
});
|
|
62
|
+
it('should use a custom function to not split inside double quotes', () => {
|
|
63
|
+
const keep = (value, _state) => value !== '"' && value !== "'";
|
|
64
|
+
const options = {
|
|
65
|
+
split(prop) {
|
|
66
|
+
return (0, split_string_1.default)(prop, { separator: '.', brackets: true, quotes: true, keep });
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
const obj = {};
|
|
70
|
+
// @ts-expect-error: set-value does not support this return-type
|
|
71
|
+
(0, _1.default)(obj, 'a."b.c.d".e', 'c', options);
|
|
72
|
+
expect(obj.a['b.c.d'].e).toBe('c');
|
|
73
|
+
});
|
|
74
|
+
it('should use simple String.split() when options.split is not defined', () => {
|
|
75
|
+
const obj = {};
|
|
76
|
+
(0, _1.default)(obj, 'a."b.c.d".e', 'c');
|
|
77
|
+
expect(obj.a['"b'].c['d"'].e).toBe('c');
|
|
78
|
+
});
|
|
79
|
+
it('should set a deeply nested value', () => {
|
|
80
|
+
const obj = { a: 'a', b: { c: 'd' } };
|
|
81
|
+
(0, _1.default)(obj, 'b.c.d', 'eee');
|
|
82
|
+
expect(obj).toEqual({ a: 'a', b: { c: { d: 'eee' } } });
|
|
83
|
+
});
|
|
84
|
+
it('should create a deeply nested property if it does not already exist', () => {
|
|
85
|
+
const obj = {};
|
|
86
|
+
(0, _1.default)(obj, 'a.b.c.d.e', 'c');
|
|
87
|
+
expect(obj.a.b.c.d.e).toBe('c');
|
|
88
|
+
});
|
|
89
|
+
it('should handle array indices correctly', () => {
|
|
90
|
+
const obj = { a: [1, 2, 3] };
|
|
91
|
+
(0, _1.default)(obj, 'a.1', 42);
|
|
92
|
+
expect(obj.a[1]).toBe(42);
|
|
93
|
+
});
|
|
94
|
+
it('should handle setting values on arrays', () => {
|
|
95
|
+
const obj = {};
|
|
96
|
+
(0, _1.default)(obj, 'a.0.b', 'c');
|
|
97
|
+
expect(obj.a[0].b).toBe('c');
|
|
98
|
+
});
|
|
99
|
+
it('should handle setting values with special characters in keys', () => {
|
|
100
|
+
const obj = {};
|
|
101
|
+
(0, _1.default)(obj, 'a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z', 'z');
|
|
102
|
+
expect(obj.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z).toBe('z');
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXZhbHVlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NldC12YWx1ZS9zZXQtdmFsdWUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUFpQztBQUNqQyx5Q0FBeUI7QUFFekIsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7SUFDekIsRUFBRSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUMxQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixJQUFBLFVBQVEsRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO1FBQzlDLE1BQU0sR0FBRyxHQUF3QixFQUFFLENBQUM7UUFDcEMsSUFBQSxVQUFRLEVBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFBLFVBQVEsRUFBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBQSxVQUFRLEVBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7UUFDNUMsTUFBTSxHQUFHLEdBQXdCLEVBQUUsQ0FBQztRQUNwQyxJQUFBLFVBQVEsRUFBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBQSxVQUFRLEVBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUEsVUFBUSxFQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO1FBQzVDLE1BQU0sR0FBRyxHQUF3QixFQUFFLENBQUM7UUFDcEMsSUFBQSxVQUFRLEVBQUMsR0FBRyxFQUFFLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUEsVUFBUSxFQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFBLFVBQVEsRUFBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLG9DQUFvQztRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7UUFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUEsVUFBUSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxVQUFRLEVBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1FBQzdELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNyQyxJQUFBLFVBQVEsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUs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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3BsaXQgZnJvbSAnc3BsaXQtc3RyaW5nJztcbmltcG9ydCBzZXRWYWx1ZSBmcm9tICcuJztcblxuZGVzY3JpYmUoJ3NldC12YWx1ZScsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBzZXQgdmFsdWUnLCAoKSA9PiB7XG4gICAgY29uc3Qgb2JqID0ge307XG4gICAgc2V0VmFsdWUob2JqLCAnYS5iLmMnLCAxKTtcbiAgICBleHBlY3Qob2JqKS50b0VxdWFsKHsgYTogeyBiOiB7IGM6IDEgfSB9IH0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIG5vdCBhbGxvdyBzZXR0aW5nIGNvbnN0cnVjdG9yJywgKCkgPT4ge1xuICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHNldFZhbHVlKG9iaiwgJ2EuY29uc3RydWN0b3IuYicsICdjJyk7XG4gICAgZXhwZWN0KG9ialsnYS5jb25zdHJ1Y3Rvci5iJ10pLnRvQmUoJ2MnKTtcbiAgICBzZXRWYWx1ZShvYmosICdhLmNvbnN0cnVjdG9yJywgJ2MnKTtcbiAgICBleHBlY3Qob2JqWydhLmNvbnN0cnVjdG9yJ10pLnRvQmUoJ2MnKTtcbiAgICBzZXRWYWx1ZShvYmosICdjb25zdHJ1Y3RvcicsICdjJyk7XG4gICAgZXhwZWN0KG9iai5jb25zdHJ1Y3RvcikudG9CZSgnYycpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIG5vdCBhbGxvdyBzZXR0aW5nIHByb3RvdHlwZScsICgpID0+IHtcbiAgICBjb25zdCBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBzZXRWYWx1ZShvYmosICdhLnByb3RvdHlwZS5iJywgJ2MnKTtcbiAgICBleHBlY3Qob2JqWydhLnByb3RvdHlwZS5iJ10pLnRvQmUoJ2MnKTtcbiAgICBzZXRWYWx1ZShvYmosICdhLnByb3RvdHlwZScsICdjJyk7XG4gICAgZXhwZWN0KG9ialsnYS5wcm90b3R5cGUnXSkudG9CZSgnYycpO1xuICAgIHNldFZhbHVlKG9iaiwgJ3Byb3RvdHlwZScsICdjJyk7XG4gICAgZXhwZWN0KG9iai5wcm90b3R5cGUpLnRvQmUoJ2MnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgYWxsb3cgc2V0dGluZyBfX3Byb3RvX18nLCAoKSA9PiB7XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgc2V0VmFsdWUob2JqLCAnYS5fX3Byb3RvX18uYicsICdjJyk7XG4gICAgZXhwZWN0KG9ialsnYS5fX3Byb3RvX18uYiddKS50b0JlKCdjJyk7XG4gICAgc2V0VmFsdWUob2JqLCAnYS5fX3Byb3RvX18nLCAnYycpO1xuICAgIGV4cGVjdChvYmpbJ2EuX19wcm90b19fJ10pLnRvQmUoJ2MnKTtcbiAgICBzZXRWYWx1ZShvYmosICdfX3Byb3RvX18nLCAnYycpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuICAgIGV4cGVjdChvYmouX19wcm90b19fKS50b0JlKCdjJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IHdoZW4ga2V5IGlzIGEgc3ltYm9sJywgKCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IFN5bWJvbCgnZm9vJyk7XG4gICAgY29uc3Qgb2JqID0ge307XG4gICAgc2V0VmFsdWUob2JqLCBrZXksICdiYXInKTtcbiAgICBleHBlY3Qob2JqW2tleV0pLnRvQmUoJ2JhcicpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHN1cHBvcnQgcGFzc2luZyBhbiBhcnJheSBhcyB0aGUga2V5JywgKCkgPT4ge1xuICAgIGNvbnN0IGFjdHVhbCA9IHNldFZhbHVlKHsgYTogJ2EnLCBiOiB7IGM6ICdkJyB9IH0sIFsnYicsICdjJywgJ2QnXSwgJ2VlZScpO1xuICAgIGV4cGVjdChhY3R1YWwpLnRvRXF1YWwoeyBhOiAnYScsIGI6IHsgYzogeyBkOiAnZWVlJyB9IH0gfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbWVyZ2UgYW4gZXhpc3RpbmcgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUnLCAoKSA9PiB7XG4gICAgY29uc3Qgb2JqID0geyBhOiB7IGI6IHsgYzogJ2QnIH0gfSB9O1xuICAgIHNldFZhbHVlKG9iaiwgJ2EuYicsIHsgeTogJ3onIH0sIHsgbWVyZ2U6IHRydWUgfSk7XG4gICAgZXhwZWN0KG9iai5hLmIpLnRvRXF1YWwoeyBjOiAnZCcsIHk6ICd6JyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3Qgc3BsaXQgcHJvcGVydGllcyB3aXRoIGEgZm9yd2FyZCBzbGFzaCB3aGVuIHByZXNlcnZlUGF0aHMgaXMgdHJ1ZScsICgpID0+IHtcbiAgICBjb25zdCBvYmogPSB7fTtcbiAgICBzZXRWYWx1ZShvYmosICdmb28vYmFyL2Jhei5tZCcsICdjJywgeyBwcmVzZXJ2ZVBhdGhzOiB0cnVlIH0pO1xuICAgIGV4cGVjdChvYmpbJ2Zvby9iYXIvYmF6Lm1kJ10pLnRvQmUoJ2MnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB1c2UgYSBjdXN0b20gZnVuY3Rpb24gdG8gbm90IHNwbGl0IGluc2lkZSBkb3VibGUgcXVvdGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IGtlZXAgPSAodmFsdWUsIF9zdGF0ZSkgPT4gdmFsdWUgIT09ICdcIicgJiYgdmFsdWUgIT09IFwiJ1wiO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNwbGl0KHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHNwbGl0KHByb3AsIHsgc2VwYXJhdG9yOiAnLicsIGJyYWNrZXRzOiB0cnVlLCBxdW90ZXM6IHRydWUsIGtlZXAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc2V0LXZhbHVlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyByZXR1cm4tdHlwZVxuICAgIHNldFZhbHVlKG9iaiwgJ2EuXCJiLmMuZFwiLmUnLCAnYycsIG9wdGlvbnMpO1xuICAgIGV4cGVjdChvYmouYVsnYi5jLmQnXS5lKS50b0JlKCdjJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdXNlIHNpbXBsZSBTdHJpbmcuc3BsaXQoKSB3aGVuIG9wdGlvbnMuc3BsaXQgaXMgbm90IGRlZmluZWQnLCAoKSA9PiB7XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgc2V0VmFsdWUob2JqLCAnYS5cImIuYy5kXCIuZScsICdjJyk7XG4gICAgZXhwZWN0KG9iai5hWydcImInXS5jWydkXCInXS5lKS50b0JlKCdjJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGEgZGVlcGx5IG5lc3RlZCB2YWx1ZScsICgpID0+IHtcbiAgICBjb25zdCBvYmogPSB7IGE6ICdhJywgYjogeyBjOiAnZCcgfSB9O1xuICAgIHNldFZhbHVlKG9iaiwgJ2IuYy5kJywgJ2VlZScpO1xuICAgIGV4cGVjdChvYmopLnRvRXF1YWwoeyBhOiAnYScsIGI6IHsgYzogeyBkOiAnZWVlJyB9IH0gfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY3JlYXRlIGEgZGVlcGx5IG5lc3RlZCBwcm9wZXJ0eSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JywgKCkgPT4ge1xuICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHNldFZhbHVlKG9iaiwgJ2EuYi5jLmQuZScsICdjJyk7XG4gICAgZXhwZWN0KG9iai5hLmIuYy5kLmUpLnRvQmUoJ2MnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYXJyYXkgaW5kaWNlcyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0geyBhOiBbMSwgMiwgM10gfTtcbiAgICBzZXRWYWx1ZShvYmosICdhLjEnLCA0Mik7XG4gICAgZXhwZWN0KG9iai5hWzFdKS50b0JlKDQyKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBoYW5kbGUgc2V0dGluZyB2YWx1ZXMgb24gYXJyYXlzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHNldFZhbHVlKG9iaiwgJ2EuMC5iJywgJ2MnKTtcbiAgICBleHBlY3Qob2JqLmFbMF0uYikudG9CZSgnYycpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBzZXR0aW5nIHZhbHVlcyB3aXRoIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBrZXlzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHNldFZhbHVlKG9iaiwgJ2EuYi5jLmQuZS5mLmcuaC5pLmouay5sLm0ubi5vLnAucS5yLnMudC51LnYudy54LnkueicsICd6Jyk7XG4gICAgZXhwZWN0KG9iai5hLmIuYy5kLmUuZi5nLmguaS5qLmsubC5tLm4uby5wLnEuci5zLnQudS52LncueC55LnopLnRvQmUoJ3onKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
package/build/utils/misc.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":";AACA,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,GAAG,MAAM,WAAW,CAAC;AAK5B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMtD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACpB,eAAO,MAAM,SAAS,MAAO,OAAO,YAAsB,CAAC;AAC3D,eAAO,MAAM,UAAU,MAAO,OAAO,YAAkB,CAAC;AACxD,eAAO,MAAM,SAAS,MAAO,OAAO,YAAc,CAAC;AACnD,eAAO,MAAM,mBAAmB,MAAO,OAAO,YAAiC,CAAC;AAChF,eAAO,MAAM,8BAA8B,MAAO,OAAO,YACV,CAAC;AAChD,eAAO,MAAM,OAAO,UAAW,OAAO,YAAiC,CAAC;AAGxE,eAAO,MAAM,qBAAqB,QAAS,OAAO,YAGjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,OAAO,YAG5C,CAAC;AACF,eAAO,MAAM,4BAA4B,QAAS,OAAO,YAGxD,CAAC;AACF,eAAO,MAAM,oCAAoC,QAAS,OAAO,YAGhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,eAAgB,OAAO,YAG7C,CAAC;AAMF,eAAO,MAAM,YAAY,YAAa,gBAAgB,SASrD,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,MAAM,WAA2C,CAAC;AAG1F,eAAO,MAAM,UAAU,QAAS,MAAM,GAAG,GAAG,eAM3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,WACK,CAAC;AAEpD,eAAO,MAAM,WAAW,QAAS,OAAO,YAGvC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,QAAS,OAAO,mHASnC,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,OAAO,YAGtC,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,OAAO,YAAwC,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,GAAG,YAMrC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,YAOpD,CAAC;AAEJ,eAAO,MAAM,mCAAmC,QAAS,OAAO,YAG/D,CAAC;AAGF,eAAO,MAAM,gBAAgB,8EAU5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,WAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,gEAsBvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,8DAS7C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B;;;SAQ1C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,SAAU,OAAO,0CA+BxC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM,uBAY3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,YAAa,MAAM,WAAW,MAAM,oBAS/D,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,WAAkB,CAAC;AAEjF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,QAAO,MAA0D,CAAC;AAI3F,eAAO,MAAM,kBAAkB,aACnB,QAAQ,EAAE,cACR,MAAM,SACX,MAAM,YACH,MAAM,YACP,OAAO;cAEN,QAAQ,EAAE;gBACR,MAAM;WACX,MAAM;cACH,MAAM;aACP,OAAO;CAOhB,CAAC"}
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":";AACA,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,GAAG,MAAM,WAAW,CAAC;AAK5B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMtD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACpB,eAAO,MAAM,SAAS,MAAO,OAAO,YAAsB,CAAC;AAC3D,eAAO,MAAM,UAAU,MAAO,OAAO,YAAkB,CAAC;AACxD,eAAO,MAAM,SAAS,MAAO,OAAO,YAAc,CAAC;AACnD,eAAO,MAAM,mBAAmB,MAAO,OAAO,YAAiC,CAAC;AAChF,eAAO,MAAM,8BAA8B,MAAO,OAAO,YACV,CAAC;AAChD,eAAO,MAAM,OAAO,UAAW,OAAO,YAAiC,CAAC;AAGxE,eAAO,MAAM,qBAAqB,QAAS,OAAO,YAGjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,OAAO,YAG5C,CAAC;AACF,eAAO,MAAM,4BAA4B,QAAS,OAAO,YAGxD,CAAC;AACF,eAAO,MAAM,oCAAoC,QAAS,OAAO,YAGhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,eAAgB,OAAO,YAG7C,CAAC;AAMF,eAAO,MAAM,YAAY,YAAa,gBAAgB,SASrD,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,MAAM,WAA2C,CAAC;AAG1F,eAAO,MAAM,UAAU,QAAS,MAAM,GAAG,GAAG,eAM3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,WACK,CAAC;AAEpD,eAAO,MAAM,WAAW,QAAS,OAAO,YAGvC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,QAAS,OAAO,mHASnC,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,OAAO,YAGtC,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,OAAO,YAAwC,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,GAAG,YAMrC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,YAOpD,CAAC;AAEJ,eAAO,MAAM,mCAAmC,QAAS,OAAO,YAG/D,CAAC;AAGF,eAAO,MAAM,gBAAgB,8EAU5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,WAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,gEAsBvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,8DAS7C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B;;;SAQ1C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,SAAU,OAAO,0CA+BxC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM,uBAY3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,YAAa,MAAM,WAAW,MAAM,oBAS/D,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,WAAkB,CAAC;AAEjF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,QAAO,MAA0D,CAAC;AAI3F,eAAO,MAAM,kBAAkB,aACnB,QAAQ,EAAE,cACR,MAAM,SACX,MAAM,YACH,MAAM,YACP,OAAO;cAEN,QAAQ,EAAE;gBACR,MAAM;WACX,MAAM;cACH,MAAM;aACP,OAAO;CAOhB,CAAC;AAEH,eAAO,MAAM,eAAe,UAAW,GAAG,WAKzC,CAAC"}
|
package/build/utils/misc.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.getErrorRespEvents = exports.generateUUID = exports.hashToSha256 = exports.formatTimeStamp = exports.getOffsetInSec = exports.flattenJson = exports.getValueFromPropertiesOrTraits = exports.getHashFromArrayWithValueAsObject = exports.getHashFromArrayWithDuplicate = exports.getHashFromArray = exports.removeUndefinedNullEmptyExclBoolInt = exports.isDefinedNotNullNotEmpty = exports.isEmptyObject = exports.isEmpty = exports.isObject = exports.getType = exports.isPrimitive = exports.stripTrailingSlash = exports.isValidUrl = exports.base64Convertor = exports.getEventTime = exports.flattenMap = exports.removeUndefinedAndNullAndEmptyValues = exports.removeUndefinedAndNullValues = exports.removeNullValues = exports.removeUndefinedValues = exports.isBlank = exports.isDefinedAndNotNullAndNotEmpty = exports.isDefinedAndNotNull = exports.isNotNull = exports.isNotEmpty = exports.isDefined = exports.set = exports.get = void 0;
|
|
29
|
+
exports.convertToString = exports.getErrorRespEvents = exports.generateUUID = exports.hashToSha256 = exports.formatTimeStamp = exports.getOffsetInSec = exports.flattenJson = exports.getValueFromPropertiesOrTraits = exports.getHashFromArrayWithValueAsObject = exports.getHashFromArrayWithDuplicate = exports.getHashFromArray = exports.removeUndefinedNullEmptyExclBoolInt = exports.isDefinedNotNullNotEmpty = exports.isEmptyObject = exports.isEmpty = exports.isObject = exports.getType = exports.isPrimitive = exports.stripTrailingSlash = exports.isValidUrl = exports.base64Convertor = exports.getEventTime = exports.flattenMap = exports.removeUndefinedAndNullAndEmptyValues = exports.removeUndefinedAndNullValues = exports.removeNullValues = exports.removeUndefinedValues = exports.isBlank = exports.isDefinedAndNotNullAndNotEmpty = exports.isDefinedAndNotNull = exports.isNotNull = exports.isNotEmpty = exports.isDefined = exports.set = exports.get = void 0;
|
|
30
30
|
const lodash_1 = __importDefault(require("lodash"));
|
|
31
31
|
const get_value_1 = __importDefault(require("get-value"));
|
|
32
32
|
exports.get = get_value_1.default;
|
|
@@ -365,4 +365,11 @@ const getErrorRespEvents = (metadata, statusCode, error, statTags, batched = fal
|
|
|
365
365
|
statTags,
|
|
366
366
|
});
|
|
367
367
|
exports.getErrorRespEvents = getErrorRespEvents;
|
|
368
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLDBEQUE0QjtBQVluQixjQVpGLG1CQUFHLENBWUU7QUFYWiwwREFBNEI7QUFXZCxjQVhQLG1CQUFHLENBV087QUFWakIsc0VBQXFDO0FBQ3JDLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsa0RBQW9DO0FBRXBDLDJFQUF1RTtBQU1oRSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUE5QyxRQUFBLFNBQVMsYUFBcUM7QUFDcEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBM0MsUUFBQSxVQUFVLGNBQWlDO0FBQ2pELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQXRDLFFBQUEsU0FBUyxhQUE2QjtBQUM1QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGlCQUFTLEVBQUMsQ0FBQyxDQUFDLElBQUksSUFBQSxpQkFBUyxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQW5FLFFBQUEsbUJBQW1CLHVCQUFnRDtBQUN6RSxNQUFNLDhCQUE4QixHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FDM0QsSUFBQSxpQkFBUyxFQUFDLENBQUMsQ0FBQyxJQUFJLElBQUEsaUJBQVMsRUFBQyxDQUFDLENBQUMsSUFBSSxJQUFBLGtCQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFEbkMsUUFBQSw4QkFBOEIsa0NBQ0s7QUFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLGdCQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFBM0QsUUFBQSxPQUFPLFdBQW9EO0FBRXhFLDJFQUEyRTtBQUNwRSxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDcEQsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ2pDLE9BQU8sZ0JBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGlCQUFTLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFIVyxRQUFBLHFCQUFxQix5QkFHaEM7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDL0MsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ2pDLE9BQU8sZ0JBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGlCQUFTLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFIVyxRQUFBLGdCQUFnQixvQkFHM0I7QUFDSyxNQUFNLDRCQUE0QixHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDM0QsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ2pDLE9BQU8sZ0JBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLDJCQUFtQixDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSw0QkFBNEIsZ0NBR3ZDO0FBQ0ssTUFBTSxvQ0FBb0MsR0FBRyxDQUFDLEdBQVksRUFBRSxFQUFFO0lBQ25FLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUNqQyxPQUFPLGdCQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxzQ0FBOEIsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQztBQUhXLFFBQUEsb0NBQW9DLHdDQUcvQztBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLFVBQVUsR0FBRyxDQUFDLFVBQW1CLEVBQUUsRUFBRTtJQUNoRCxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUN6RSxPQUFPLGdCQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxVQUFVLGNBR3JCO0FBRUYsMkVBQTJFO0FBQzNFLGlCQUFpQjtBQUNqQiwyRUFBMkU7QUFFcEUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUF5QixFQUFFLEVBQUU7SUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCO1FBQ2xELE1BQU0sSUFBSSw0Q0FBb0IsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQ3ZGLElBQUk7UUFDRixJQUFJLE9BQU8sQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDM0Q7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDL0M7SUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQVRXLFFBQUEsWUFBWSxnQkFTdkI7QUFFSyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFBN0UsUUFBQSxlQUFlLG1CQUE4RDtBQUUxRixpREFBaUQ7QUFDMUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFpQixFQUFFLEVBQUU7SUFDOUMsSUFBSTtRQUNGLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckI7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDLENBQUM7QUFOVyxRQUFBLFVBQVUsY0FNckI7QUFFSyxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDaEQsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUR2QyxRQUFBLGtCQUFrQixzQkFDcUI7QUFFN0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRTtJQUMxQyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsQ0FBQztJQUN4QixPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFIVyxRQUFBLFdBQVcsZUFHdEI7QUFFRjs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDdEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHLENBQUM7SUFDeEIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ2YsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN0QixPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBVFcsUUFBQSxPQUFPLFdBU2xCO0FBRUssTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUN6QyxNQUFNLElBQUksR0FBRyxPQUFPLEtBQUssQ0FBQztJQUMxQixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUYsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CO0FBRUssTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLGdCQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFBbEUsUUFBQSxPQUFPLFdBQTJEO0FBRS9FOzs7O0dBSUc7QUFDSSxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO0lBQ3hDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQU5XLFFBQUEsYUFBYSxpQkFNeEI7QUFFRjs7Ozs7OztHQU9HO0FBQ0ksTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQ3pELENBQUMsQ0FDQyxLQUFLLEtBQUssU0FBUztJQUNuQixLQUFLLEtBQUssSUFBSTtJQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ25CLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUN6RCxDQUFDO0FBUFMsUUFBQSx3QkFBd0IsNEJBT2pDO0FBRUcsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLEdBQVksRUFBRSxFQUFFO0lBQ2xFLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUNqQyxPQUFPLGdCQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxnQ0FBd0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUhXLFFBQUEsbUNBQW1DLHVDQUc5QztBQUVGLDZEQUE2RDtBQUN0RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sR0FBRyxNQUFNLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDN0YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUNwQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFWVyxRQUFBLGdCQUFnQixvQkFVM0I7QUFFRjs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sNkJBQTZCLEdBQUcsQ0FDM0MsTUFBc0MsRUFDdEMsT0FBTyxHQUFHLE1BQU0sRUFDaEIsS0FBSyxHQUFHLElBQUksRUFDWixXQUFXLEdBQUcsSUFBSSxFQUNsQixFQUFFO0lBQ0YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUNwQyxNQUFNLEdBQUcsR0FBRyxXQUFXO2dCQUNyQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRTtnQkFDaEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVyQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUF2QlcsUUFBQSw2QkFBNkIsaUNBdUJ4QztBQUVGOzs7Ozs7R0FNRztBQUNJLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDaEcsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUNwQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztLQUNKO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBVFcsUUFBQSxpQ0FBaUMscUNBUzVDO0FBRUY7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTFELE1BQU0sR0FBRyxHQUFHLGdCQUFDLENBQUMsSUFBSSxDQUNoQixnQkFBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsbUJBQUcsRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUNqRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDbkIsQ0FBQztJQUNGLE9BQU8sQ0FBQyxnQkFBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBUlcsUUFBQSw4QkFBOEIsa0NBUXpDO0FBRUY7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBYSxFQUFFLFNBQVMsR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLFFBQVEsRUFBRSxFQUFFO0lBQzdFLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQiw2REFBNkQ7SUFDN0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDNUIsSUFBSSxDQUFDLENBQUM7UUFDTixJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNwQjthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM1QztxQkFBTTtvQkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2xDO2FBQ0Y7WUFDRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7YUFBTTtZQUNMLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMvQixXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksV0FBVyxJQUFJLElBQUk7Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBL0JXLFFBQUEsV0FBVyxlQStCdEI7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQzlDLE1BQU0sSUFBSSxHQUFHLHlCQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxJQUFJLElBQUksRUFBRTtRQUNSLE1BQU0sQ0FBQyxHQUFHLElBQUEseUJBQU0sR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQy9FLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFaVyxRQUFBLGNBQWMsa0JBWXpCO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWUsRUFBRSxNQUFlLEVBQUUsRUFBRTtJQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQiw4Q0FBOEM7SUFDOUMsSUFBSSxNQUFNLEVBQUU7UUFDVixPQUFPLHlCQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN4QztJQUVELHdCQUF3QjtJQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN4QixDQUFDLENBQUM7QUFUVyxRQUFBLGVBQWUsbUJBUzFCO0FBRUssTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFBcEUsUUFBQSxZQUFZLGdCQUF3RDtBQUVqRjs7Ozs7OztHQU9HO0FBQ0ksTUFBTSxZQUFZLEdBQUcsR0FBVyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQTlFLFFBQUEsWUFBWSxnQkFBa0U7QUFFM0YscUJBQXFCO0FBQ3JCLGtCQUFrQjtBQUNYLE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsUUFBb0IsRUFDcEIsVUFBa0IsRUFDbEIsS0FBYSxFQUNiLFFBQWdCLEVBQ2hCLFVBQW1CLEtBQUssRUFPeEIsRUFBRSxDQUFDLENBQUM7SUFDSixRQUFRO0lBQ1IsT0FBTztJQUNQLFVBQVU7SUFDVixLQUFLO0lBQ0wsUUFBUTtDQUNULENBQUMsQ0FBQztBQWxCVSxRQUFBLGtCQUFrQixzQkFrQjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBnZXQgZnJvbSAnZ2V0LXZhbHVlJztcbmltcG9ydCBzZXQgZnJvbSAnc2V0LXZhbHVlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCBzaGEyNTYgZnJvbSAnc2hhMjU2JztcbmltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgTWV0YWRhdGEsIFJ1ZGRlclN0YWNrRXZlbnQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBJbnN0cnVtZW50YXRpb25FcnJvciB9IGZyb20gJy4uL2Vycm9ycy9pbnN0cnVtZW50YXRpb25fZXJyb3InO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIElOTElORVJTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCB7IGdldCwgc2V0IH07XG5leHBvcnQgY29uc3QgaXNEZWZpbmVkID0gKHg6IHVua25vd24pID0+ICFfLmlzVW5kZWZpbmVkKHgpO1xuZXhwb3J0IGNvbnN0IGlzTm90RW1wdHkgPSAoeDogdW5rbm93bikgPT4gIV8uaXNFbXB0eSh4KTtcbmV4cG9ydCBjb25zdCBpc05vdE51bGwgPSAoeDogdW5rbm93bikgPT4geCAhPSBudWxsO1xuZXhwb3J0IGNvbnN0IGlzRGVmaW5lZEFuZE5vdE51bGwgPSAoeDogdW5rbm93bikgPT4gaXNEZWZpbmVkKHgpICYmIGlzTm90TnVsbCh4KTtcbmV4cG9ydCBjb25zdCBpc0RlZmluZWRBbmROb3ROdWxsQW5kTm90RW1wdHkgPSAoeDogdW5rbm93bikgPT5cbiAgaXNEZWZpbmVkKHgpICYmIGlzTm90TnVsbCh4KSAmJiBpc05vdEVtcHR5KHgpO1xuZXhwb3J0IGNvbnN0IGlzQmxhbmsgPSAodmFsdWU6IHVua25vd24pID0+IF8uaXNFbXB0eShfLnRvU3RyaW5nKHZhbHVlKSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGNvbnN0IHJlbW92ZVVuZGVmaW5lZFZhbHVlcyA9IChvYmo6IHVua25vd24pID0+IHtcbiAgaWYgKCFfLmlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHJldHVybiBfLnBpY2tCeShvYmosIGlzRGVmaW5lZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTnVsbFZhbHVlcyA9IChvYmo6IHVua25vd24pID0+IHtcbiAgaWYgKCFfLmlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHJldHVybiBfLnBpY2tCeShvYmosIGlzTm90TnVsbCk7XG59O1xuZXhwb3J0IGNvbnN0IHJlbW92ZVVuZGVmaW5lZEFuZE51bGxWYWx1ZXMgPSAob2JqOiB1bmtub3duKSA9PiB7XG4gIGlmICghXy5pc09iamVjdChvYmopKSByZXR1cm4gb2JqO1xuICByZXR1cm4gXy5waWNrQnkob2JqLCBpc0RlZmluZWRBbmROb3ROdWxsKTtcbn07XG5leHBvcnQgY29uc3QgcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbEFuZEVtcHR5VmFsdWVzID0gKG9iajogdW5rbm93bikgPT4ge1xuICBpZiAoIV8uaXNPYmplY3Qob2JqKSkgcmV0dXJuIG9iajtcbiAgcmV0dXJuIF8ucGlja0J5KG9iaiwgaXNEZWZpbmVkQW5kTm90TnVsbEFuZE5vdEVtcHR5KTtcbn07XG5cbi8qKlxuICogVGhlIGZsYXR0ZW5NYXAgZnVuY3Rpb24gdGFrZXMgYSBjb2xsZWN0aW9uIGFzIGlucHV0IGFuZCByZXR1cm5zIGEgZmxhdHRlbmVkIHZlcnNpb24gb2YgdGhlIGNvbGxlY3Rpb24uIElmIHRoZSBpbnB1dCBpcyBub3QgYW4gYXJyYXkgb3IgYW4gb2JqZWN0LCBpdCBpcyByZXR1cm5lZCBhcyBpcy4gT3RoZXJ3aXNlLCB0aGUgZnVuY3Rpb24gdXNlcyB0aGUgZmxhdE1hcCBmdW5jdGlvbiBmcm9tIHRoZSBsb2Rhc2ggbGlicmFyeSB0byBmbGF0dGVuIHRoZSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIGNvbGxlY3Rpb25cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBmbGF0dGVuTWFwID0gKGNvbGxlY3Rpb246IHVua25vd24pID0+IHtcbiAgaWYgKCFfLmlzQXJyYXkoY29sbGVjdGlvbikgJiYgIV8uaXNPYmplY3QoY29sbGVjdGlvbikpIHJldHVybiBjb2xsZWN0aW9uO1xuICByZXR1cm4gXy5mbGF0TWFwKGNvbGxlY3Rpb24sICh4KSA9PiB4KTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR0VORVJJQyBVVExJVFlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgZ2V0RXZlbnRUaW1lID0gKG1lc3NhZ2U6IFJ1ZGRlclN0YWNrRXZlbnQpID0+IHtcbiAgaWYgKCFtZXNzYWdlLnRpbWVzdGFtcCAmJiAhbWVzc2FnZS5vcmlnaW5hbFRpbWVzdGFtcClcbiAgICB0aHJvdyBuZXcgSW5zdHJ1bWVudGF0aW9uRXJyb3IoJ0V2ZW50IGRvZXMgbm90IGhhdmUgdGltZXN0YW1wIG9yIG9yaWdpbmFsVGltZXN0YW1wJyk7XG4gIHRyeSB7XG4gICAgaWYgKG1lc3NhZ2UudGltZXN0YW1wKSByZXR1cm4gbmV3IERhdGUobWVzc2FnZS50aW1lc3RhbXApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmVycm9yKCdFcnJvciBpbiBwYXJzaW5nIHRpbWVzdGFtcCcsIGUpO1xuICB9XG4gIHJldHVybiBuZXcgRGF0ZShtZXNzYWdlLm9yaWdpbmFsVGltZXN0YW1wKTtcbn07XG5cbmV4cG9ydCBjb25zdCBiYXNlNjRDb252ZXJ0b3IgPSAoc3RyaW5nOiBzdHJpbmcpID0+IEJ1ZmZlci5mcm9tKHN0cmluZykudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuXG4vLyByZXR1cm4gYSB2YWxpZCBVUkwgb2JqZWN0IGlmIGNvcnJlY3QgZWxzZSBudWxsXG5leHBvcnQgY29uc3QgaXNWYWxpZFVybCA9ICh1cmw6IHN0cmluZyB8IFVSTCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgVVJMKHVybCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc3RyaXBUcmFpbGluZ1NsYXNoID0gKHN0cjogc3RyaW5nKSA9PlxuICBzdHIgJiYgc3RyLmVuZHNXaXRoKCcvJykgPyBzdHIuc2xpY2UoMCwgLTEpIDogc3RyO1xuXG5leHBvcnQgY29uc3QgaXNQcmltaXRpdmUgPSAoYXJnOiB1bmtub3duKSA9PiB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgYXJnO1xuICByZXR1cm4gYXJnID09IG51bGwgfHwgKHR5cGUgIT09ICdvYmplY3QnICYmIHR5cGUgIT09ICdmdW5jdGlvbicpO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBhcmdcbiAqIEByZXR1cm5zIHt0eXBlfVxuICpcbiAqIFJldHVybnMgdHlwZSBvZiBwYXNzZWQgYXJnXG4gKiBmb3IgbnVsbCBhcmdzcyByZXR1cm5zIFwiTlVMTFwiIGluc3RlZCBvZiBcIm9iamVjdFwiXG4gKlxuICovXG5leHBvcnQgY29uc3QgZ2V0VHlwZSA9IChhcmc6IHVua25vd24pID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiBhcmc7XG4gIGlmIChhcmcgPT0gbnVsbCkge1xuICAgIHJldHVybiAnTlVMTCc7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgIHJldHVybiAnYXJyYXknO1xuICB9XG4gIHJldHVybiB0eXBlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzT2JqZWN0ID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09PSAnb2JqZWN0JyB8fCB0eXBlID09PSAnZnVuY3Rpb24nKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eSA9IChpbnB1dDogdW5rbm93bikgPT4gXy5pc0VtcHR5KF8udG9TdHJpbmcoaW5wdXQpLnRyaW0oKSk7XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGZvciBlbXB0eSBvYmplY3Qge31cbiAqIEBwYXJhbSB7Kn0gb2JqXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgaXNFbXB0eU9iamVjdCA9IChvYmo6IGFueSkgPT4ge1xuICBpZiAoIW9iaikge1xuICAgIGxvZ2dlci53YXJuKCdpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbCcpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA9PT0gMDtcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gY2hlY2sgaWYgdmFsdWUgaXMgRGVmaW5lZCwgTm90IG51bGwgYW5kIE5vdCBFbXB0eS5cbiAqIENyZWF0ZSB0aGlzIGZ1bmN0aW9uLCBCZWNhdXNlIGV4aXN0aW5nIGlzRGVmaW5lZEFuZE5vdE51bGxBbmROb3RFbXB0eSgxMjMpIGlzIHJldHVybmluZyBmYWxzZSBkdWUgdG8gbG9kYXNoIF8uaXNFbXB0eSBmdW5jdGlvbi5cbiAqIF8uaXNFbXB0eSBpcyB1c2VkIHRvIGRldGVjdCBlbXB0eSBjb2xsZWN0aW9ucy9vYmplY3RzIGFuZCBpdCB3aWxsIHJldHVybiB0cnVlIGZvciBJbnRlZ2VyLCBCb29sZWFuIHZhbHVlcy5cbiAqIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvaXNzdWVzLzQ5NlxuICogQHBhcmFtIHsqfSB2YWx1ZSAxMjNcbiAqIEByZXR1cm5zIHllc1xuICovXG5leHBvcnQgY29uc3QgaXNEZWZpbmVkTm90TnVsbE5vdEVtcHR5ID0gKHZhbHVlOiB1bmtub3duKSA9PlxuICAhKFxuICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIE51bWJlci5pc05hTih2YWx1ZSkgfHxcbiAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApXG4gICk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVVbmRlZmluZWROdWxsRW1wdHlFeGNsQm9vbEludCA9IChvYmo6IHVua25vd24pID0+IHtcbiAgaWYgKCFfLmlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHJldHVybiBfLnBpY2tCeShvYmosIGlzRGVmaW5lZE5vdE51bGxOb3RFbXB0eSk7XG59O1xuXG4vLyBGb3JtYXQgdGhlIGRlc3RpbmF0aW9uLkNvbmZpZy5keW5hbWljTWFwIGFycmF5cyB0byBoYXNoTWFwXG5leHBvcnQgY29uc3QgZ2V0SGFzaEZyb21BcnJheSA9IChhcnJheXMsIGZyb21LZXkgPSAnZnJvbScsIHRvS2V5ID0gJ3RvJywgaXNMb3dlckNhc2UgPSB0cnVlKSA9PiB7XG4gIGNvbnN0IGhhc2hNYXAgPSB7fTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyYXlzKSkge1xuICAgIGFycmF5cy5mb3JFYWNoKChhcnJheSkgPT4ge1xuICAgICAgaWYgKGlzRW1wdHkoYXJyYXlbZnJvbUtleV0pKSByZXR1cm47XG4gICAgICBoYXNoTWFwW2lzTG93ZXJDYXNlID8gYXJyYXlbZnJvbUtleV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpIDogYXJyYXlbZnJvbUtleV1dID1cbiAgICAgICAgYXJyYXlbdG9LZXldO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBoYXNoTWFwO1xufTtcblxuLyoqXG4gKiBGb3JtYXQgdGhlIGRlc3RpbmF0aW9uLkNvbmZpZy5keW5hbWljTWFwIGFycmF5cyB0byBoYXNoTWFwXG4gKiB3aGVyZSB2YWx1ZSBpcyBhbiBhcnJheVxuICogQHBhcmFtICB7fSBhcnJheXMgW3tcImZyb21cIjpcInByb3AxXCIsXCJ0b1wiOlwidmFsMVwifSx7XCJmcm9tXCI6XCJwcm9wMVwiLFwidG9cIjpcInZhbDJcIn0se1wiZnJvbVwiOlwicHJvcDJcIixcInRvXCI6XCJ2YWwyXCJ9XVxuICogQHBhcmFtICB7fSBmcm9tS2V5PVwiZnJvbVwiXG4gKiBAcGFyYW0gIHt9IHRvS2V5PVwidG9cIlxuICogQHBhcmFtICB7fSBpc0xvd2VyQ2FzZT10cnVlXG4gKiBAcGFyYW0gIHt9IHJldHVybiBoYXNobWFwIHtcInByb3AxXCI6W1widmFsMVwiLFwidmFsMlwiXSxcInByb3AyXCI6W1widmFsMlwiXX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEhhc2hGcm9tQXJyYXlXaXRoRHVwbGljYXRlID0gKFxuICBhcnJheXM6IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH1bXSxcbiAgZnJvbUtleSA9ICdmcm9tJyxcbiAgdG9LZXkgPSAndG8nLFxuICBpc0xvd2VyQ2FzZSA9IHRydWUsXG4pID0+IHtcbiAgY29uc3QgaGFzaE1hcCA9IHt9O1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnJheXMpKSB7XG4gICAgYXJyYXlzLmZvckVhY2goKGFycmF5KSA9PiB7XG4gICAgICBpZiAoaXNFbXB0eShhcnJheVtmcm9tS2V5XSkpIHJldHVybjtcbiAgICAgIGNvbnN0IGtleSA9IGlzTG93ZXJDYXNlXG4gICAgICAgID8gYXJyYXlbZnJvbUtleV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLnRyaW0oKVxuICAgICAgICA6IGFycmF5W2Zyb21LZXldLnRvU3RyaW5nKCkudHJpbSgpO1xuXG4gICAgICBpZiAoaGFzaE1hcFtrZXldKSB7XG4gICAgICAgIGhhc2hNYXBba2V5XS5hZGQoYXJyYXlbdG9LZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhhc2hNYXBba2V5XSA9IG5ldyBTZXQoKTtcbiAgICAgICAgaGFzaE1hcFtrZXldLmFkZChhcnJheVt0b0tleV0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBoYXNoTWFwO1xufTtcblxuLyoqXG4gKiBGb3JtYXQgdGhlIGFycmF5cyB0byBoYXNoTWFwIHdpdGgga2V5IGFzIGBmcm9tS2V5YCBhbmQgdmFsdWUgYXMgT2JqZWN0XG4gKiBAcGFyYW0geyp9IGFycmF5cyBbe1wiaWRcIjpcImEwYjhlZmUxLWM4MjgtNGM2My04ODUwLTBkMDc0Mjg4OGY5ZFwiLFwibmFtZVwiOlwiRW1haWxcIixcInR5cGVcIjpcImVtYWlsXCIsXCJ0eXBlX2NvbmZpZ1wiOnt9LFwiZGF0ZV9jcmVhdGVkXCI6XCIxNjYyMjI1ODQwMjg0XCIsXCJoaWRlX2Zyb21fZ3Vlc3RzXCI6ZmFsc2UsXCJyZXF1aXJlZFwiOmZhbHNlfV1cbiAqIEBwYXJhbSB7Kn0gZnJvbUtleSBuYW1lXG4gKiBAcGFyYW0geyp9IGlzTG93ZXJDYXNlIGZhbHNlXG4gKiBAcmV0dXJucyAvLyB7XCJFbWFpbFwiOntcImlkXCI6XCJhMGI4ZWZlMS1jODI4LTRjNjMtODg1MC0wZDA3NDI4ODhmOWRcIixcIm5hbWVcIjpcIkVtYWlsXCIsXCJ0eXBlXCI6XCJlbWFpbFwiLFwidHlwZV9jb25maWdcIjp7fSxcImRhdGVfY3JlYXRlZFwiOlwiMTY2MjIyNTg0MDI4NFwiLFwiaGlkZV9mcm9tX2d1ZXN0c1wiOmZhbHNlLFwicmVxdWlyZWRcIjpmYWxzZX19XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRIYXNoRnJvbUFycmF5V2l0aFZhbHVlQXNPYmplY3QgPSAoYXJyYXlzLCBmcm9tS2V5ID0gJ2Zyb20nLCBpc0xvd2VyQ2FzZSA9IHRydWUpID0+IHtcbiAgY29uc3QgaGFzaE1hcCA9IHt9O1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnJheXMpKSB7XG4gICAgYXJyYXlzLmZvckVhY2goKGFycmF5KSA9PiB7XG4gICAgICBpZiAoaXNFbXB0eShhcnJheVtmcm9tS2V5XSkpIHJldHVybjtcbiAgICAgIGhhc2hNYXBbaXNMb3dlckNhc2UgPyBhcnJheVtmcm9tS2V5XS50b0xvd2VyQ2FzZSgpIDogYXJyYXlbZnJvbUtleV1dID0gYXJyYXk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGhhc2hNYXA7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyBhIHZhbHVlIGZyb20gYSBtZXNzYWdlIG9iamVjdCBiYXNlZCBvbiBhIGdpdmVuIGtleS4gSXQgc2VhcmNoZXMgZm9yIHRoZSBrZXkgaW4gdGhlIHByb3BlcnRpZXMsIHRyYWl0cywgYW5kIGNvbnRleHQudHJhaXRzIG9mIHRoZSBtZXNzYWdlIG9iamVjdCBpbiB0aGF0IG9yZGVyLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMubWVzc2FnZSAtIFRoZSBtZXNzYWdlIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMsIHRyYWl0cywgYW5kIGNvbnRleHQudHJhaXRzLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMua2V5IC0gVGhlIGtleSB0byBzZWFyY2ggZm9yIGluIHRoZSBtZXNzYWdlIG9iamVjdC5cbiAqIEByZXR1cm5zIHsqfSBUaGUgdmFsdWUgZm91bmQgaW4gdGhlIG1lc3NhZ2Ugb2JqZWN0IGZvciB0aGUgZ2l2ZW4ga2V5LCBvciBudWxsIGlmIHRoZSBrZXkgaXMgbm90IGZvdW5kIG9yIHRoZSB2YWx1ZSBpcyBudWxsLlxuICovXG5leHBvcnQgY29uc3QgZ2V0VmFsdWVGcm9tUHJvcGVydGllc09yVHJhaXRzID0gKHsgbWVzc2FnZSwga2V5IH0pID0+IHtcbiAgY29uc3Qga2V5U2V0ID0gWydwcm9wZXJ0aWVzJywgJ3RyYWl0cycsICdjb250ZXh0LnRyYWl0cyddO1xuXG4gIGNvbnN0IHZhbCA9IF8uZmluZChcbiAgICBfLm1hcChrZXlTZXQsIChrKSA9PiBnZXQobWVzc2FnZSwgYCR7a30uJHtrZXl9YCkpLFxuICAgICh2KSA9PiAhXy5pc05pbCh2KSxcbiAgKTtcbiAgcmV0dXJuICFfLmlzTmlsKHZhbCkgPyB2YWwgOiBudWxsO1xufTtcblxuLyoqXG4gKiBGbGF0dGVucyBhIEpTT04gb2JqZWN0IGludG8gYSBzaW5nbGUtbGV2ZWwgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBkYXRhIC0gVGhlIEpTT04gb2JqZWN0IHRvIGJlIGZsYXR0ZW5lZC5cbiAqIEBwYXJhbSBzZXBhcmF0b3IgLSBUaGUgY2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgdGhlIGtleXMgaW4gdGhlIGZsYXR0ZW5lZCBvYmplY3QuIERlZmF1bHQgaXMgJy4nLlxuICogQHBhcmFtIG1vZGUgLSBUaGUgbW9kZSB1c2VkIHRvIGZsYXR0ZW4gYXJyYXlzLiBJZiBzZXQgdG8gJ3N0cmljdCcsIHRoZSBhcnJheSBpbmRpY2VzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGZsYXR0ZW5lZCBrZXlzLiBEZWZhdWx0IGlzICdub3JtYWwnLlxuICogQHJldHVybnMgVGhlIGZsYXR0ZW5lZCBKU09OIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGZsYXR0ZW5Kc29uID0gKGRhdGE6IHVua25vd24sIHNlcGFyYXRvciA9ICcuJywgbW9kZSA9ICdub3JtYWwnKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuXG4gIC8vIGEgcmVjdXJzaXZlIGZ1bmN0aW9uIHRvIGxvb3AgdGhyb3VnaCB0aGUgYXJyYXkgb2YgdGhlIGRhdGFcbiAgY29uc3QgcmVjdXJzZSA9IChjdXIsIHByb3ApID0+IHtcbiAgICBsZXQgaTtcbiAgICBpZiAoT2JqZWN0KGN1cikgIT09IGN1cikge1xuICAgICAgcmVzdWx0W3Byb3BdID0gY3VyO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXIpKSB7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgY3VyLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGlmIChtb2RlID09PSAnc3RyaWN0Jykge1xuICAgICAgICAgIHJlY3Vyc2UoY3VyW2ldLCBgJHtwcm9wfSR7c2VwYXJhdG9yfSR7aX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWN1cnNlKGN1cltpXSwgYCR7cHJvcH1bJHtpfV1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGN1ci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmVzdWx0W3Byb3BdID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBpc0VtcHR5RmxhZyA9IHRydWU7XG4gICAgICBPYmplY3Qua2V5cyhjdXIpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpc0VtcHR5RmxhZyA9IGZhbHNlO1xuICAgICAgICByZWN1cnNlKGN1cltrZXldLCBwcm9wID8gYCR7cHJvcH0ke3NlcGFyYXRvcn0ke2tleX1gIDoga2V5KTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGlzRW1wdHlGbGFnICYmIHByb3ApIHJlc3VsdFtwcm9wXSA9IHt9O1xuICAgIH1cbiAgfTtcblxuICByZWN1cnNlKGRhdGEsICcnKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBvZmZzZXQgdmFsdWUgaW4gc2Vjb25kcyBmb3IgYSBnaXZlbiB0aW1lem9uZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdGltZXpvbmUgdmFsdWUgZm9yIHdoaWNoIHRoZSBvZmZzZXQgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZC5cbiAqIEByZXR1cm5zIFRoZSBvZmZzZXQgdmFsdWUgaW4gc2Vjb25kcyBmb3IgdGhlIGdpdmVuIHRpbWV6b25lLiBJZiB0aGUgdGltZXpvbmUgaXMgaW52YWxpZCBvciBub3QgZm91bmQsIGl0IHJldHVybnMgYHVuZGVmaW5lZGAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG9mZnNldCA9IGdldE9mZnNldEluU2VjKCdBc2lhL0NhbGN1dHRhJyk7XG4gKiBjb25zb2xlLmxvZyhvZmZzZXQpOyAvLyBPdXRwdXQ6IDE5ODAwXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRPZmZzZXRJblNlYyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG5hbWUgPSBtb21lbnQudHouem9uZSh2YWx1ZSk7XG4gIGlmIChuYW1lKSB7XG4gICAgY29uc3QgeCA9IG1vbWVudCgpLnR6KHZhbHVlKS5mb3JtYXQoJ1onKTtcbiAgICBjb25zdCBzcGxpdCA9IHguc3BsaXQoJzonKTtcbiAgICBjb25zdCBob3VyID0gTnVtYmVyKHNwbGl0WzBdKTtcbiAgICBjb25zdCBtaW4gPSBOdW1iZXIoc3BsaXRbMV0pO1xuICAgIGxldCBzZWMgPSAwO1xuICAgIHNlYyA9IGhvdXIgPCAwID8gLTEgKiAoaG91ciAqIC02MCAqIDYwICsgbWluICogNjApIDogaG91ciAqIDYwICogNjAgKyBtaW4gKiA2MDtcbiAgICByZXR1cm4gc2VjO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgZGF0ZSBzdHJpbmcgaW50byBhIGZvcm1hdHRlZCB0aW1lc3RhbXAuXG4gKiBJZiBhIGZvcm1hdCBzdHJpbmcgaXMgcHJvdmlkZWQsIGl0IHVzZXMgdGhlIG1vbWVudCBsaWJyYXJ5IHRvIGZvcm1hdCB0aGUgZGF0ZS5cbiAqIElmIG5vIGZvcm1hdCBzdHJpbmcgaXMgcHJvdmlkZWQsIGl0IHJldHVybnMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZGF0ZS5cbiAqIEBwYXJhbSBkYXRlU3RyIC0gVGhlIGRhdGUgc3RyaW5nIHRvIGJlIGZvcm1hdHRlZC5cbiAqIEBwYXJhbSBmb3JtYXQgLSAoT3B0aW9uYWwpIFRoZSBmb3JtYXQgc3RyaW5nIHRvIGJlIHVzZWQgZm9yIGZvcm1hdHRpbmcgdGhlIGRhdGUuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGRhdGUgYXMgYSBzdHJpbmcgaWYgYSBmb3JtYXQgc3RyaW5nIGlzIHByb3ZpZGVkLFxuICogICAgICAgICAgb3RoZXJ3aXNlIHRoZSB0aW1lc3RhbXAgb2YgdGhlIGRhdGUgYXMgYSBudW1iZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXRUaW1lU3RhbXAgPSAoZGF0ZVN0cjogc3RyaW5nLCBmb3JtYXQ/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHIpO1xuICAvLyBtb21lbnQgZm9ybWF0IGlzIHBhc3NlZC4gZm9ybWF0IGFjY29yZGluZ2x5XG4gIGlmIChmb3JtYXQpIHtcbiAgICByZXR1cm4gbW9tZW50LnV0YyhkYXRlKS5mb3JtYXQoZm9ybWF0KTtcbiAgfVxuXG4gIC8vIHJldHVybiBkZWZhdWx0IGZvcm1hdFxuICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFzaFRvU2hhMjU2ID0gKHZhbHVlOiBzdHJpbmcgfCBCdWZmZXIgfCBudW1iZXJbXSkgPT4gc2hhMjU2KHZhbHVlKTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBVbml2ZXJzYWxseSBVbmlxdWUgSWRlbnRpZmllciAoVVVJRCkgdXNpbmcgdGhlIGBjcnlwdG8ucmFuZG9tVVVJRCgpYCBtZXRob2QuXG4gKiBUaGUgYGRpc2FibGVFbnRyb3B5Q2FjaGVgIG9wdGlvbiBpcyBzZXQgdG8gYHRydWVgIHRvIHByZXZlbnQgY2FjaGluZyBvZiBnZW5lcmF0ZWQgVVVJRHMuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gQSByYW5kb21seSBnZW5lcmF0ZWQgVVVJRC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL25vZGVqcy5vcmcvYXBpL2NyeXB0by5odG1sI2NyeXB0b3JhbmRvbXV1aWRvcHRpb25zOn46dGV4dD1vcHRpb25zJTIwJTNDT2JqZWN0JTNFLSxkaXNhYmxlRW50cm9weUNhY2hlLC0lM0Nib29sZWFuJTNFJTIwQnl9XG4gKi9cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVVVSUQgPSAoKTogc3RyaW5nID0+IGNyeXB0by5yYW5kb21VVUlEKHsgZGlzYWJsZUVudHJvcHlDYWNoZTogdHJ1ZSB9KTtcblxuLy8gUm91dGVyIHRyYW5zZm9ybWVyXG4vLyBFcnJvciByZXNwb25zZXNcbmV4cG9ydCBjb25zdCBnZXRFcnJvclJlc3BFdmVudHMgPSAoXG4gIG1ldGFkYXRhOiBNZXRhZGF0YVtdLFxuICBzdGF0dXNDb2RlOiBudW1iZXIsXG4gIGVycm9yOiBzdHJpbmcsXG4gIHN0YXRUYWdzOiBPYmplY3QsXG4gIGJhdGNoZWQ6IGJvb2xlYW4gPSBmYWxzZSxcbik6IHtcbiAgbWV0YWRhdGE6IE1ldGFkYXRhW107XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgZXJyb3I6IHN0cmluZztcbiAgc3RhdFRhZ3M6IE9iamVjdDtcbiAgYmF0Y2hlZDogYm9vbGVhbjtcbn0gPT4gKHtcbiAgbWV0YWRhdGEsXG4gIGJhdGNoZWQsXG4gIHN0YXR1c0NvZGUsXG4gIGVycm9yLFxuICBzdGF0VGFncyxcbn0pO1xuIl19
|
|
368
|
+
const convertToString = (value) => {
|
|
369
|
+
if (typeof value === 'string') {
|
|
370
|
+
return value;
|
|
371
|
+
}
|
|
372
|
+
return JSON.stringify(value);
|
|
373
|
+
};
|
|
374
|
+
exports.convertToString = convertToString;
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLDBEQUE0QjtBQVluQixjQVpGLG1CQUFHLENBWUU7QUFYWiwwREFBNEI7QUFXZCxjQVhQLG1CQUFHLENBV087QUFWakIsc0VBQXFDO0FBQ3JDLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsa0RBQW9DO0FBRXBDLDJFQUF1RTtBQU1oRSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUE5QyxRQUFBLFNBQVMsYUFBcUM7QUFDcEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBM0MsUUFBQSxVQUFVLGNBQWlDO0FBQ2pELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQXRDLFFBQUEsU0FBUyxhQUE2QjtBQUM1QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGlCQUFTLEVBQUMsQ0FBQyxDQUFDLElBQUksSUFBQSxpQkFBUyxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQW5FLFFBQUEsbUJBQW1CLHVCQUFnRDtBQUN6RSxNQUFNLDhCQUE4QixHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FDM0QsSUFBQSxpQkFBUyxFQUFDLENBQUMsQ0FBQyxJQUFJLElBQUEsaUJBQVMsRUFBQyxDQUFDLENBQUMsSUFBSSxJQUFBLGtCQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFEbkMsUUFBQSw4QkFBOEIsa0NBQ0s7QUFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLGdCQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFBM0QsUUFBQSxPQUFPLFdBQW9EO0FBRXhFLDJFQUEyRTtBQUNwRSxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDcEQsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ2pDLE9BQU8sZ0JBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGlCQUFTLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFIVyxRQUFBLHFCQUFxQix5QkFHaEM7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDL0MsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ2pDLE9BQU8sZ0JBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGlCQUFTLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFIVyxRQUFBLGdCQUFnQixvQkFHM0I7QUFDSyxNQUFNLDRCQUE0QixHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDM0QsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ2pDLE9BQU8sZ0JBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLDJCQUFtQixDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSw0QkFBNEIsZ0NBR3ZDO0FBQ0ssTUFBTSxvQ0FBb0MsR0FBRyxDQUFDLEdBQVksRUFBRSxFQUFFO0lBQ25FLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUNqQyxPQUFPLGdCQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxzQ0FBOEIsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQztBQUhXLFFBQUEsb0NBQW9DLHdDQUcvQztBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLFVBQVUsR0FBRyxDQUFDLFVBQW1CLEVBQUUsRUFBRTtJQUNoRCxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFBRSxPQUFPLFVBQVUsQ0FBQztJQUN6RSxPQUFPLGdCQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxVQUFVLGNBR3JCO0FBRUYsMkVBQTJFO0FBQzNFLGlCQUFpQjtBQUNqQiwyRUFBMkU7QUFFcEUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUF5QixFQUFFLEVBQUU7SUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCO1FBQ2xELE1BQU0sSUFBSSw0Q0FBb0IsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQ3ZGLElBQUk7UUFDRixJQUFJLE9BQU8sQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDM0Q7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDL0M7SUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQVRXLFFBQUEsWUFBWSxnQkFTdkI7QUFFSyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFBN0UsUUFBQSxlQUFlLG1CQUE4RDtBQUUxRixpREFBaUQ7QUFDMUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFpQixFQUFFLEVBQUU7SUFDOUMsSUFBSTtRQUNGLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckI7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDLENBQUM7QUFOVyxRQUFBLFVBQVUsY0FNckI7QUFFSyxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDaEQsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUR2QyxRQUFBLGtCQUFrQixzQkFDcUI7QUFFN0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRTtJQUMxQyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsQ0FBQztJQUN4QixPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFIVyxRQUFBLFdBQVcsZUFHdEI7QUFFRjs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUU7SUFDdEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHLENBQUM7SUFDeEIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ2YsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN0QixPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBVFcsUUFBQSxPQUFPLFdBU2xCO0FBRUssTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUN6QyxNQUFNLElBQUksR0FBRyxPQUFPLEtBQUssQ0FBQztJQUMxQixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUYsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CO0FBRUssTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLGdCQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFBbEUsUUFBQSxPQUFPLFdBQTJEO0FBRS9FOzs7O0dBSUc7QUFDSSxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO0lBQ3hDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQU5XLFFBQUEsYUFBYSxpQkFNeEI7QUFFRjs7Ozs7OztHQU9HO0FBQ0ksTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQ3pELENBQUMsQ0FDQyxLQUFLLEtBQUssU0FBUztJQUNuQixLQUFLLEtBQUssSUFBSTtJQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ25CLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUN6RCxDQUFDO0FBUFMsUUFBQSx3QkFBd0IsNEJBT2pDO0FBRUcsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLEdBQVksRUFBRSxFQUFFO0lBQ2xFLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUNqQyxPQUFPLGdCQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxnQ0FBd0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUhXLFFBQUEsbUNBQW1DLHVDQUc5QztBQUVGLDZEQUE2RDtBQUN0RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sR0FBRyxNQUFNLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDN0YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUNwQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFWVyxRQUFBLGdCQUFnQixvQkFVM0I7QUFFRjs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sNkJBQTZCLEdBQUcsQ0FDM0MsTUFBc0MsRUFDdEMsT0FBTyxHQUFHLE1BQU0sRUFDaEIsS0FBSyxHQUFHLElBQUksRUFDWixXQUFXLEdBQUcsSUFBSSxFQUNsQixFQUFFO0lBQ0YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUNwQyxNQUFNLEdBQUcsR0FBRyxXQUFXO2dCQUNyQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRTtnQkFDaEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVyQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUF2QlcsUUFBQSw2QkFBNkIsaUNBdUJ4QztBQUVGOzs7Ozs7R0FNRztBQUNJLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDaEcsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUNwQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztLQUNKO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBVFcsUUFBQSxpQ0FBaUMscUNBUzVDO0FBRUY7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTFELE1BQU0sR0FBRyxHQUFHLGdCQUFDLENBQUMsSUFBSSxDQUNoQixnQkFBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsbUJBQUcsRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUNqRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDbkIsQ0FBQztJQUNGLE9BQU8sQ0FBQyxnQkFBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBUlcsUUFBQSw4QkFBOEIsa0NBUXpDO0FBRUY7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBYSxFQUFFLFNBQVMsR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLFFBQVEsRUFBRSxFQUFFO0lBQzdFLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQiw2REFBNkQ7SUFDN0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDNUIsSUFBSSxDQUFDLENBQUM7UUFDTixJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNwQjthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM1QztxQkFBTTtvQkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2xDO2FBQ0Y7WUFDRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7YUFBTTtZQUNMLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMvQixXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksV0FBVyxJQUFJLElBQUk7Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBL0JXLFFBQUEsV0FBVyxlQStCdEI7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQzlDLE1BQU0sSUFBSSxHQUFHLHlCQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxJQUFJLElBQUksRUFBRTtRQUNSLE1BQU0sQ0FBQyxHQUFHLElBQUEseUJBQU0sR0FBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQy9FLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFaVyxRQUFBLGNBQWMsa0JBWXpCO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWUsRUFBRSxNQUFlLEVBQUUsRUFBRTtJQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQiw4Q0FBOEM7SUFDOUMsSUFBSSxNQUFNLEVBQUU7UUFDVixPQUFPLHlCQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN4QztJQUVELHdCQUF3QjtJQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN4QixDQUFDLENBQUM7QUFUVyxRQUFBLGVBQWUsbUJBUzFCO0FBRUssTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFBcEUsUUFBQSxZQUFZLGdCQUF3RDtBQUVqRjs7Ozs7OztHQU9HO0FBQ0ksTUFBTSxZQUFZLEdBQUcsR0FBVyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQTlFLFFBQUEsWUFBWSxnQkFBa0U7QUFFM0YscUJBQXFCO0FBQ3JCLGtCQUFrQjtBQUNYLE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsUUFBb0IsRUFDcEIsVUFBa0IsRUFDbEIsS0FBYSxFQUNiLFFBQWdCLEVBQ2hCLFVBQW1CLEtBQUssRUFPeEIsRUFBRSxDQUFDLENBQUM7SUFDSixRQUFRO0lBQ1IsT0FBTztJQUNQLFVBQVU7SUFDVixLQUFLO0lBQ0wsUUFBUTtDQUNULENBQUMsQ0FBQztBQWxCVSxRQUFBLGtCQUFrQixzQkFrQjVCO0FBRUksTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtJQUM1QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQztBQUxXLFFBQUEsZUFBZSxtQkFLMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGdldCBmcm9tICdnZXQtdmFsdWUnO1xuaW1wb3J0IHNldCBmcm9tICdzZXQtdmFsdWUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHNoYTI1NiBmcm9tICdzaGEyNTYnO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBNZXRhZGF0YSwgUnVkZGVyU3RhY2tFdmVudCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEluc3RydW1lbnRhdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL2luc3RydW1lbnRhdGlvbl9lcnJvcic7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSU5MSU5FUlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IHsgZ2V0LCBzZXQgfTtcbmV4cG9ydCBjb25zdCBpc0RlZmluZWQgPSAoeDogdW5rbm93bikgPT4gIV8uaXNVbmRlZmluZWQoeCk7XG5leHBvcnQgY29uc3QgaXNOb3RFbXB0eSA9ICh4OiB1bmtub3duKSA9PiAhXy5pc0VtcHR5KHgpO1xuZXhwb3J0IGNvbnN0IGlzTm90TnVsbCA9ICh4OiB1bmtub3duKSA9PiB4ICE9IG51bGw7XG5leHBvcnQgY29uc3QgaXNEZWZpbmVkQW5kTm90TnVsbCA9ICh4OiB1bmtub3duKSA9PiBpc0RlZmluZWQoeCkgJiYgaXNOb3ROdWxsKHgpO1xuZXhwb3J0IGNvbnN0IGlzRGVmaW5lZEFuZE5vdE51bGxBbmROb3RFbXB0eSA9ICh4OiB1bmtub3duKSA9PlxuICBpc0RlZmluZWQoeCkgJiYgaXNOb3ROdWxsKHgpICYmIGlzTm90RW1wdHkoeCk7XG5leHBvcnQgY29uc3QgaXNCbGFuayA9ICh2YWx1ZTogdW5rbm93bikgPT4gXy5pc0VtcHR5KF8udG9TdHJpbmcodmFsdWUpKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY29uc3QgcmVtb3ZlVW5kZWZpbmVkVmFsdWVzID0gKG9iajogdW5rbm93bikgPT4ge1xuICBpZiAoIV8uaXNPYmplY3Qob2JqKSkgcmV0dXJuIG9iajtcbiAgcmV0dXJuIF8ucGlja0J5KG9iaiwgaXNEZWZpbmVkKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVOdWxsVmFsdWVzID0gKG9iajogdW5rbm93bikgPT4ge1xuICBpZiAoIV8uaXNPYmplY3Qob2JqKSkgcmV0dXJuIG9iajtcbiAgcmV0dXJuIF8ucGlja0J5KG9iaiwgaXNOb3ROdWxsKTtcbn07XG5leHBvcnQgY29uc3QgcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbFZhbHVlcyA9IChvYmo6IHVua25vd24pID0+IHtcbiAgaWYgKCFfLmlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHJldHVybiBfLnBpY2tCeShvYmosIGlzRGVmaW5lZEFuZE5vdE51bGwpO1xufTtcbmV4cG9ydCBjb25zdCByZW1vdmVVbmRlZmluZWRBbmROdWxsQW5kRW1wdHlWYWx1ZXMgPSAob2JqOiB1bmtub3duKSA9PiB7XG4gIGlmICghXy5pc09iamVjdChvYmopKSByZXR1cm4gb2JqO1xuICByZXR1cm4gXy5waWNrQnkob2JqLCBpc0RlZmluZWRBbmROb3ROdWxsQW5kTm90RW1wdHkpO1xufTtcblxuLyoqXG4gKiBUaGUgZmxhdHRlbk1hcCBmdW5jdGlvbiB0YWtlcyBhIGNvbGxlY3Rpb24gYXMgaW5wdXQgYW5kIHJldHVybnMgYSBmbGF0dGVuZWQgdmVyc2lvbiBvZiB0aGUgY29sbGVjdGlvbi4gSWYgdGhlIGlucHV0IGlzIG5vdCBhbiBhcnJheSBvciBhbiBvYmplY3QsIGl0IGlzIHJldHVybmVkIGFzIGlzLiBPdGhlcndpc2UsIHRoZSBmdW5jdGlvbiB1c2VzIHRoZSBmbGF0TWFwIGZ1bmN0aW9uIGZyb20gdGhlIGxvZGFzaCBsaWJyYXJ5IHRvIGZsYXR0ZW4gdGhlIGNvbGxlY3Rpb24uXG4gKiBAcGFyYW0gY29sbGVjdGlvblxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGZsYXR0ZW5NYXAgPSAoY29sbGVjdGlvbjogdW5rbm93bikgPT4ge1xuICBpZiAoIV8uaXNBcnJheShjb2xsZWN0aW9uKSAmJiAhXy5pc09iamVjdChjb2xsZWN0aW9uKSkgcmV0dXJuIGNvbGxlY3Rpb247XG4gIHJldHVybiBfLmZsYXRNYXAoY29sbGVjdGlvbiwgKHgpID0+IHgpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHRU5FUklDIFVUTElUWVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBnZXRFdmVudFRpbWUgPSAobWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudCkgPT4ge1xuICBpZiAoIW1lc3NhZ2UudGltZXN0YW1wICYmICFtZXNzYWdlLm9yaWdpbmFsVGltZXN0YW1wKVxuICAgIHRocm93IG5ldyBJbnN0cnVtZW50YXRpb25FcnJvcignRXZlbnQgZG9lcyBub3QgaGF2ZSB0aW1lc3RhbXAgb3Igb3JpZ2luYWxUaW1lc3RhbXAnKTtcbiAgdHJ5IHtcbiAgICBpZiAobWVzc2FnZS50aW1lc3RhbXApIHJldHVybiBuZXcgRGF0ZShtZXNzYWdlLnRpbWVzdGFtcCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yIGluIHBhcnNpbmcgdGltZXN0YW1wJywgZSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBEYXRlKG1lc3NhZ2Uub3JpZ2luYWxUaW1lc3RhbXApO1xufTtcblxuZXhwb3J0IGNvbnN0IGJhc2U2NENvbnZlcnRvciA9IChzdHJpbmc6IHN0cmluZykgPT4gQnVmZmVyLmZyb20oc3RyaW5nKS50b1N0cmluZygnYmFzZTY0Jyk7XG5cbi8vIHJldHVybiBhIHZhbGlkIFVSTCBvYmplY3QgaWYgY29ycmVjdCBlbHNlIG51bGxcbmV4cG9ydCBjb25zdCBpc1ZhbGlkVXJsID0gKHVybDogc3RyaW5nIHwgVVJMKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBVUkwodXJsKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpcFRyYWlsaW5nU2xhc2ggPSAoc3RyOiBzdHJpbmcpID0+XG4gIHN0ciAmJiBzdHIuZW5kc1dpdGgoJy8nKSA/IHN0ci5zbGljZSgwLCAtMSkgOiBzdHI7XG5cbmV4cG9ydCBjb25zdCBpc1ByaW1pdGl2ZSA9IChhcmc6IHVua25vd24pID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiBhcmc7XG4gIHJldHVybiBhcmcgPT0gbnVsbCB8fCAodHlwZSAhPT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gJ2Z1bmN0aW9uJyk7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0geyp9IGFyZ1xuICogQHJldHVybnMge3R5cGV9XG4gKlxuICogUmV0dXJucyB0eXBlIG9mIHBhc3NlZCBhcmdcbiAqIGZvciBudWxsIGFyZ3NzIHJldHVybnMgXCJOVUxMXCIgaW5zdGVkIG9mIFwib2JqZWN0XCJcbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUeXBlID0gKGFyZzogdW5rbm93bikgPT4ge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIGFyZztcbiAgaWYgKGFyZyA9PSBudWxsKSB7XG4gICAgcmV0dXJuICdOVUxMJztcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG4gICAgcmV0dXJuICdhcnJheSc7XG4gIH1cbiAgcmV0dXJuIHR5cGU7XG59O1xuXG5leHBvcnQgY29uc3QgaXNPYmplY3QgPSAodmFsdWU6IHVua25vd24pID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT09ICdvYmplY3QnIHx8IHR5cGUgPT09ICdmdW5jdGlvbicpICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0VtcHR5ID0gKGlucHV0OiB1bmtub3duKSA9PiBfLmlzRW1wdHkoXy50b1N0cmluZyhpbnB1dCkudHJpbSgpKTtcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgZm9yIGVtcHR5IG9iamVjdCB7fVxuICogQHBhcmFtIHsqfSBvYmpcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBpc0VtcHR5T2JqZWN0ID0gKG9iajogYW55KSA9PiB7XG4gIGlmICghb2JqKSB7XG4gICAgbG9nZ2VyLndhcm4oJ2lucHV0IGlzIHVuZGVmaW5lZCBvciBudWxsJyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBjaGVjayBpZiB2YWx1ZSBpcyBEZWZpbmVkLCBOb3QgbnVsbCBhbmQgTm90IEVtcHR5LlxuICogQ3JlYXRlIHRoaXMgZnVuY3Rpb24sIEJlY2F1c2UgZXhpc3RpbmcgaXNEZWZpbmVkQW5kTm90TnVsbEFuZE5vdEVtcHR5KDEyMykgaXMgcmV0dXJuaW5nIGZhbHNlIGR1ZSB0byBsb2Rhc2ggXy5pc0VtcHR5IGZ1bmN0aW9uLlxuICogXy5pc0VtcHR5IGlzIHVzZWQgdG8gZGV0ZWN0IGVtcHR5IGNvbGxlY3Rpb25zL29iamVjdHMgYW5kIGl0IHdpbGwgcmV0dXJuIHRydWUgZm9yIEludGVnZXIsIEJvb2xlYW4gdmFsdWVzLlxuICogcmVmOiBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9pc3N1ZXMvNDk2XG4gKiBAcGFyYW0geyp9IHZhbHVlIDEyM1xuICogQHJldHVybnMgeWVzXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RlZmluZWROb3ROdWxsTm90RW1wdHkgPSAodmFsdWU6IHVua25vd24pID0+XG4gICEoXG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgTnVtYmVyLmlzTmFOKHZhbHVlKSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMClcbiAgKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVVuZGVmaW5lZE51bGxFbXB0eUV4Y2xCb29sSW50ID0gKG9iajogdW5rbm93bikgPT4ge1xuICBpZiAoIV8uaXNPYmplY3Qob2JqKSkgcmV0dXJuIG9iajtcbiAgcmV0dXJuIF8ucGlja0J5KG9iaiwgaXNEZWZpbmVkTm90TnVsbE5vdEVtcHR5KTtcbn07XG5cbi8vIEZvcm1hdCB0aGUgZGVzdGluYXRpb24uQ29uZmlnLmR5bmFtaWNNYXAgYXJyYXlzIHRvIGhhc2hNYXBcbmV4cG9ydCBjb25zdCBnZXRIYXNoRnJvbUFycmF5ID0gKGFycmF5cywgZnJvbUtleSA9ICdmcm9tJywgdG9LZXkgPSAndG8nLCBpc0xvd2VyQ2FzZSA9IHRydWUpID0+IHtcbiAgY29uc3QgaGFzaE1hcCA9IHt9O1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnJheXMpKSB7XG4gICAgYXJyYXlzLmZvckVhY2goKGFycmF5KSA9PiB7XG4gICAgICBpZiAoaXNFbXB0eShhcnJheVtmcm9tS2V5XSkpIHJldHVybjtcbiAgICAgIGhhc2hNYXBbaXNMb3dlckNhc2UgPyBhcnJheVtmcm9tS2V5XS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgOiBhcnJheVtmcm9tS2V5XV0gPVxuICAgICAgICBhcnJheVt0b0tleV07XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGhhc2hNYXA7XG59O1xuXG4vKipcbiAqIEZvcm1hdCB0aGUgZGVzdGluYXRpb24uQ29uZmlnLmR5bmFtaWNNYXAgYXJyYXlzIHRvIGhhc2hNYXBcbiAqIHdoZXJlIHZhbHVlIGlzIGFuIGFycmF5XG4gKiBAcGFyYW0gIHt9IGFycmF5cyBbe1wiZnJvbVwiOlwicHJvcDFcIixcInRvXCI6XCJ2YWwxXCJ9LHtcImZyb21cIjpcInByb3AxXCIsXCJ0b1wiOlwidmFsMlwifSx7XCJmcm9tXCI6XCJwcm9wMlwiLFwidG9cIjpcInZhbDJcIn1dXG4gKiBAcGFyYW0gIHt9IGZyb21LZXk9XCJmcm9tXCJcbiAqIEBwYXJhbSAge30gdG9LZXk9XCJ0b1wiXG4gKiBAcGFyYW0gIHt9IGlzTG93ZXJDYXNlPXRydWVcbiAqIEBwYXJhbSAge30gcmV0dXJuIGhhc2htYXAge1wicHJvcDFcIjpbXCJ2YWwxXCIsXCJ2YWwyXCJdLFwicHJvcDJcIjpbXCJ2YWwyXCJdfVxuICovXG5leHBvcnQgY29uc3QgZ2V0SGFzaEZyb21BcnJheVdpdGhEdXBsaWNhdGUgPSAoXG4gIGFycmF5czogeyBmcm9tOiBzdHJpbmc7IHRvOiBzdHJpbmcgfVtdLFxuICBmcm9tS2V5ID0gJ2Zyb20nLFxuICB0b0tleSA9ICd0bycsXG4gIGlzTG93ZXJDYXNlID0gdHJ1ZSxcbikgPT4ge1xuICBjb25zdCBoYXNoTWFwID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGFycmF5cykpIHtcbiAgICBhcnJheXMuZm9yRWFjaCgoYXJyYXkpID0+IHtcbiAgICAgIGlmIChpc0VtcHR5KGFycmF5W2Zyb21LZXldKSkgcmV0dXJuO1xuICAgICAgY29uc3Qga2V5ID0gaXNMb3dlckNhc2VcbiAgICAgICAgPyBhcnJheVtmcm9tS2V5XS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gICAgICAgIDogYXJyYXlbZnJvbUtleV0udG9TdHJpbmcoKS50cmltKCk7XG5cbiAgICAgIGlmIChoYXNoTWFwW2tleV0pIHtcbiAgICAgICAgaGFzaE1hcFtrZXldLmFkZChhcnJheVt0b0tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGFzaE1hcFtrZXldID0gbmV3IFNldCgpO1xuICAgICAgICBoYXNoTWFwW2tleV0uYWRkKGFycmF5W3RvS2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGhhc2hNYXA7XG59O1xuXG4vKipcbiAqIEZvcm1hdCB0aGUgYXJyYXlzIHRvIGhhc2hNYXAgd2l0aCBrZXkgYXMgYGZyb21LZXlgIGFuZCB2YWx1ZSBhcyBPYmplY3RcbiAqIEBwYXJhbSB7Kn0gYXJyYXlzIFt7XCJpZFwiOlwiYTBiOGVmZTEtYzgyOC00YzYzLTg4NTAtMGQwNzQyODg4ZjlkXCIsXCJuYW1lXCI6XCJFbWFpbFwiLFwidHlwZVwiOlwiZW1haWxcIixcInR5cGVfY29uZmlnXCI6e30sXCJkYXRlX2NyZWF0ZWRcIjpcIjE2NjIyMjU4NDAyODRcIixcImhpZGVfZnJvbV9ndWVzdHNcIjpmYWxzZSxcInJlcXVpcmVkXCI6ZmFsc2V9XVxuICogQHBhcmFtIHsqfSBmcm9tS2V5IG5hbWVcbiAqIEBwYXJhbSB7Kn0gaXNMb3dlckNhc2UgZmFsc2VcbiAqIEByZXR1cm5zIC8vIHtcIkVtYWlsXCI6e1wiaWRcIjpcImEwYjhlZmUxLWM4MjgtNGM2My04ODUwLTBkMDc0Mjg4OGY5ZFwiLFwibmFtZVwiOlwiRW1haWxcIixcInR5cGVcIjpcImVtYWlsXCIsXCJ0eXBlX2NvbmZpZ1wiOnt9LFwiZGF0ZV9jcmVhdGVkXCI6XCIxNjYyMjI1ODQwMjg0XCIsXCJoaWRlX2Zyb21fZ3Vlc3RzXCI6ZmFsc2UsXCJyZXF1aXJlZFwiOmZhbHNlfX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEhhc2hGcm9tQXJyYXlXaXRoVmFsdWVBc09iamVjdCA9IChhcnJheXMsIGZyb21LZXkgPSAnZnJvbScsIGlzTG93ZXJDYXNlID0gdHJ1ZSkgPT4ge1xuICBjb25zdCBoYXNoTWFwID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGFycmF5cykpIHtcbiAgICBhcnJheXMuZm9yRWFjaCgoYXJyYXkpID0+IHtcbiAgICAgIGlmIChpc0VtcHR5KGFycmF5W2Zyb21LZXldKSkgcmV0dXJuO1xuICAgICAgaGFzaE1hcFtpc0xvd2VyQ2FzZSA/IGFycmF5W2Zyb21LZXldLnRvTG93ZXJDYXNlKCkgOiBhcnJheVtmcm9tS2V5XV0gPSBhcnJheTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gaGFzaE1hcDtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGEgdmFsdWUgZnJvbSBhIG1lc3NhZ2Ugb2JqZWN0IGJhc2VkIG9uIGEgZ2l2ZW4ga2V5LiBJdCBzZWFyY2hlcyBmb3IgdGhlIGtleSBpbiB0aGUgcHJvcGVydGllcywgdHJhaXRzLCBhbmQgY29udGV4dC50cmFpdHMgb2YgdGhlIG1lc3NhZ2Ugb2JqZWN0IGluIHRoYXQgb3JkZXIuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5tZXNzYWdlIC0gVGhlIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcywgdHJhaXRzLCBhbmQgY29udGV4dC50cmFpdHMuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5rZXkgLSBUaGUga2V5IHRvIHNlYXJjaCBmb3IgaW4gdGhlIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHJldHVybnMgeyp9IFRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWVzc2FnZSBvYmplY3QgZm9yIHRoZSBnaXZlbiBrZXksIG9yIG51bGwgaWYgdGhlIGtleSBpcyBub3QgZm91bmQgb3IgdGhlIHZhbHVlIGlzIG51bGwuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWYWx1ZUZyb21Qcm9wZXJ0aWVzT3JUcmFpdHMgPSAoeyBtZXNzYWdlLCBrZXkgfSkgPT4ge1xuICBjb25zdCBrZXlTZXQgPSBbJ3Byb3BlcnRpZXMnLCAndHJhaXRzJywgJ2NvbnRleHQudHJhaXRzJ107XG5cbiAgY29uc3QgdmFsID0gXy5maW5kKFxuICAgIF8ubWFwKGtleVNldCwgKGspID0+IGdldChtZXNzYWdlLCBgJHtrfS4ke2tleX1gKSksXG4gICAgKHYpID0+ICFfLmlzTmlsKHYpLFxuICApO1xuICByZXR1cm4gIV8uaXNOaWwodmFsKSA/IHZhbCA6IG51bGw7XG59O1xuXG4vKipcbiAqIEZsYXR0ZW5zIGEgSlNPTiBvYmplY3QgaW50byBhIHNpbmdsZS1sZXZlbCBvYmplY3QuXG4gKlxuICogQHBhcmFtIGRhdGEgLSBUaGUgSlNPTiBvYmplY3QgdG8gYmUgZmxhdHRlbmVkLlxuICogQHBhcmFtIHNlcGFyYXRvciAtIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSB0aGUga2V5cyBpbiB0aGUgZmxhdHRlbmVkIG9iamVjdC4gRGVmYXVsdCBpcyAnLicuXG4gKiBAcGFyYW0gbW9kZSAtIFRoZSBtb2RlIHVzZWQgdG8gZmxhdHRlbiBhcnJheXMuIElmIHNldCB0byAnc3RyaWN0JywgdGhlIGFycmF5IGluZGljZXMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZmxhdHRlbmVkIGtleXMuIERlZmF1bHQgaXMgJ25vcm1hbCcuXG4gKiBAcmV0dXJucyBUaGUgZmxhdHRlbmVkIEpTT04gb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgZmxhdHRlbkpzb24gPSAoZGF0YTogdW5rbm93biwgc2VwYXJhdG9yID0gJy4nLCBtb2RlID0gJ25vcm1hbCcpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0ge307XG5cbiAgLy8gYSByZWN1cnNpdmUgZnVuY3Rpb24gdG8gbG9vcCB0aHJvdWdoIHRoZSBhcnJheSBvZiB0aGUgZGF0YVxuICBjb25zdCByZWN1cnNlID0gKGN1ciwgcHJvcCkgPT4ge1xuICAgIGxldCBpO1xuICAgIGlmIChPYmplY3QoY3VyKSAhPT0gY3VyKSB7XG4gICAgICByZXN1bHRbcHJvcF0gPSBjdXI7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGN1cikpIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBjdXIubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKG1vZGUgPT09ICdzdHJpY3QnKSB7XG4gICAgICAgICAgcmVjdXJzZShjdXJbaV0sIGAke3Byb3B9JHtzZXBhcmF0b3J9JHtpfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlY3Vyc2UoY3VyW2ldLCBgJHtwcm9wfVske2l9XWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY3VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXN1bHRbcHJvcF0gPSBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGlzRW1wdHlGbGFnID0gdHJ1ZTtcbiAgICAgIE9iamVjdC5rZXlzKGN1cikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlzRW1wdHlGbGFnID0gZmFsc2U7XG4gICAgICAgIHJlY3Vyc2UoY3VyW2tleV0sIHByb3AgPyBgJHtwcm9wfSR7c2VwYXJhdG9yfSR7a2V5fWAgOiBrZXkpO1xuICAgICAgfSk7XG4gICAgICBpZiAoaXNFbXB0eUZsYWcgJiYgcHJvcCkgcmVzdWx0W3Byb3BdID0ge307XG4gICAgfVxuICB9O1xuXG4gIHJlY3Vyc2UoZGF0YSwgJycpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIG9mZnNldCB2YWx1ZSBpbiBzZWNvbmRzIGZvciBhIGdpdmVuIHRpbWV6b25lLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB0aW1lem9uZSB2YWx1ZSBmb3Igd2hpY2ggdGhlIG9mZnNldCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxuICogQHJldHVybnMgVGhlIG9mZnNldCB2YWx1ZSBpbiBzZWNvbmRzIGZvciB0aGUgZ2l2ZW4gdGltZXpvbmUuIElmIHRoZSB0aW1lem9uZSBpcyBpbnZhbGlkIG9yIG5vdCBmb3VuZCwgaXQgcmV0dXJucyBgdW5kZWZpbmVkYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgb2Zmc2V0ID0gZ2V0T2Zmc2V0SW5TZWMoJ0FzaWEvQ2FsY3V0dGEnKTtcbiAqIGNvbnNvbGUubG9nKG9mZnNldCk7IC8vIE91dHB1dDogMTk4MDBcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE9mZnNldEluU2VjID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgbmFtZSA9IG1vbWVudC50ei56b25lKHZhbHVlKTtcbiAgaWYgKG5hbWUpIHtcbiAgICBjb25zdCB4ID0gbW9tZW50KCkudHoodmFsdWUpLmZvcm1hdCgnWicpO1xuICAgIGNvbnN0IHNwbGl0ID0geC5zcGxpdCgnOicpO1xuICAgIGNvbnN0IGhvdXIgPSBOdW1iZXIoc3BsaXRbMF0pO1xuICAgIGNvbnN0IG1pbiA9IE51bWJlcihzcGxpdFsxXSk7XG4gICAgbGV0IHNlYyA9IDA7XG4gICAgc2VjID0gaG91ciA8IDAgPyAtMSAqIChob3VyICogLTYwICogNjAgKyBtaW4gKiA2MCkgOiBob3VyICogNjAgKiA2MCArIG1pbiAqIDYwO1xuICAgIHJldHVybiBzZWM7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBkYXRlIHN0cmluZyBpbnRvIGEgZm9ybWF0dGVkIHRpbWVzdGFtcC5cbiAqIElmIGEgZm9ybWF0IHN0cmluZyBpcyBwcm92aWRlZCwgaXQgdXNlcyB0aGUgbW9tZW50IGxpYnJhcnkgdG8gZm9ybWF0IHRoZSBkYXRlLlxuICogSWYgbm8gZm9ybWF0IHN0cmluZyBpcyBwcm92aWRlZCwgaXQgcmV0dXJucyB0aGUgdGltZXN0YW1wIG9mIHRoZSBkYXRlLlxuICogQHBhcmFtIGRhdGVTdHIgLSBUaGUgZGF0ZSBzdHJpbmcgdG8gYmUgZm9ybWF0dGVkLlxuICogQHBhcmFtIGZvcm1hdCAtIChPcHRpb25hbCkgVGhlIGZvcm1hdCBzdHJpbmcgdG8gYmUgdXNlZCBmb3IgZm9ybWF0dGluZyB0aGUgZGF0ZS5cbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgZGF0ZSBhcyBhIHN0cmluZyBpZiBhIGZvcm1hdCBzdHJpbmcgaXMgcHJvdmlkZWQsXG4gKiAgICAgICAgICBvdGhlcndpc2UgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZGF0ZSBhcyBhIG51bWJlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdFRpbWVTdGFtcCA9IChkYXRlU3RyOiBzdHJpbmcsIGZvcm1hdD86IHN0cmluZykgPT4ge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cik7XG4gIC8vIG1vbWVudCBmb3JtYXQgaXMgcGFzc2VkLiBmb3JtYXQgYWNjb3JkaW5nbHlcbiAgaWYgKGZvcm1hdCkge1xuICAgIHJldHVybiBtb21lbnQudXRjKGRhdGUpLmZvcm1hdChmb3JtYXQpO1xuICB9XG5cbiAgLy8gcmV0dXJuIGRlZmF1bHQgZm9ybWF0XG4gIHJldHVybiBkYXRlLmdldFRpbWUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNoVG9TaGEyNTYgPSAodmFsdWU6IHN0cmluZyB8IEJ1ZmZlciB8IG51bWJlcltdKSA9PiBzaGEyNTYodmFsdWUpO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIFVuaXZlcnNhbGx5IFVuaXF1ZSBJZGVudGlmaWVyIChVVUlEKSB1c2luZyB0aGUgYGNyeXB0by5yYW5kb21VVUlEKClgIG1ldGhvZC5cbiAqIFRoZSBgZGlzYWJsZUVudHJvcHlDYWNoZWAgb3B0aW9uIGlzIHNldCB0byBgdHJ1ZWAgdG8gcHJldmVudCBjYWNoaW5nIG9mIGdlbmVyYXRlZCBVVUlEcy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHJhbmRvbWx5IGdlbmVyYXRlZCBVVUlELlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvY3J5cHRvLmh0bWwjY3J5cHRvcmFuZG9tdXVpZG9wdGlvbnM6fjp0ZXh0PW9wdGlvbnMlMjAlM0NPYmplY3QlM0UtLGRpc2FibGVFbnRyb3B5Q2FjaGUsLSUzQ2Jvb2xlYW4lM0UlMjBCeX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdlbmVyYXRlVVVJRCA9ICgpOiBzdHJpbmcgPT4gY3J5cHRvLnJhbmRvbVVVSUQoeyBkaXNhYmxlRW50cm9weUNhY2hlOiB0cnVlIH0pO1xuXG4vLyBSb3V0ZXIgdHJhbnNmb3JtZXJcbi8vIEVycm9yIHJlc3BvbnNlc1xuZXhwb3J0IGNvbnN0IGdldEVycm9yUmVzcEV2ZW50cyA9IChcbiAgbWV0YWRhdGE6IE1ldGFkYXRhW10sXG4gIHN0YXR1c0NvZGU6IG51bWJlcixcbiAgZXJyb3I6IHN0cmluZyxcbiAgc3RhdFRhZ3M6IE9iamVjdCxcbiAgYmF0Y2hlZDogYm9vbGVhbiA9IGZhbHNlLFxuKToge1xuICBtZXRhZGF0YTogTWV0YWRhdGFbXTtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBlcnJvcjogc3RyaW5nO1xuICBzdGF0VGFnczogT2JqZWN0O1xuICBiYXRjaGVkOiBib29sZWFuO1xufSA9PiAoe1xuICBtZXRhZGF0YSxcbiAgYmF0Y2hlZCxcbiAgc3RhdHVzQ29kZSxcbiAgZXJyb3IsXG4gIHN0YXRUYWdzLFxufSk7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9TdHJpbmcgPSAodmFsdWU6IGFueSkgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xufTtcbiJdfQ==
|