mnemonica 1.0.0 → 1.0.6
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/.ai/ONBOARDING.md +1 -1
- package/.ai/ask/AGENTS.md +15 -9
- package/.ai/async_init.md +2 -2
- package/.ai/rules-skill/contributing.md +1 -1
- package/.ai/rules-skill/define-patterns.md +8 -2
- package/.ai/rules-skill/ecosystem.md +4 -4
- package/.ai/rules-skill/instance-methods.md +48 -15
- package/.ai/rules-skill/type-system.md +12 -2
- package/AGENTS.md +6 -2
- package/CONTRIBUTING.md +61 -9
- package/FOR_HUMANS.md +149 -239
- package/README.md +75 -40
- package/SKILL.md +1 -1
- package/build/api/errors/exceptionConstructor.js +20 -12
- package/build/api/errors/index.js +9 -5
- package/build/api/errors/throwModificationError.js +15 -9
- package/build/api/index.js +35 -2
- package/build/api/types/InstanceCreator.js +5 -2
- package/build/api/types/Mnemosyne.d.ts +6 -6
- package/build/api/types/Mnemosyne.js +43 -120
- package/build/api/types/Props.js +5 -3
- package/build/api/types/TypeProxy.js +13 -9
- package/build/api/types/compileNewModificatorFunctionBody.js +14 -8
- package/build/api/types/index.js +56 -13
- package/build/api/utils/index.js +21 -12
- package/build/constants/index.js +11 -8
- package/build/descriptors/types/index.js +79 -26
- package/build/index.d.ts +4 -4
- package/build/index.js +62 -15
- package/build/types/index.d.ts +52 -31
- package/build/types/index.js +1 -1
- package/build/utils/clone.d.ts +1 -0
- package/build/utils/clone.js +11 -0
- package/build/utils/collectConstructors.js +5 -3
- package/build/utils/exception.d.ts +1 -0
- package/build/utils/exception.js +14 -0
- package/build/utils/extract.d.ts +2 -3
- package/build/utils/extract.js +3 -2
- package/build/utils/fork.d.ts +1 -0
- package/build/utils/fork.js +33 -0
- package/build/utils/index.d.ts +2 -3
- package/build/utils/index.js +21 -7
- package/build/utils/merge.d.ts +2 -1
- package/build/utils/merge.js +10 -6
- package/build/utils/parent.d.ts +1 -1
- package/build/utils/parent.js +3 -2
- package/build/utils/parse.d.ts +2 -12
- package/build/utils/parse.js +1 -1
- package/build/utils/pick.d.ts +4 -3
- package/build/utils/pick.js +4 -5
- package/build/utils/sibling.d.ts +1 -0
- package/build/utils/sibling.js +25 -0
- package/build/utils/toJSON.d.ts +1 -1
- package/build/utils/toJSON.js +3 -2
- package/docs/UTILS.md +184 -0
- package/docs/ai-learning-trajectory.md +1 -1
- package/docs/async-constructors.md +3 -1
- package/docs/empathy-in-ai.md +170 -0
- package/docs/hott-primer.md +47 -0
- package/docs/performance-vs-security.md +395 -0
- package/docs/purpose.md +38 -7
- package/docs/tactica-pattern.md +10 -10
- package/docs/theory-of-operations.md +224 -0
- package/docs/typed-lookup.md +12 -12
- package/docs/typeomatica.md +1 -1
- package/package.json +13 -6
- package/src/api/errors/exceptionConstructor.ts +14 -9
- package/src/api/errors/index.ts +8 -4
- package/src/api/errors/throwModificationError.ts +10 -9
- package/src/api/types/InstanceCreator.ts +5 -8
- package/src/api/types/Mnemosyne.ts +72 -231
- package/src/api/types/Props.ts +4 -2
- package/src/api/types/TypeProxy.ts +7 -11
- package/src/api/types/compileNewModificatorFunctionBody.ts +13 -7
- package/src/api/types/index.ts +15 -8
- package/src/api/utils/index.ts +16 -14
- package/src/constants/index.ts +6 -9
- package/src/descriptors/types/index.ts +44 -24
- package/src/index.ts +28 -21
- package/src/types/index.ts +101 -69
- package/src/utils/clone.ts +11 -0
- package/src/utils/collectConstructors.ts +4 -2
- package/src/utils/exception.ts +16 -0
- package/src/utils/extract.ts +5 -2
- package/src/utils/fork.ts +57 -0
- package/src/utils/index.ts +32 -13
- package/src/utils/merge.ts +18 -6
- package/src/utils/parent.ts +4 -6
- package/src/utils/parse.ts +5 -4
- package/src/utils/pick.ts +10 -2
- package/src/utils/sibling.ts +33 -0
- package/src/utils/toJSON.ts +3 -2
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.TypeProxy = void 0;
|
|
4
|
-
const utils_1 = require("../utils");
|
|
7
|
+
const utils_1 = __importDefault(require("../utils"));
|
|
5
8
|
const { checkProto, } = utils_1.default;
|
|
6
9
|
const hop_1 = require("../../utils/hop");
|
|
7
10
|
const errors_1 = require("../../descriptors/errors");
|
|
8
11
|
const { WRONG_TYPE_DEFINITION, } = errors_1.ErrorsTypes;
|
|
9
|
-
const Mnemosyne_1 = require("./Mnemosyne");
|
|
12
|
+
const Mnemosyne_1 = __importDefault(require("./Mnemosyne"));
|
|
10
13
|
const { createMnemosyne, getDefaultPrototype } = Mnemosyne_1.default;
|
|
11
14
|
const InstanceCreator_1 = require("./InstanceCreator");
|
|
12
15
|
exports.TypeProxy = function (__type__, Uranus) {
|
|
@@ -30,9 +33,11 @@ exports.TypeProxy.prototype.get = function (target, prop) {
|
|
|
30
33
|
return propDeclaration;
|
|
31
34
|
}
|
|
32
35
|
if (type.subtypes.has(prop)) {
|
|
33
|
-
|
|
36
|
+
const subtypeResult = type.subtypes.get(prop);
|
|
37
|
+
return subtypeResult;
|
|
34
38
|
}
|
|
35
|
-
|
|
39
|
+
const reflectResult = Reflect.get(target, prop);
|
|
40
|
+
return reflectResult;
|
|
36
41
|
};
|
|
37
42
|
exports.TypeProxy.prototype.set = function (_target, name, value) {
|
|
38
43
|
const { __type__: type } = this;
|
|
@@ -54,7 +59,8 @@ const subTypeApply = (parentType, cfg) => {
|
|
|
54
59
|
const decorator = function (cstr) {
|
|
55
60
|
const { name } = cstr;
|
|
56
61
|
const defineResult = parentType.define(name, cstr, cfg);
|
|
57
|
-
|
|
62
|
+
const result = defineResult;
|
|
63
|
+
return result;
|
|
58
64
|
};
|
|
59
65
|
return decorator;
|
|
60
66
|
};
|
|
@@ -76,10 +82,8 @@ Object.defineProperty(exports.TypeProxy.prototype, 'apply', {
|
|
|
76
82
|
exports.TypeProxy.prototype.construct = function (_target, args) {
|
|
77
83
|
const { __type__: type, Uranus } = this;
|
|
78
84
|
const uranus = type.isSubType ? getDefaultPrototype() : Uranus;
|
|
79
|
-
const
|
|
80
|
-
const exposeInstanceMethods = config.exposeInstanceMethods;
|
|
81
|
-
const mnemosyneProxy = createMnemosyne(uranus, exposeInstanceMethods);
|
|
85
|
+
const mnemosyneProxy = createMnemosyne(uranus);
|
|
82
86
|
const instance = new InstanceCreator_1.InstanceCreator(type, mnemosyneProxy, args);
|
|
83
87
|
return instance;
|
|
84
88
|
};
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9UeXBlUHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFNYixvQ0FBa0M7QUFDbEMsTUFBTSxFQUFFLFVBQVUsR0FBRyxHQUFHLGVBQVUsQ0FBQztBQUVuQyx5Q0FBc0M7QUFFdEMscURBQXVEO0FBQ3ZELE1BQU0sRUFBRSxxQkFBcUIsR0FBRyxHQUFHLG9CQUFXLENBQUM7QUFFL0MsMkNBQXFDO0FBQ3JDLE1BQU0sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxtQkFBVSxDQUFDO0FBRTVELHVEQUFvRDtBQThCdkMsUUFBQSxTQUFTLEdBQUcsVUFBVSxRQUF1QixFQUFFLE1BQWU7SUFDMUUsTUFBTSxDQUFDLE1BQU0sQ0FDWixJQUFJLEVBQ0o7UUFDQyxRQUFRO1FBQ1IsTUFBTTtLQUNOLENBQ0QsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxDQUMxQixpQ0FBZSxFQUNmLElBQUksQ0FDSixDQUFDO0lBQ0YsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBcUMsQ0FBQztBQUV0QyxpQkFBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsVUFBbUMsTUFBNkIsRUFBRSxJQUFZO0lBRXZHLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBR2hDLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUksSUFBZ0MsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUNsRSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sZUFBZSxDQUFDO0lBQ3hCLENBQUM7SUFJRCxJQUFJLElBQUEsU0FBRyxFQUNOLElBQUksRUFDSixJQUFJLENBQ0osRUFBRSxD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QUM7SUFHL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQXlELENBQUM7SUFDOUUsTUFBTSxxQkFBcUIsR0FBRyxNQUFPLENBQUMscUJBQTJDLENBQUM7SUFFbEYsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUNyQyxNQUFNLEVBQ04scUJBQXFCLENBQ3JCLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLGlDQUFlLENBQ25DLElBQUksRUFDSixjQUFjLEVBQ2QsSUFBSSxDQUNKLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUVqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB0eXBlIHtcblx0Y29uc3RydWN0b3JPcHRpb25zLCBfSW50ZXJuYWxfVENfLCBUeXBlRGVmLCBUeXBlRGVzY3JpcHRvckRlZmluZSBcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7IGNoZWNrUHJvdG8sIH0gPSBUeXBlc1V0aWxzO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5jb25zdCB7IFdST05HX1RZUEVfREVGSU5JVElPTiwgfSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgbW5lbW9zeW5lcyBmcm9tICcuL01uZW1vc3luZSc7XG5jb25zdCB7IGNyZWF0ZU1uZW1vc3luZSwgZ2V0RGVmYXVsdFByb3RvdHlwZSB9ID0gbW5lbW9zeW5lcztcblxuaW1wb3J0IHsgSW5zdGFuY2VDcmVhdG9yIH0gZnJvbSAnLi9JbnN0YW5jZUNyZWF0b3InO1xuXG4vLyBUaGUgcnVudGltZSBvYmplY3Qgc3RvcmVkIGluIF9fdHlwZV9fIGlzIGEgVHlwZURlc2NyaXB0b3IgaW5zdGFuY2UsXG4vLyB3aGljaCBoYXMgYWxsIFR5cGVEZWYgcHJvcGVydGllcyBwbHVzIGRlZmluZS9sb29rdXAgbWV0aG9kcy5cbmludGVyZmFjZSBUeXBlUHJveHlUeXBlIGV4dGVuZHMgVHlwZURlZiB7XG5cdGRlZmluZTogVHlwZURlc2NyaXB0b3JEZWZpbmU7XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8vIFByb3h5IHRyYXAgaGFuZGxlciBzaWduYXR1cmVzXG5pbnRlcmZhY2UgVHlwZVByb3h5R2V0SGFuZGxlciB7XG5cdGdldCh0YXJnZXQ6IF9JbnRlcm5hbF9UQ188b2JqZWN0PiwgcHJvcDogc3RyaW5nKTogdW5rbm93bjtcbn1cblxuaW50ZXJmYWNlIFR5cGVQcm94eVNldEhhbmRsZXIge1xuXHRzZXQoX3RhcmdldDogdW5rbm93biwgbmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBUeXBlUHJveHlDb25zdHJ1Y3RIYW5kbGVyIHtcblx0Y29uc3RydWN0KF90YXJnZXQ6IHVua25vd24sIGFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcbn1cblxuLy8gVHlwZSBmb3IgVHlwZVByb3h5IGluc3RhbmNlIOKAlCBkYXRhICsgdHJhcHNcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVByb3h5SW5zdGFuY2UgZXh0ZW5kcyBUeXBlUHJveHlHZXRIYW5kbGVyLCBUeXBlUHJveHlTZXRIYW5kbGVyLCBUeXBlUHJveHlDb25zdHJ1Y3RIYW5kbGVyIHtcblx0X190eXBlX186IFR5cGVQcm94eVR5cGU7XG5cdFVyYW51czogdW5rbm93bjtcblx0YXBwbHk6IHR5cGVvZiBzdWJUeXBlQXBwbHk7XG5cdG5ldyAoLi4uYXJnczogdW5rbm93bltdKTogb2JqZWN0O1xufVxuXG5leHBvcnQgY29uc3QgVHlwZVByb3h5ID0gZnVuY3Rpb24gKF9fdHlwZV9fOiBUeXBlUHJveHlUeXBlLCBVcmFudXM6IHVua25vd24pIHtcblx0T2JqZWN0LmFzc2lnbihcblx0XHR0aGlzLFxuXHRcdHtcblx0XHRcdF9fdHlwZV9fLFxuXHRcdFx0VXJhbnVzXG5cdFx0fVxuXHQpO1xuXHRjb25zdCB0eXBlUHJveHkgPSBuZXcgUHJveHkoXG5cdFx0SW5zdGFuY2VDcmVhdG9yLFxuXHRcdHRoaXNcblx0KTtcblx0cmV0dXJuIHR5cGVQcm94eTtcbn0gYXMgX0ludGVybmFsX1RDXzxUeXBlUHJveHlJbnN0YW5jZT47XG5cblR5cGVQcm94eS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKHRoaXM6IFR5cGVQcm94eUluc3RhbmNlLCB0YXJnZXQ6IF9JbnRlcm5hbF9UQ188b2JqZWN0PiwgcHJvcDogc3RyaW5nKSB7XG5cblx0Y29uc3QgeyBfX3R5cGVfXzogdHlwZSB9ID0gdGhpcztcblxuXHQvLyBwcm90b3R5cGUgb2YgcHJveHlcblx0aWYgKHByb3AgPT09ICdwcm90b3R5cGUnKSB7XG5cdFx0cmV0dXJuIHR5cGUucHJvdG87XG5cdH1cblxuXHRjb25zdCBwcm9wRGVjbGFyYXRpb24gPSAodHlwZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbIHByb3AgXTtcblx0aWYgKHByb3BEZWNsYXJhdGlvbikge1xuXHRcdHJldHVybiBwcm9wRGVjbGFyYXRpb247XG5cdH1cblxuXHQvLyB1c2VkIGZvciBleGlzdGVudCBwcm9wcyB3aXRoIHZhbHVlXG5cdC8vIHVuZGVmaW5lZCB8fCBudWxsIHx8IGZhbHNlXG5cdGlmIChob3AoXG5cdFx0dHlwZSxcblx0XHRwcm9wXG5cdCkpIHtcblx0XHRyZXR1cm4gcHJvcERlY2xhcmF0aW9uO1xuXHR9XG5cblx0Ly8gU29tZVR5cGUuU29tZVN1YlR5cGVcblx0aWYgKHR5cGUuc3VidHlwZXMuaGFzKHByb3ApKSB7XG5cdFx0cmV0dXJuIHR5cGUuc3VidHlwZXMuZ2V0KHByb3ApO1xuXHR9XG5cblx0cmV0dXJuIFJlZmxlY3QuZ2V0KFxuXHRcdHRhcmdldCxcblx0XHRwcm9wXG5cdCk7XG5cbn07XG5cblR5cGVQcm94eS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKHRoaXM6IFR5cGVQcm94eUluc3RhbmNlLCBfdGFyZ2V0OiB1bmtub3duLCBuYW1lOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG5cblx0Y29uc3QgeyBfX3R5cGVfXzogdHlwZSB9ID0gdGhpcztcblxuXHQvLyBpcyBhYm91dCBzZXR0aW5nIGEgcHJvdG90eXBlIHRvIFR5cGVcblx0aWYgKG5hbWUgPT09ICdwcm90b3R5cGUnKSB7XG5cdFx0Y2hlY2tQcm90byh2YWx1ZSk7XG5cdFx0T2JqZWN0LmFzc2lnbihcblx0XHRcdHR5cGUucHJvdG8sXG5cdFx0XHR2YWx1ZVxuXHRcdCk7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnIHx8ICFuYW1lLmxlbmd0aCkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oJ3Nob3VsZCB1c2Ugbm9uIGVtcHR5IHN0cmluZyBhcyBUeXBlTmFtZScpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oJ3Nob3VsZCB1c2UgZnVuY3Rpb24gZm9yIHR5cGUgZGVmaW5pdGlvbicpO1xuXHR9XG5cblx0dHlwZS5kZWZpbmUoXG5cdFx0bmFtZSxcblx0XHR2YWx1ZVxuXHQpO1xuXHRyZXR1cm4gdHJ1ZTtcblxufTtcblxuLy8gc2hhcmUgZGVjb3JhdG9yIGZyb20gcHJpbWFyeSB0eXBlXG5jb25zdCBzdWJUeXBlQXBwbHkgPSAoXG5cdHBhcmVudFR5cGU6IFR5cGVQcm94eVR5cGUsXG5cdGNmZz86IGNvbnN0cnVjdG9yT3B0aW9uc1xuKSA9PiB7XG5cdGNvbnN0IGRlY29yYXRvciA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgeyBuZXcgKCk6IHVua25vd24gfT4oY3N0cjogVCk6IFQge1xuXHRcdGNvbnN0IHsgbmFtZSB9ID0gY3N0cjtcblx0XHRjb25zdCBkZWZpbmVSZXN1bHQgPSBwYXJlbnRUeXBlLmRlZmluZShcblx0XHRcdG5hbWUsXG5cdFx0XHRjc3RyLFxuXHRcdFx0Y2ZnXG5cdFx0KTtcblx0XHRyZXR1cm4gZGVmaW5lUmVzdWx0IGFzIHVua25vd24gYXMgVDtcblx0fTtcblx0cmV0dXJuIGRlY29yYXRvcjtcbn07XG5cbi8vIHJlcGxhY2UgaW5zdGFuY2UgcHJvdG90eXBlXG5jb25zdCBwcmltYXJ5VHlwZUFwcGx5ID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlUHJveHlJbnN0YW5jZSxcblx0Ly8gcHJveHkgdGFyZ2V0XG5cdF9fOiB1bmtub3duLFxuXHRVcmFudXM6IHVua25vd24sXG5cdGFyZ3M6IFtjb25zdHJ1Y3Rvck9wdGlvbnMsIC4uLnVua25vd25bXV0sXG4pIHtcblx0Y29uc3QgdHlwZSA9IHRoaXMuX190eXBlX187XG5cdC8vIGNhc2Ugb2YgZGVjb3JhdG9yIGxpa2UgdXNhZ2Vcblx0aWYgKFVyYW51cyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Y29uc3QgZGVjb3JhdG9yID0gc3ViVHlwZUFwcGx5KFxuXHRcdFx0dHlwZSxcblx0XHRcdGFyZ3NbIDAgXVxuXHRcdCk7XG5cdFx0cmV0dXJuIGRlY29yYXRvcjtcblx0fVxuXG5cdC8vIHRoaXMgaXMgdGhlIHNjZW5hcmlvLCB3aGVuIHdlIC5jYWxsIG9yIC5hcHBseSBvciAuYmluZFxuXHQvLyBvdXIgUHJpbWFyeVR5cGUgd2hpY2sgaXMgPT09IGluc3RhbmNlIG9mIGN1cnJlbnQgVHlwZVByb3h5XG5cdGNvbnN0IEluc3RhbmNlQ3JlYXRvclByb3h5ID0gbmV3IFR5cGVQcm94eShcblx0XHR0eXBlLFxuXHRcdFVyYW51c1xuXHQpO1xuXHRjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3JQcm94eSguLi5hcmdzKTtcblx0cmV0dXJuIGluc3RhbmNlO1xufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuXHRUeXBlUHJveHkucHJvdG90eXBlLFxuXHQnYXBwbHknLFxuXHR7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBwcmltYXJ5VHlwZUFwcGx5O1xuXHRcdH1cblx0fVxuKTtcblxuLy8gdGhpcyBhbHdheXMgaXMgaW5pdGlhbCB0eXBlIGNyZWF0aW9uIC4uLlxuLy8gc28gbm8gd2F5IHRvIGludm9rZSB0aGlzIG90aGVyd2lzZSB0aGFuIGRpcmVjdCB0eXBlIGNhbGxcblR5cGVQcm94eS5wcm90b3R5cGUuY29uc3RydWN0ID0gZnVuY3Rpb24gKHRoaXM6IFR5cGVQcm94eUluc3RhbmNlLCBfdGFyZ2V0OiB1bmtub3duLCBhcmdzOiB1bmtub3duW10pIHtcblxuXHQvLyBuZXcudGFyZ2V0IGlkIGVxdWFsIHdpdGggdGFyZ2V0IGhlcmVcblxuXHRjb25zdCB7XG5cdFx0X190eXBlX186IHR5cGUsXG5cdFx0VXJhbnVzXG5cdH0gPSB0aGlzO1xuXG5cdC8vIHNvIHRoaXMgaXMgYSBkaXJlY3QgU3ViLVR5cGUgaW52b2NhdGlvblxuXHQvLyBoYXZpbmcgbm8gZXhpc3RlbnRJbnN0YW5jZSBjcmVhdGVkIGVhcmxpZXJcblx0Ly8gdGhlbiB3ZSBzaG91bGQgcmVseSBvbiB0aGF0IHNvbWVob3dcblx0Y29uc3QgdXJhbnVzID0gdHlwZS5pc1N1YlR5cGUgPyBnZXREZWZhdWx0UHJvdG90eXBlKCkgOiBVcmFudXM7XG5cblx0Ly8gR2V0IGV4cG9zZUluc3RhbmNlTWV0aG9kcyBmcm9tIHR5cGUgY29uZmlnLCBkZWZhdWx0aW5nIHRvIGZhbHNlXG5cdGNvbnN0IGNvbmZpZyA9IHR5cGUuY29uZmlnIGFzIHsgZXhwb3NlSW5zdGFuY2VNZXRob2RzPzogYm9vbGVhbiB9IHwgdW5kZWZpbmVkO1xuXHRjb25zdCBleHBvc2VJbnN0YW5jZU1ldGhvZHMgPSBjb25maWchLmV4cG9zZUluc3RhbmNlTWV0aG9kcyBhcyB1bmtub3duIGFzIGJvb2xlYW47XG5cblx0Y29uc3QgbW5lbW9zeW5lUHJveHkgPSBjcmVhdGVNbmVtb3N5bmUoXG5cdFx0dXJhbnVzLFxuXHRcdGV4cG9zZUluc3RhbmNlTWV0aG9kc1xuXHQpO1xuXHRjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3IoXG5cdFx0dHlwZSxcblx0XHRtbmVtb3N5bmVQcm94eSxcblx0XHRhcmdzXG5cdCk7XG5cblx0cmV0dXJuIGluc3RhbmNlO1xuXG59O1xuIl19
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9UeXBlUHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7Ozs7QUFNYixxREFBa0M7QUFDbEMsTUFBTSxFQUFFLFVBQVUsR0FBRyxHQUFHLGVBQVUsQ0FBQztBQUVuQyx5Q0FBc0M7QUFFdEMscURBQXVEO0FBQ3ZELE1BQU0sRUFBRSxxQkFBcUIsR0FBRyxHQUFHLG9CQUFXLENBQUM7QUFFL0MsNERBQXFDO0FBQ3JDLE1BQU0sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxtQkFBVSxDQUFDO0FBRTVELHVEQUFvRDtBQThCdkMsUUFBQSxTQUFTLEdBQUcsVUFBVSxRQUF1QixFQUFFLE1BQWU7SUFDMUUsTUFBTSxDQUFDLE1BQU0sQ0FDWixJQUFJLEVBQ0o7UUFDQyxRQUFRO1FBQ1IsTUFBTTtLQUNOLENBQ0QsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxDQUMxQixpQ0FBZSxFQUNmLElBQUksQ0FDSixDQUFDO0lBQ0YsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBcUMsQ0FBQztBQUV0QyxpQkFBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsVUFBbUMsTUFBNkIsRUFBRSxJQUFZO0lBRXZHLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBR2hDLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUksSUFBZ0MsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUNsRSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sZUFBZSxDQUFDO0lBQ3hCLENBQUM7SUFJRCxJQUFJLElBQUEsU0FBRyxFQUNOLElBQUksRUFDSixJQUFJLENBQ0osRUFB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LElBQUksQ0FBQztJQUtULE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUUvRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQ0FBZSxDQUNuQyxJQUFJLEVBQ0osY0FBYyxFQUNkLElBQUksQ0FDSixDQUFDO0lBRUYsT0FBTyxRQUFRLENBQUM7QUFFakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7XG5cdGNvbnN0cnVjdG9yT3B0aW9ucywgX0ludGVybmFsX1RDXywgVHlwZURlZiwgVHlwZURlc2NyaXB0b3JEZWZpbmUgXG59IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IFR5cGVzVXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuY29uc3QgeyBjaGVja1Byb3RvLCB9ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHsgaG9wIH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9wJztcblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3QgeyBXUk9OR19UWVBFX0RFRklOSVRJT04sIH0gPSBFcnJvcnNUeXBlcztcblxuaW1wb3J0IG1uZW1vc3luZXMgZnJvbSAnLi9NbmVtb3N5bmUnO1xuY29uc3QgeyBjcmVhdGVNbmVtb3N5bmUsIGdldERlZmF1bHRQcm90b3R5cGUgfSA9IG1uZW1vc3luZXM7XG5cbmltcG9ydCB7IEluc3RhbmNlQ3JlYXRvciB9IGZyb20gJy4vSW5zdGFuY2VDcmVhdG9yJztcblxuLy8gVGhlIHJ1bnRpbWUgb2JqZWN0IHN0b3JlZCBpbiBfX3R5cGVfXyBpcyBhIFR5cGVEZXNjcmlwdG9yIGluc3RhbmNlLFxuLy8gd2hpY2ggaGFzIGFsbCBUeXBlRGVmIHByb3BlcnRpZXMgcGx1cyBkZWZpbmUvbG9va3VwIG1ldGhvZHMuXG5pbnRlcmZhY2UgVHlwZVByb3h5VHlwZSBleHRlbmRzIFR5cGVEZWYge1xuXHRkZWZpbmU6IFR5cGVEZXNjcmlwdG9yRGVmaW5lO1xuXHRba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vLyBQcm94eSB0cmFwIGhhbmRsZXIgc2lnbmF0dXJlc1xuaW50ZXJmYWNlIFR5cGVQcm94eUdldEhhbmRsZXIge1xuXHRnZXQodGFyZ2V0OiBfSW50ZXJuYWxfVENfPG9iamVjdD4sIHByb3A6IHN0cmluZyk6IHVua25vd247XG59XG5cbmludGVyZmFjZSBUeXBlUHJveHlTZXRIYW5kbGVyIHtcblx0c2V0KF90YXJnZXQ6IHVua25vd24sIG5hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVHlwZVByb3h5Q29uc3RydWN0SGFuZGxlciB7XG5cdGNvbnN0cnVjdChfdGFyZ2V0OiB1bmtub3duLCBhcmdzOiB1bmtub3duW10pOiBvYmplY3Q7XG59XG5cbi8vIFR5cGUgZm9yIFR5cGVQcm94eSBpbnN0YW5jZSDigJQgZGF0YSArIHRyYXBzXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVQcm94eUluc3RhbmNlIGV4dGVuZHMgVHlwZVByb3h5R2V0SGFuZGxlciwgVHlwZVByb3h5U2V0SGFuZGxlciwgVHlwZVByb3h5Q29uc3RydWN0SGFuZGxlciB7XG5cdF9fdHlwZV9fOiBUeXBlUHJveHlUeXBlO1xuXHRVcmFudXM6IHVua25vd247XG5cdGFwcGx5OiB0eXBlb2Ygc3ViVHlwZUFwcGx5O1xuXHRuZXcgKC4uLmFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcbn1cblxuZXhwb3J0IGNvbnN0IFR5cGVQcm94eSA9IGZ1bmN0aW9uIChfX3R5cGVfXzogVHlwZVByb3h5VHlwZSwgVXJhbnVzOiB1bmtub3duKSB7XG5cdE9iamVjdC5hc3NpZ24oXG5cdFx0dGhpcyxcblx0XHR7XG5cdFx0XHRfX3R5cGVfXyxcblx0XHRcdFVyYW51c1xuXHRcdH1cblx0KTtcblx0Y29uc3QgdHlwZVByb3h5ID0gbmV3IFByb3h5KFxuXHRcdEluc3RhbmNlQ3JlYXRvcixcblx0XHR0aGlzXG5cdCk7XG5cdHJldHVybiB0eXBlUHJveHk7XG59IGFzIF9JbnRlcm5hbF9UQ188VHlwZVByb3h5SW5zdGFuY2U+O1xuXG5UeXBlUHJveHkucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uICh0aGlzOiBUeXBlUHJveHlJbnN0YW5jZSwgdGFyZ2V0OiBfSW50ZXJuYWxfVENfPG9iamVjdD4sIHByb3A6IHN0cmluZykge1xuXG5cdGNvbnN0IHsgX190eXBlX186IHR5cGUgfSA9IHRoaXM7XG5cblx0Ly8gcHJvdG90eXBlIG9mIHByb3h5XG5cdGlmIChwcm9wID09PSAncHJvdG90eXBlJykge1xuXHRcdHJldHVybiB0eXBlLnByb3RvO1xuXHR9XG5cblx0Y29uc3QgcHJvcERlY2xhcmF0aW9uID0gKHR5cGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWyBwcm9wIF07XG5cdGlmIChwcm9wRGVjbGFyYXRpb24pIHtcblx0XHRyZXR1cm4gcHJvcERlY2xhcmF0aW9uO1xuXHR9XG5cblx0Ly8gdXNlZCBmb3IgZXhpc3RlbnQgcHJvcHMgd2l0aCB2YWx1ZVxuXHQvLyB1bmRlZmluZWQgfHwgbnVsbCB8fCBmYWxzZVxuXHRpZiAoaG9wKFxuXHRcdHR5cGUsXG5cdFx0cHJvcFxuXHQpKSB7XG5cdFx0cmV0dXJuIHByb3BEZWNsYXJhdGlvbjtcblx0fVxuXG5cdC8vIFNvbWVUeXBlLlNvbWVTdWJUeXBlXG5cdGlmICh0eXBlLnN1YnR5cGVzLmhhcyhwcm9wKSkge1xuXHRcdGNvbnN0IHN1YnR5cGVSZXN1bHQgPSB0eXBlLnN1YnR5cGVzLmdldChwcm9wKTtcblx0XHRyZXR1cm4gc3VidHlwZVJlc3VsdDtcblx0fVxuXG5cdGNvbnN0IHJlZmxlY3RSZXN1bHQgPSBSZWZsZWN0LmdldChcblx0XHR0YXJnZXQsXG5cdFx0cHJvcFxuXHQpO1xuXHRyZXR1cm4gcmVmbGVjdFJlc3VsdDtcblxufTtcblxuVHlwZVByb3h5LnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAodGhpczogVHlwZVByb3h5SW5zdGFuY2UsIF90YXJnZXQ6IHVua25vd24sIG5hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcblxuXHRjb25zdCB7IF9fdHlwZV9fOiB0eXBlIH0gPSB0aGlzO1xuXG5cdC8vIGlzIGFib3V0IHNldHRpbmcgYSBwcm90b3R5cGUgdG8gVHlwZVxuXHRpZiAobmFtZSA9PT0gJ3Byb3RvdHlwZScpIHtcblx0XHRjaGVja1Byb3RvKHZhbHVlKTtcblx0XHRPYmplY3QuYXNzaWduKFxuXHRcdFx0dHlwZS5wcm90byxcblx0XHRcdHZhbHVlXG5cdFx0KTtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycgfHwgIW5hbWUubGVuZ3RoKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignc2hvdWxkIHVzZSBub24gZW1wdHkgc3RyaW5nIGFzIFR5cGVOYW1lJyk7XG5cdH1cblxuXHRpZiAodHlwZW9mIHZhbHVlICE9PSAnZnVuY3Rpb24nKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignc2hvdWxkIHVzZSBmdW5jdGlvbiBmb3IgdHlwZSBkZWZpbml0aW9uJyk7XG5cdH1cblxuXHR0eXBlLmRlZmluZShcblx0XHRuYW1lLFxuXHRcdHZhbHVlXG5cdCk7XG5cdHJldHVybiB0cnVlO1xuXG59O1xuXG4vLyBzaGFyZSBkZWNvcmF0b3IgZnJvbSBwcmltYXJ5IHR5cGVcbmNvbnN0IHN1YlR5cGVBcHBseSA9IChcblx0cGFyZW50VHlwZTogVHlwZVByb3h5VHlwZSxcblx0Y2ZnPzogY29uc3RydWN0b3JPcHRpb25zXG4pID0+IHtcblx0Y29uc3QgZGVjb3JhdG9yID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyB7IG5ldyAoKTogdW5rbm93biB9Pihjc3RyOiBUKTogVCB7XG5cdFx0Y29uc3QgeyBuYW1lIH0gPSBjc3RyO1xuXHRcdGNvbnN0IGRlZmluZVJlc3VsdCA9IHBhcmVudFR5cGUuZGVmaW5lKFxuXHRcdFx0bmFtZSxcblx0XHRcdGNzdHIsXG5cdFx0XHRjZmdcblx0XHQpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IGRlZmluZVJlc3VsdCBhcyB1bmtub3duIGFzIFQ7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fTtcblx0cmV0dXJuIGRlY29yYXRvcjtcbn07XG5cbi8vIHJlcGxhY2UgaW5zdGFuY2UgcHJvdG90eXBlXG5jb25zdCBwcmltYXJ5VHlwZUFwcGx5ID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlUHJveHlJbnN0YW5jZSxcblx0Ly8gcHJveHkgdGFyZ2V0XG5cdF9fOiB1bmtub3duLFxuXHRVcmFudXM6IHVua25vd24sXG5cdGFyZ3M6IFtjb25zdHJ1Y3Rvck9wdGlvbnMsIC4uLnVua25vd25bXV0sXG4pIHtcblx0Y29uc3QgdHlwZSA9IHRoaXMuX190eXBlX187XG5cdC8vIGNhc2Ugb2YgZGVjb3JhdG9yIGxpa2UgdXNhZ2Vcblx0aWYgKFVyYW51cyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Y29uc3QgZGVjb3JhdG9yID0gc3ViVHlwZUFwcGx5KFxuXHRcdFx0dHlwZSxcblx0XHRcdGFyZ3NbIDAgXVxuXHRcdCk7XG5cdFx0cmV0dXJuIGRlY29yYXRvcjtcblx0fVxuXG5cdC8vIHRoaXMgaXMgdGhlIHNjZW5hcmlvLCB3aGVuIHdlIC5jYWxsIG9yIC5hcHBseSBvciAuYmluZFxuXHQvLyBvdXIgUHJpbWFyeVR5cGUgd2hpY2sgaXMgPT09IGluc3RhbmNlIG9mIGN1cnJlbnQgVHlwZVByb3h5XG5cdGNvbnN0IEluc3RhbmNlQ3JlYXRvclByb3h5ID0gbmV3IFR5cGVQcm94eShcblx0XHR0eXBlLFxuXHRcdFVyYW51c1xuXHQpO1xuXHRjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3JQcm94eSguLi5hcmdzKTtcblx0cmV0dXJuIGluc3RhbmNlO1xufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuXHRUeXBlUHJveHkucHJvdG90eXBlLFxuXHQnYXBwbHknLFxuXHR7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBwcmltYXJ5VHlwZUFwcGx5O1xuXHRcdH1cblx0fVxuKTtcblxuLy8gdGhpcyBhbHdheXMgaXMgaW5pdGlhbCB0eXBlIGNyZWF0aW9uIC4uLlxuLy8gc28gbm8gd2F5IHRvIGludm9rZSB0aGlzIG90aGVyd2lzZSB0aGFuIGRpcmVjdCB0eXBlIGNhbGxcblR5cGVQcm94eS5wcm90b3R5cGUuY29uc3RydWN0ID0gZnVuY3Rpb24gKHRoaXM6IFR5cGVQcm94eUluc3RhbmNlLCBfdGFyZ2V0OiB1bmtub3duLCBhcmdzOiB1bmtub3duW10pIHtcblxuXHQvLyBuZXcudGFyZ2V0IGlkIGVxdWFsIHdpdGggdGFyZ2V0IGhlcmVcblxuXHRjb25zdCB7XG5cdFx0X190eXBlX186IHR5cGUsXG5cdFx0VXJhbnVzXG5cdH0gPSB0aGlzO1xuXG5cdC8vIHNvIHRoaXMgaXMgYSBkaXJlY3QgU3ViLVR5cGUgaW52b2NhdGlvblxuXHQvLyBoYXZpbmcgbm8gZXhpc3RlbnRJbnN0YW5jZSBjcmVhdGVkIGVhcmxpZXJcblx0Ly8gdGhlbiB3ZSBzaG91bGQgcmVseSBvbiB0aGF0IHNvbWVob3dcblx0Y29uc3QgdXJhbnVzID0gdHlwZS5pc1N1YlR5cGUgPyBnZXREZWZhdWx0UHJvdG90eXBlKCkgOiBVcmFudXM7XG5cblx0Y29uc3QgbW5lbW9zeW5lUHJveHkgPSBjcmVhdGVNbmVtb3N5bmUodXJhbnVzKTtcblx0Y29uc3QgaW5zdGFuY2UgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKFxuXHRcdHR5cGUsXG5cdFx0bW5lbW9zeW5lUHJveHksXG5cdFx0YXJnc1xuXHQpO1xuXG5cdHJldHVybiBpbnN0YW5jZTtcblxufTtcbiJdfQ==
|
|
@@ -2,19 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const hop_1 = require("../../utils/hop");
|
|
4
4
|
const getClassConstructor = (ConstructHandler, CreationHandler) => {
|
|
5
|
-
|
|
5
|
+
const result = class extends ConstructHandler {
|
|
6
6
|
constructor(...args) {
|
|
7
7
|
const answer = super(...args);
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const creationResult = CreationHandler.call(this, answer);
|
|
9
|
+
const castResult = creationResult;
|
|
10
|
+
return castResult;
|
|
10
11
|
}
|
|
11
12
|
};
|
|
13
|
+
return result;
|
|
12
14
|
};
|
|
13
15
|
const getFunctionConstructor = (ConstructHandler, CreationHandler) => {
|
|
14
16
|
const newable = (0, hop_1.hop)(ConstructHandler, 'prototype') &&
|
|
15
17
|
(0, hop_1.hop)(ConstructHandler.prototype, 'constructor') &&
|
|
16
18
|
(ConstructHandler.prototype.constructor == ConstructHandler);
|
|
17
|
-
|
|
19
|
+
const funcResult = function (...args) {
|
|
18
20
|
let answer;
|
|
19
21
|
if (!newable) {
|
|
20
22
|
answer = ConstructHandler.call(this, ...args);
|
|
@@ -28,10 +30,11 @@ const getFunctionConstructor = (ConstructHandler, CreationHandler) => {
|
|
|
28
30
|
const result = CreationHandler.call(this, answer);
|
|
29
31
|
return result;
|
|
30
32
|
};
|
|
33
|
+
return funcResult;
|
|
31
34
|
};
|
|
32
35
|
const compileNewModificatorFunctionBody = function (FunctionName, asClass = false) {
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
const outerResult = function (ConstructHandler, CreationHandler, SymbolConstructorName) {
|
|
37
|
+
const innerResult = function () {
|
|
35
38
|
let ModificationBody;
|
|
36
39
|
if (asClass) {
|
|
37
40
|
ModificationBody = getClassConstructor(ConstructHandler, CreationHandler);
|
|
@@ -49,9 +52,12 @@ const compileNewModificatorFunctionBody = function (FunctionName, asClass = fals
|
|
|
49
52
|
return FunctionName;
|
|
50
53
|
}
|
|
51
54
|
});
|
|
52
|
-
|
|
55
|
+
const result = ModificationBody;
|
|
56
|
+
return result;
|
|
53
57
|
};
|
|
58
|
+
return innerResult;
|
|
54
59
|
};
|
|
60
|
+
return outerResult;
|
|
55
61
|
};
|
|
56
62
|
exports.default = compileNewModificatorFunctionBody;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9jb21waWxlTmV3TW9kaWZpY2F0b3JGdW5jdGlvbkJvZHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLHlDQUFzQztBQStDdEMsTUFBTSxtQkFBbUIsR0FBRyxDQUMzQixnQkFBdUMsRUFDdkMsZUFBZ0MsRUFDL0IsRUFBRTtJQUNILE9BQU8sS0FBTSxTQUFRLGdCQUFnQjtRQUVwQyxZQUFjLEdBQUcsSUFBZTtZQUMvQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUUsR0FBRyxJQUFJLENBQUUsQ0FBQztZQUVoQyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUNsQyxJQUFJLEVBQ0osTUFBTSxDQUNOLENBQUM7WUFDRixPQUFPLE1BQWdCLENBQUM7UUFDekIsQ0FBQztLQUNELENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUFHLENBQzlCLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUMvQixFQUFFO0lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBQSxTQUFHLEVBQ2xCLGdCQUFnQixFQUNoQixXQUFXLENBQ1g7UUFDQSxJQUFBLFNBQUcsRUFDRixnQkFBZ0IsQ0FBQyxTQUFTLEVBQzFCLGFBQWEsQ0FDYjtRQUNELENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTlELE9BQU8sVUFBeUIsR0FBRyxJQUFlO1FBQ2pELElBQUksTUFBTSxDQUFDO1FBSVgsSUFBSyxDQUFDLE9BQU8sRUFBRyxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzdCLElBQUksRUFDSixHQUFHLElBQUksQ0FDUCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7WUFHMUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3hELE1BQU0sR0FBRyxJQUFLLGdCQUFrRSxDQUFFLEdBQUcsSUFBSSxDQUFFLENBQUM7WUFDNUYsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FDbEMsSUFBSSxFQUNKLE1BQU0sQ0FDTixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFJRixNQUFNLGlDQUFpQyxHQUFHLFVBQVcsWUFBb0IsRUFBRSxPQUFPLEdBQUcsS0FBSztJQUN6RixPQUFPLFVBQ04sZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLHFCQUE2QjtRQUU3QixPQUFPO1lBQ04sSUFBSSxnQkFBa0MsQ0FBQztZQUN2QyxJQUFLLE9BQU8sRUFBRyxDQUFDO2dCQUNmLGdCQUFnQixHQUFHLG1CQUFtQixDQUNyQyxnQkFBb0QsRUFDcEQsZUFBZSxDQUNmLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBSVAsZ0JBQWdCLEdBQUcsc0JBQXNCLENBQ3hDLGdCQUFnQixFQUNoQixlQUFlLENBQ2dCLENBQUM7WUFDbEMsQ0FBQztZQUNELGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7WUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FDcEIsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFDdEMsTUFBTSxFQUNOO2dCQUNDLEtBQUssRUFBTSxZQUFZO2dCQUN2QixRQUFRLEVBQUcsS0FBSzthQUNoQixDQUNELENBQUM7WUFDRixNQUFNLENBQUMsY0FBYyxDQUNwQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCO2dCQUNDLEdBQUc7b0JBRUYsT0FBTyxZQUFZLENBQUM7Z0JBQ3JCLENBQUM7YUFDRCxDQUNELENBQUM7WUFJRixPQUFPLGdCQUFnQixDQUFDO1FBQ3pCLENBQUMsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLGtCQUFlLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuLypcblxuLy8gaXQgaXMgbm90IHRoYXQgZWFzeVxuLy8gY29uc3RydWN0b3IgbmFtZSBkaWFwcGVhcnMgd2hlbiB5b3UgbG9vayBvbiAndGhpcydcbi8vIHVzaW5nIENocm9tZSBEZXYgdG9vbHMgZGVidWdnZXIgZm9yIGV4YW1wbGVcbi8vIGFkZGluZyAnZGVidWdnZXI7JyBrZXl3b3JkIG5leHQgbGluZSB0byBcbi8vICdjb25zdCBhbnN3ZXIgPSAnIHNlZSBleGFtcGxlIGRvd24gYmVsb3dcblxuLy8gdGhvdWdodCBmb3IgY29uc29sZS5sb2cgaXQgaXMgdGhlcmVcblxuLy8gQWxzbywgYXMgaXQgaXMgd3JpdHRlbiBoZXJlXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9GdW5jdGlvbi9uYW1lXG5cbi8vIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBtaWdodCBiZSBvYmZ1c2NhdGVkIGR1cmluZyBidW5kbGluZ1xuLy8gdGhlcmVmb3JlIGl0IHNlZW1zIHRvIGJlIG1vcmUgY29ycmVjdCB0byBpbXBsZW1lbnQgdXNpbmcgJ25ldyBGdW5jdGlvbidcblxuLy8gdGhlcmVmb3JlIGNvbnNpZGVyaW5nIHdlIGhhdmUgb3BlbiBidWcgbm93OlxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTM1MDQwNFxuLy8gcmVsYXRlZCB0byB0aGUgbGlua3MgYmVsb3dcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3dlbnRvdXQvNWRjZGQzNGY5MjY0NjBkODljOGMxNTUyZDFiYmMzZDdcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0Z1bmN0aW9uL25hbWVcblxuLy8gd2Ugd2lsbCB1c2UgbmV4dCBzb2x1dGlvbiBhcyB3b3JraW5nIGNvZGVcbi8vIGJlY2F1c2UgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIGtlcHQgT0tcbi8vIGp1c3QgdGhlIGJ1ZyBpcyBmb3IgQ2hyb21lIERldiBUb29sc1xuXG4vLyBhbmQgYXMgcHJlbGltaW5hcnkgY29tcGlsZWQgZnVuY3Rpb25zIHNvbHV0aW9uIHdvcmtzIGZhc3RlclxuLy8gYW5kIGRvZXMgbm90IHJlcXVpcmUgbmV3IGNvZGUgY29tcGlsYXRpb25cbi8vIHdlIHdpbGwga2VlcCBpdCBmdXJ0aGVyXG5cbiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0SGFuZGxlciBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQodGhpczogb2JqZWN0LCAuLi5hcmdzOiB1bmtub3duW10pOiB1bmtub3duO1xuXHRwcm90b3R5cGU6IG9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFzc0NvbnN0cnVjdEhhbmRsZXIgZXh0ZW5kcyBOZXdhYmxlRnVuY3Rpb24ge1xuXHRuZXcgKC4uLmFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcblx0cHJvdG90eXBlOiBvYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRpb25IYW5kbGVyIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdCh0aGlzOiBvYmplY3QsIGFuc3dlcjogdW5rbm93bik6IHVua25vd247XG59XG5cbmNvbnN0IGdldENsYXNzQ29uc3RydWN0b3IgPSAoXG5cdENvbnN0cnVjdEhhbmRsZXI6IENsYXNzQ29uc3RydWN0SGFuZGxlcixcblx0Q3JlYXRpb25IYW5kbGVyOiBDcmVhdGlvbkhhbmRsZXIsXG4pID0+IHtcblx0cmV0dXJuIGNsYXNzIGV4dGVuZHMgQ29uc3RydWN0SGFuZGxlciB7XG5cdFx0Ly8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnN0cnVjdG9yLXN1cGVyXG5cdFx0Y29uc3RydWN0b3IgKCAuLi5hcmdzOiB1bmtub3duW10gKSB7XG5cdFx0XHRjb25zdCBhbnN3ZXIgPSBzdXBlciggLi4uYXJncyApO1xuXHRcdFx0Ly8gZGVidWdnZXI7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBDcmVhdGlvbkhhbmRsZXIuY2FsbChcblx0XHRcdFx0dGhpcyxcblx0XHRcdFx0YW5zd2VyIFxuXHRcdFx0KTtcblx0XHRcdHJldHVybiByZXN1bHQgYXMgb2JqZWN0O1xuXHRcdH1cblx0fTtcbn07XG5cbmNvbnN0IGdldEZ1bmN0aW9uQ29uc3RydWN0b3IgPSAoXG5cdENvbnN0cnVjdEhhbmRsZXI6IENvbnN0cnVjdEhhbmRsZXIsXG5cdENyZWF0aW9uSGFuZGxlcjogQ3JlYXRpb25IYW5kbGVyLFxuKSA9PiB7XG5cdGNvbnN0IG5ld2FibGUgPSBob3AoXG5cdFx0Q29uc3RydWN0SGFuZGxlcixcblx0XHQncHJvdG90eXBlJyBcblx0KSAmJlxuXHRcdGhvcChcblx0XHRcdENvbnN0cnVjdEhhbmRsZXIucHJvdG90eXBlLFxuXHRcdFx0J2NvbnN0cnVjdG9yJyBcblx0XHQpICYmXG5cdFx0KENvbnN0cnVjdEhhbmRsZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID09IENvbnN0cnVjdEhhbmRsZXIpO1xuXG5cdHJldHVybiBmdW5jdGlvbiAoIHRoaXM6IG9iamVjdCwgLi4uYXJnczogdW5rbm93bltdICkge1xuXHRcdGxldCBhbnN3ZXI7XG5cdFx0Ly8gaWYgKCFuZXcudGFyZ2V0KSB7XG5cdFx0Ly8gXHRkZWJ1Z2dlcjtcblx0XHQvLyB9XG5cdFx0aWYgKCAhbmV3YWJsZSApIHtcblx0XHRcdGFuc3dlciA9IENvbnN0cnVjdEhhbmRsZXIuY2FsbChcblx0XHRcdFx0dGhpcyxcblx0XHRcdFx0Li4uYXJncyBcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IF9wcm90byA9IENvbnN0cnVjdEhhbmRsZXIucHJvdG90eXBlO1xuXHRcdFx0Ly8gISEhIGl0IE1VU1QgYmUgc3RyaWN0IHJlcGxhY2VtZW50ICEhIVxuXHRcdFx0Ly8gISEhIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGtlZXAgUHJvdG90eXBlIENoYWluIGNvcnJlY3QgISEhXG5cdFx0XHRDb25zdHJ1Y3RIYW5kbGVyLnByb3RvdHlwZSA9IHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlO1xuXHRcdFx0YW5zd2VyID0gbmV3IChDb25zdHJ1Y3RIYW5kbGVyIGFzIHVua25vd24gYXMgbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IG9iamVjdCkoIC4uLmFyZ3MgKTtcblx0XHRcdENvbnN0cnVjdEhhbmRsZXIucHJvdG90eXBlID0gX3Byb3RvO1xuXHRcdH1cblx0XHRjb25zdCByZXN1bHQgPSBDcmVhdGlvbkhhbmRsZXIuY2FsbChcblx0XHRcdHRoaXMsXG5cdFx0XHRhbnN3ZXIgXG5cdFx0KTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9O1xufTtcblxudHlwZSBNb2RpZmljYXRpb25Cb2R5ID0gbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IG9iamVjdDtcblxuY29uc3QgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5ID0gZnVuY3Rpb24gKCBGdW5jdGlvbk5hbWU6IHN0cmluZywgYXNDbGFzcyA9IGZhbHNlICkge1xuXHRyZXR1cm4gZnVuY3Rpb24gKFxuXHRcdENvbnN0cnVjdEhhbmRsZXI6IENvbnN0cnVjdEhhbmRsZXIsXG5cdFx0Q3JlYXRpb25IYW5kbGVyOiBDcmVhdGlvbkhhbmRsZXIsXG5cdFx0U3ltYm9sQ29uc3RydWN0b3JOYW1lOiBzeW1ib2xcblx0KTogKCkgPT4gTW9kaWZpY2F0aW9uQm9keSB7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uICgpOiBNb2RpZmljYXRpb25Cb2R5IHtcblx0XHRcdGxldCBNb2RpZmljYXRpb25Cb2R5OiBNb2RpZmljYXRpb25Cb2R5O1xuXHRcdFx0aWYgKCBhc0NsYXNzICkge1xuXHRcdFx0XHRNb2RpZmljYXRpb25Cb2R5ID0gZ2V0Q2xhc3NDb25zdHJ1Y3Rvcihcblx0XHRcdFx0XHRDb25zdHJ1Y3RIYW5kbGVyIGFzIHVua25vd24gYXMgQ2xhc3NDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdFx0XHRcdENyZWF0aW9uSGFuZGxlclxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gY29uc3QgUmVOYW1lZENvbnN0cnVjdEhhbmRsZXIgPSB7fSBhcyB1bmtub3duO1xuXHRcdFx0XHQvLyBSZU5hbWVkQ29uc3RydWN0SGFuZGxlcltGdW5jdGlvbk5hbWVdID0gQ29uc3RydWN0SGFuZGxlcjtcblx0XHRcdFx0Ly8gTW9kaWZpY2F0aW9uQm9keSA9IGdldEZ1bmN0aW9uQ29uc3RydWN0b3IoUmVOYW1lZENvbnN0cnVjdEhhbmRsZXJbRnVuY3Rpb25OYW1lXSwgQ3JlYXRpb25IYW5kbGVyKTtcblx0XHRcdFx0TW9kaWZpY2F0aW9uQm9keSA9IGdldEZ1bmN0aW9uQ29uc3RydWN0b3IoXG5cdFx0XHRcdFx0Q29uc3RydWN0SGFuZGxlcixcblx0XHRcdFx0XHRDcmVhdGlvbkhhbmRsZXJcblx0XHRcdFx0KSBhcyB1bmtub3duIGFzIE1vZGlmaWNhdGlvbkJvZHk7XG5cdFx0XHR9XG5cdFx0XHRNb2RpZmljYXRpb25Cb2R5LnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1vZGlmaWNhdGlvbkJvZHk7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoXG5cdFx0XHRcdE1vZGlmaWNhdGlvbkJvZHkucHJvdG90eXBlLmNvbnN0cnVjdG9yLFxuXHRcdFx0XHQnbmFtZScsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR2YWx1ZSAgICA6IEZ1bmN0aW9uTmFtZSxcblx0XHRcdFx0XHR3cml0YWJsZSA6IGZhbHNlXG5cdFx0XHRcdH0gXG5cdFx0XHQpO1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KFxuXHRcdFx0XHRNb2RpZmljYXRpb25Cb2R5LFxuXHRcdFx0XHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRcdC8vIHJldHVybiBuZXcgU3RyaW5nKCBGdW5jdGlvbk5hbWUgKTtcblx0XHRcdFx0XHRcdHJldHVybiBGdW5jdGlvbk5hbWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IFxuXHRcdFx0KTtcblx0XHRcdC8vIE9iamVjdC5mcmVlemUoIE1vZGlmaWNhdGlvbkJvZHkucHJvdG90eXBlLmNvbnN0cnVjdG9yICk7XG5cdFx0XHQvLyBPYmplY3QuZnJlZXplKCBNb2RpZmljYXRpb25Cb2R5LnByb3RvdHlwZSApO1xuXHRcdFx0Ly8gT2JqZWN0LmZyZWV6ZSggTW9kaWZpY2F0aW9uQm9keSApO1xuXHRcdFx0cmV0dXJuIE1vZGlmaWNhdGlvbkJvZHk7XG5cdFx0fTtcblx0fTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keTtcblxuXG4vKlxuXG4vLyBob3dldmVyLCBmb3IgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCBpcyBnb2luZyBvbiBoZXJlXG4vLyBJJ2QgbGlrZSB0byBwcm92aWRlIFxuXG5jb25zdCBjb21waWxlTmV3TW9kaWZpY2F0b3JGdW5jdGlvbkJvZHkgPSBmdW5jdGlvbiAoIEZ1bmN0aW9uTmFtZTogc3RyaW5nLCBhc0NsYXNzID0gZmFsc2UgKSB7XG5cblx0Y29uc3QgZHQgPSBgJHtEYXRlLm5vdygpfV8ke2Ake01hdGgucmFuZG9tKCl9YC5zcGxpdCggJy4nIClbIDEgXX1gO1xuXG5cdGNvbnN0IG1vZFN0cmluZyA9IGFzQ2xhc3MgP1xuXG5cdFx0YGNsYXNzICR7RnVuY3Rpb25OYW1lfSBleHRlbmRzIENvbnN0cnVjdEhhbmRsZXJfJHtkdH0ge1xuXHRcdFx0Y29uc3RydWN0b3IoLi4uYXJncykge1xuXHRcdFx0XHRjb25zdCBhbnN3ZXIgPSBzdXBlciguLi5hcmdzKTtcblx0XHRcdFx0cmV0dXJuIENyZWF0aW9uSGFuZGxlcl8ke2R0fS5jYWxsKHRoaXMsIGFuc3dlcik7XG5cdFx0XHR9XG5cdFx0fWBcblxuXHRcdDpcblxuXHRcdGBjb25zdCAke0Z1bmN0aW9uTmFtZX0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuXHRcdFx0Y29uc3QgbmV3YWJsZSA9IE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKCBDb25zdHJ1Y3RIYW5kbGVyXyR7ZHR9LCAncHJvdG90eXBlJyApO1xuXHRcdFx0bGV0IGFuc3dlcjtcblx0XHRcdGlmICggIW5ld2FibGUgKSB7XG5cdFx0XHRcdGFuc3dlciA9IENvbnN0cnVjdEhhbmRsZXJfJHtkdH0uY2FsbCggdGhpcywgLi4uYXJncyApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgX3Byb3RvID0gQ29uc3RydWN0SGFuZGxlcl8ke2R0fS5wcm90b3R5cGU7XG5cdFx0XHRcdENvbnN0cnVjdEhhbmRsZXJfJHtkdH0ucHJvdG90eXBlID0gdGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG5cdFx0XHRcdGFuc3dlciA9IG5ldyBDb25zdHJ1Y3RIYW5kbGVyXyR7ZHR9KCAuLi5hcmdzICk7XG5cdFx0XHRcdENvbnN0cnVjdEhhbmRsZXJfJHtkdH0ucHJvdG90eXBlID0gX3Byb3RvO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIENyZWF0aW9uSGFuZGxlcl8ke2R0fS5jYWxsKCB0aGlzLCBhbnN3ZXIgKTtcblx0XHR9O2A7XG5cblx0cmV0dXJuIG5ldyBGdW5jdGlvbiggYENvbnN0cnVjdEhhbmRsZXJfJHtkdH1gLCBgQ3JlYXRpb25IYW5kbGVyXyR7ZHR9YCwgJ1N5bWJvbENvbnN0cnVjdG9yTmFtZScsXG5cdFx0YHJldHVybiBmdW5jdGlvbiAoKSB7XG5cblx0XHRcdCR7bW9kU3RyaW5nfVxuXG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoJHtGdW5jdGlvbk5hbWV9LCBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsIHtcblx0XHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0XHRyZXR1cm4gbmV3IFN0cmluZyggJyR7RnVuY3Rpb25OYW1lfScgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdHJldHVybiAke0Z1bmN0aW9uTmFtZX07XG5cblx0XHR9O1xuXHRgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keTtcblxuKi9cbiJdfQ==
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9jb21waWxlTmV3TW9kaWZpY2F0b3JGdW5jdGlvbkJvZHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUViLHlDQUFzQztBQStDdEMsTUFBTSxtQkFBbUIsR0FBRyxDQUMzQixnQkFBdUMsRUFDdkMsZUFBZ0MsRUFDL0IsRUFBRTtJQUNILE1BQU0sTUFBTSxHQUFHLEtBQU0sU0FBUSxnQkFBZ0I7UUFFNUMsWUFBYyxHQUFHLElBQWU7WUFDL0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFFLEdBQUcsSUFBSSxDQUFFLENBQUM7WUFFaEMsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FDMUMsSUFBSSxFQUNKLE1BQU0sQ0FDTixDQUFDO1lBQ0YsTUFBTSxVQUFVLEdBQUcsY0FBd0IsQ0FBQztZQUM1QyxPQUFPLFVBQVUsQ0FBQztRQUNuQixDQUFDO0tBQ0QsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxDQUM5QixnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDL0IsRUFBRTtJQUNILE1BQU0sT0FBTyxHQUFHLElBQUEsU0FBRyxFQUNsQixnQkFBZ0IsRUFDaEIsV0FBVyxDQUNYO1FBQ0EsSUFBQSxTQUFHLEVBQ0YsZ0JBQWdCLENBQUMsU0FBUyxFQUMxQixhQUFhLENBQ2I7UUFDRCxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksZ0JBQWdCLENBQUMsQ0FBQztJQUU5RCxNQUFNLFVBQVUsR0FBRyxVQUF5QixHQUFHLElBQWU7UUFDN0QsSUFBSSxNQUFNLENBQUM7UUFJWCxJQUFLLENBQUMsT0FBTyxFQUFHLENBQUM7WUFDaEIsTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FDN0IsSUFBSSxFQUNKLEdBQUcsSUFBSSxDQUNQLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNQLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztZQUcxQyxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDeEQsTUFBTSxHQUFHLElBQUssZ0JBQWtFLENBQUUsR0FBRyxJQUFJLENBQUUsQ0FBQztZQUM1RixnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUNsQyxJQUFJLEVBQ0osTUFBTSxDQUNOLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUMsQ0FBQztJQUNGLE9BQU8sVUFBVSxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUlGLE1BQU0saUNBQWlDLEdBQUcsVUFBVyxZQUFvQixFQUFFLE9BQU8sR0FBRyxLQUFLO0lBQ3pGLE1BQU0sV0FBVyxHQUFHLFVBQ25CLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxxQkFBNkI7UUFFN0IsTUFBTSxXQUFXLEdBQUc7WUFDbkIsSUFBSSxnQkFBa0MsQ0FBQztZQUN2QyxJQUFLLE9BQU8sRUFBRyxDQUFDO2dCQUNmLGdCQUFnQixHQUFHLG1CQUFtQixDQUNyQyxnQkFBb0QsRUFDcEQsZUFBZSxDQUNmLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBSVAsZ0JBQWdCLEdBQUcsc0JBQXNCLENBQ3hDLGdCQUFnQixFQUNoQixlQUFlLENBQ2dCLENBQUM7WUFDbEMsQ0FBQztZQUNELGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7WUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FDcEIsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFDdEMsTUFBTSxFQUNOO2dCQUNDLEtBQUssRUFBTSxZQUFZO2dCQUN2QixRQUFRLEVBQUcsS0FBSzthQUNoQixDQUNELENBQUM7WUFDRixNQUFNLENBQUMsY0FBYyxDQUNwQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCO2dCQUNDLEdBQUc7b0JBRUYsT0FBTyxZQUFZLENBQUM7Z0JBQ3JCLENBQUM7YUFDRCxDQUNELENBQUM7WUFJRixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQztZQUNoQyxPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsQ0FBQztRQUNGLE9BQU8sV0FBVyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztJQUNGLE9BQU8sV0FBVyxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQUVGLGtCQUFlLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuLypcblxuLy8gaXQgaXMgbm90IHRoYXQgZWFzeVxuLy8gY29uc3RydWN0b3IgbmFtZSBkaWFwcGVhcnMgd2hlbiB5b3UgbG9vayBvbiAndGhpcydcbi8vIHVzaW5nIENocm9tZSBEZXYgdG9vbHMgZGVidWdnZXIgZm9yIGV4YW1wbGVcbi8vIGFkZGluZyAnZGVidWdnZXI7JyBrZXl3b3JkIG5leHQgbGluZSB0byBcbi8vICdjb25zdCBhbnN3ZXIgPSAnIHNlZSBleGFtcGxlIGRvd24gYmVsb3dcblxuLy8gdGhvdWdodCBmb3IgY29uc29sZS5sb2cgaXQgaXMgdGhlcmVcblxuLy8gQWxzbywgYXMgaXQgaXMgd3JpdHRlbiBoZXJlXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9GdW5jdGlvbi9uYW1lXG5cbi8vIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBtaWdodCBiZSBvYmZ1c2NhdGVkIGR1cmluZyBidW5kbGluZ1xuLy8gdGhlcmVmb3JlIGl0IHNlZW1zIHRvIGJlIG1vcmUgY29ycmVjdCB0byBpbXBsZW1lbnQgdXNpbmcgJ25ldyBGdW5jdGlvbidcblxuLy8gdGhlcmVmb3JlIGNvbnNpZGVyaW5nIHdlIGhhdmUgb3BlbiBidWcgbm93OlxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTM1MDQwNFxuLy8gcmVsYXRlZCB0byB0aGUgbGlua3MgYmVsb3dcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3dlbnRvdXQvNWRjZGQzNGY5MjY0NjBkODljOGMxNTUyZDFiYmMzZDdcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0Z1bmN0aW9uL25hbWVcblxuLy8gd2Ugd2lsbCB1c2UgbmV4dCBzb2x1dGlvbiBhcyB3b3JraW5nIGNvZGVcbi8vIGJlY2F1c2UgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIGtlcHQgT0tcbi8vIGp1c3QgdGhlIGJ1ZyBpcyBmb3IgQ2hyb21lIERldiBUb29sc1xuXG4vLyBhbmQgYXMgcHJlbGltaW5hcnkgY29tcGlsZWQgZnVuY3Rpb25zIHNvbHV0aW9uIHdvcmtzIGZhc3RlclxuLy8gYW5kIGRvZXMgbm90IHJlcXVpcmUgbmV3IGNvZGUgY29tcGlsYXRpb25cbi8vIHdlIHdpbGwga2VlcCBpdCBmdXJ0aGVyXG5cbiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0SGFuZGxlciBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQodGhpczogb2JqZWN0LCAuLi5hcmdzOiB1bmtub3duW10pOiB1bmtub3duO1xuXHRwcm90b3R5cGU6IG9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFzc0NvbnN0cnVjdEhhbmRsZXIgZXh0ZW5kcyBOZXdhYmxlRnVuY3Rpb24ge1xuXHRuZXcgKC4uLmFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcblx0cHJvdG90eXBlOiBvYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRpb25IYW5kbGVyIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdCh0aGlzOiBvYmplY3QsIGFuc3dlcjogdW5rbm93bik6IHVua25vd247XG59XG5cbmNvbnN0IGdldENsYXNzQ29uc3RydWN0b3IgPSAoXG5cdENvbnN0cnVjdEhhbmRsZXI6IENsYXNzQ29uc3RydWN0SGFuZGxlcixcblx0Q3JlYXRpb25IYW5kbGVyOiBDcmVhdGlvbkhhbmRsZXIsXG4pID0+IHtcblx0Y29uc3QgcmVzdWx0ID0gY2xhc3MgZXh0ZW5kcyBDb25zdHJ1Y3RIYW5kbGVyIHtcblx0XHQvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc3RydWN0b3Itc3VwZXJcblx0XHRjb25zdHJ1Y3RvciAoIC4uLmFyZ3M6IHVua25vd25bXSApIHtcblx0XHRcdGNvbnN0IGFuc3dlciA9IHN1cGVyKCAuLi5hcmdzICk7XG5cdFx0XHQvLyBkZWJ1Z2dlcjtcblx0XHRcdGNvbnN0IGNyZWF0aW9uUmVzdWx0ID0gQ3JlYXRpb25IYW5kbGVyLmNhbGwoXG5cdFx0XHRcdHRoaXMsXG5cdFx0XHRcdGFuc3dlciBcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBjYXN0UmVzdWx0ID0gY3JlYXRpb25SZXN1bHQgYXMgb2JqZWN0O1xuXHRcdFx0cmV0dXJuIGNhc3RSZXN1bHQ7XG5cdFx0fVxuXHR9O1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgZ2V0RnVuY3Rpb25Db25zdHJ1Y3RvciA9IChcblx0Q29uc3RydWN0SGFuZGxlcjogQ29uc3RydWN0SGFuZGxlcixcblx0Q3JlYXRpb25IYW5kbGVyOiBDcmVhdGlvbkhhbmRsZXIsXG4pID0+IHtcblx0Y29uc3QgbmV3YWJsZSA9IGhvcChcblx0XHRDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdCdwcm90b3R5cGUnIFxuXHQpICYmXG5cdFx0aG9wKFxuXHRcdFx0Q29uc3RydWN0SGFuZGxlci5wcm90b3R5cGUsXG5cdFx0XHQnY29uc3RydWN0b3InIFxuXHRcdCkgJiZcblx0XHQoQ29uc3RydWN0SGFuZGxlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPT0gQ29uc3RydWN0SGFuZGxlcik7XG5cblx0Y29uc3QgZnVuY1Jlc3VsdCA9IGZ1bmN0aW9uICggdGhpczogb2JqZWN0LCAuLi5hcmdzOiB1bmtub3duW10gKSB7XG5cdFx0bGV0IGFuc3dlcjtcblx0XHQvLyBpZiAoIW5ldy50YXJnZXQpIHtcblx0XHQvLyBcdGRlYnVnZ2VyO1xuXHRcdC8vIH1cblx0XHRpZiAoICFuZXdhYmxlICkge1xuXHRcdFx0YW5zd2VyID0gQ29uc3RydWN0SGFuZGxlci5jYWxsKFxuXHRcdFx0XHR0aGlzLFxuXHRcdFx0XHQuLi5hcmdzIFxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgX3Byb3RvID0gQ29uc3RydWN0SGFuZGxlci5wcm90b3R5cGU7XG5cdFx0XHQvLyAhISEgaXQgTVVTVCBiZSBzdHJpY3QgcmVwbGFjZW1lbnQgISEhXG5cdFx0XHQvLyAhISEgdGhpcyBpcyB0aGUgb25seSB3YXkgdG8ga2VlcCBQcm90b3R5cGUgQ2hhaW4gY29ycmVjdCAhISFcblx0XHRcdENvbnN0cnVjdEhhbmRsZXIucHJvdG90eXBlID0gdGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG5cdFx0XHRhbnN3ZXIgPSBuZXcgKENvbnN0cnVjdEhhbmRsZXIgYXMgdW5rbm93biBhcyBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gb2JqZWN0KSggLi4uYXJncyApO1xuXHRcdFx0Q29uc3RydWN0SGFuZGxlci5wcm90b3R5cGUgPSBfcHJvdG87XG5cdFx0fVxuXHRcdGNvbnN0IHJlc3VsdCA9IENyZWF0aW9uSGFuZGxlci5jYWxsKFxuXHRcdFx0dGhpcyxcblx0XHRcdGFuc3dlciBcblx0XHQpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH07XG5cdHJldHVybiBmdW5jUmVzdWx0O1xufTtcblxudHlwZSBNb2RpZmljYXRpb25Cb2R5ID0gbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IG9iamVjdDtcblxuY29uc3QgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5ID0gZnVuY3Rpb24gKCBGdW5jdGlvbk5hbWU6IHN0cmluZywgYXNDbGFzcyA9IGZhbHNlICkge1xuXHRjb25zdCBvdXRlclJlc3VsdCA9IGZ1bmN0aW9uIChcblx0XHRDb25zdHJ1Y3RIYW5kbGVyOiBDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdENyZWF0aW9uSGFuZGxlcjogQ3JlYXRpb25IYW5kbGVyLFxuXHRcdFN5bWJvbENvbnN0cnVjdG9yTmFtZTogc3ltYm9sXG5cdCk6ICgpID0+IE1vZGlmaWNhdGlvbkJvZHkge1xuXHRcdGNvbnN0IGlubmVyUmVzdWx0ID0gZnVuY3Rpb24gKCk6IE1vZGlmaWNhdGlvbkJvZHkge1xuXHRcdFx0bGV0IE1vZGlmaWNhdGlvbkJvZHk6IE1vZGlmaWNhdGlvbkJvZHk7XG5cdFx0XHRpZiAoIGFzQ2xhc3MgKSB7XG5cdFx0XHRcdE1vZGlmaWNhdGlvbkJvZHkgPSBnZXRDbGFzc0NvbnN0cnVjdG9yKFxuXHRcdFx0XHRcdENvbnN0cnVjdEhhbmRsZXIgYXMgdW5rbm93biBhcyBDbGFzc0NvbnN0cnVjdEhhbmRsZXIsXG5cdFx0XHRcdFx0Q3JlYXRpb25IYW5kbGVyXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBjb25zdCBSZU5hbWVkQ29uc3RydWN0SGFuZGxlciA9IHt9IGFzIHVua25vd247XG5cdFx0XHRcdC8vIFJlTmFtZWRDb25zdHJ1Y3RIYW5kbGVyW0Z1bmN0aW9uTmFtZV0gPSBDb25zdHJ1Y3RIYW5kbGVyO1xuXHRcdFx0XHQvLyBNb2RpZmljYXRpb25Cb2R5ID0gZ2V0RnVuY3Rpb25Db25zdHJ1Y3RvcihSZU5hbWVkQ29uc3RydWN0SGFuZGxlcltGdW5jdGlvbk5hbWVdLCBDcmVhdGlvbkhhbmRsZXIpO1xuXHRcdFx0XHRNb2RpZmljYXRpb25Cb2R5ID0gZ2V0RnVuY3Rpb25Db25zdHJ1Y3Rvcihcblx0XHRcdFx0XHRDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdFx0XHRcdENyZWF0aW9uSGFuZGxlclxuXHRcdFx0XHQpIGFzIHVua25vd24gYXMgTW9kaWZpY2F0aW9uQm9keTtcblx0XHRcdH1cblx0XHRcdE1vZGlmaWNhdGlvbkJvZHkucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTW9kaWZpY2F0aW9uQm9keTtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcblx0XHRcdFx0TW9kaWZpY2F0aW9uQm9keS5wcm90b3R5cGUuY29uc3RydWN0b3IsXG5cdFx0XHRcdCduYW1lJyxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHZhbHVlICAgIDogRnVuY3Rpb25OYW1lLFxuXHRcdFx0XHRcdHdyaXRhYmxlIDogZmFsc2Vcblx0XHRcdFx0fSBcblx0XHRcdCk7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoXG5cdFx0XHRcdE1vZGlmaWNhdGlvbkJvZHksXG5cdFx0XHRcdFN5bWJvbENvbnN0cnVjdG9yTmFtZSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdFx0Ly8gcmV0dXJuIG5ldyBTdHJpbmcoIEZ1bmN0aW9uTmFtZSApO1xuXHRcdFx0XHRcdFx0cmV0dXJuIEZ1bmN0aW9uTmFtZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gXG5cdFx0XHQpO1xuXHRcdFx0Ly8gT2JqZWN0LmZyZWV6ZSggTW9kaWZpY2F0aW9uQm9keS5wcm90b3R5cGUuY29uc3RydWN0b3IgKTtcblx0XHRcdC8vIE9iamVjdC5mcmVlemUoIE1vZGlmaWNhdGlvbkJvZHkucHJvdG90eXBlICk7XG5cdFx0XHQvLyBPYmplY3QuZnJlZXplKCBNb2RpZmljYXRpb25Cb2R5ICk7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBNb2RpZmljYXRpb25Cb2R5O1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9O1xuXHRcdHJldHVybiBpbm5lclJlc3VsdDtcblx0fTtcblx0cmV0dXJuIG91dGVyUmVzdWx0O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5O1xuXG5cbi8qXG5cbi8vIGhvd2V2ZXIsIGZvciBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB3aGF0IGlzIGdvaW5nIG9uIGhlcmVcbi8vIEknZCBsaWtlIHRvIHByb3ZpZGUgXG5cbmNvbnN0IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSA9IGZ1bmN0aW9uICggRnVuY3Rpb25OYW1lOiBzdHJpbmcsIGFzQ2xhc3MgPSBmYWxzZSApIHtcblxuXHRjb25zdCBkdCA9IGAke0RhdGUubm93KCl9XyR7YCR7TWF0aC5yYW5kb20oKX1gLnNwbGl0KCAnLicgKVsgMSBdfWA7XG5cblx0Y29uc3QgbW9kU3RyaW5nID0gYXNDbGFzcyA/XG5cblx0XHRgY2xhc3MgJHtGdW5jdGlvbk5hbWV9IGV4dGVuZHMgQ29uc3RydWN0SGFuZGxlcl8ke2R0fSB7XG5cdFx0XHRjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG5cdFx0XHRcdGNvbnN0IGFuc3dlciA9IHN1cGVyKC4uLmFyZ3MpO1xuXHRcdFx0XHRyZXR1cm4gQ3JlYXRpb25IYW5kbGVyXyR7ZHR9LmNhbGwodGhpcywgYW5zd2VyKTtcblx0XHRcdH1cblx0XHR9YFxuXG5cdFx0OlxuXG5cdFx0YGNvbnN0ICR7RnVuY3Rpb25OYW1lfSA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG5cdFx0XHRjb25zdCBuZXdhYmxlID0gT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoIENvbnN0cnVjdEhhbmRsZXJfJHtkdH0sICdwcm90b3R5cGUnICk7XG5cdFx0XHRsZXQgYW5zd2VyO1xuXHRcdFx0aWYgKCAhbmV3YWJsZSApIHtcblx0XHRcdFx0YW5zd2VyID0gQ29uc3RydWN0SGFuZGxlcl8ke2R0fS5jYWxsKCB0aGlzLCAuLi5hcmdzICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBfcHJvdG8gPSBDb25zdHJ1Y3RIYW5kbGVyXyR7ZHR9LnByb3RvdHlwZTtcblx0XHRcdFx0Q29uc3RydWN0SGFuZGxlcl8ke2R0fS5wcm90b3R5cGUgPSB0aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtcblx0XHRcdFx0YW5zd2VyID0gbmV3IENvbnN0cnVjdEhhbmRsZXJfJHtkdH0oIC4uLmFyZ3MgKTtcblx0XHRcdFx0Q29uc3RydWN0SGFuZGxlcl8ke2R0fS5wcm90b3R5cGUgPSBfcHJvdG87XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gQ3JlYXRpb25IYW5kbGVyXyR7ZHR9LmNhbGwoIHRoaXMsIGFuc3dlciApO1xuXHRcdH07YDtcblxuXHRyZXR1cm4gbmV3IEZ1bmN0aW9uKCBgQ29uc3RydWN0SGFuZGxlcl8ke2R0fWAsIGBDcmVhdGlvbkhhbmRsZXJfJHtkdH1gLCAnU3ltYm9sQ29uc3RydWN0b3JOYW1lJyxcblx0XHRgcmV0dXJuIGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0JHttb2RTdHJpbmd9XG5cblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgke0Z1bmN0aW9uTmFtZX0sIFN5bWJvbENvbnN0cnVjdG9yTmFtZSwge1xuXHRcdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRcdHJldHVybiBuZXcgU3RyaW5nKCAnJHtGdW5jdGlvbk5hbWV9JyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuICR7RnVuY3Rpb25OYW1lfTtcblxuXHRcdH07XG5cdGApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5O1xuXG4qL1xuIl19
|
package/build/api/types/index.js
CHANGED
|
@@ -1,17 +1,53 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.lookup = exports.define = void 0;
|
|
4
40
|
const hop_1 = require("../../utils/hop");
|
|
5
41
|
const constants_1 = require("../../constants");
|
|
6
42
|
const { odp, SymbolParentType, SymbolConstructorName, SymbolConfig, TYPE_TITLE_PREFIX, MNEMOSYNE, } = constants_1.constants;
|
|
7
43
|
const errors_1 = require("../../descriptors/errors");
|
|
8
|
-
const Mnemosyne_1 = require("./Mnemosyne");
|
|
44
|
+
const Mnemosyne_1 = __importDefault(require("./Mnemosyne"));
|
|
9
45
|
const { getDefaultPrototype } = Mnemosyne_1.default;
|
|
10
46
|
const { ALREADY_DECLARED, WRONG_TYPE_DEFINITION, TYPENAME_MUST_BE_A_STRING, HANDLER_MUST_BE_A_FUNCTION, } = errors_1.ErrorsTypes;
|
|
11
|
-
const hooksApi = require("../hooks");
|
|
47
|
+
const hooksApi = __importStar(require("../hooks"));
|
|
12
48
|
const TypeProxy_1 = require("./TypeProxy");
|
|
13
|
-
const compileNewModificatorFunctionBody_1 = require("./compileNewModificatorFunctionBody");
|
|
14
|
-
const utils_1 = require("../utils");
|
|
49
|
+
const compileNewModificatorFunctionBody_1 = __importDefault(require("./compileNewModificatorFunctionBody"));
|
|
50
|
+
const utils_1 = __importStar(require("../utils"));
|
|
15
51
|
const { getTypeChecker, getTypeSplitPath, checkTypeName, isClass, } = utils_1.default;
|
|
16
52
|
const errors_2 = require("../errors");
|
|
17
53
|
const TypeDescriptor = function (defineOrigin, types, TypeName, constructHandler, proto, config) {
|
|
@@ -48,14 +84,17 @@ const TypeDescriptor = function (defineOrigin, types, TypeName, constructHandler
|
|
|
48
84
|
});
|
|
49
85
|
const Uranus = isSubType ? undefined : proto;
|
|
50
86
|
types.set(TypeName, new TypeProxy_1.TypeProxy(type, Uranus));
|
|
51
|
-
|
|
87
|
+
const result = types.get(TypeName);
|
|
88
|
+
return result;
|
|
52
89
|
};
|
|
53
90
|
Object.assign(TypeDescriptor.prototype, hooksApi);
|
|
54
91
|
TypeDescriptor.prototype.define = function (TypeOrTypeName, constructHandlerOrConfig, config) {
|
|
55
|
-
|
|
92
|
+
const result = exports.define.call(exports.define, this.subtypes, TypeOrTypeName, constructHandlerOrConfig, config);
|
|
93
|
+
return result;
|
|
56
94
|
};
|
|
57
95
|
TypeDescriptor.prototype.lookup = function (TypeNestedPath) {
|
|
58
|
-
|
|
96
|
+
const result = exports.lookup.call(this.subtypes, TypeNestedPath);
|
|
97
|
+
return result;
|
|
59
98
|
};
|
|
60
99
|
odp(TypeDescriptor.prototype, Symbol.hasInstance, {
|
|
61
100
|
get() {
|
|
@@ -89,8 +128,9 @@ const checkDuplicate = function (target, name) {
|
|
|
89
128
|
};
|
|
90
129
|
const isLazyGetter = function (handler) {
|
|
91
130
|
try {
|
|
92
|
-
const
|
|
93
|
-
|
|
131
|
+
const lazyResult = handler();
|
|
132
|
+
const result = lazyResult instanceof Function && lazyResult.name.length > 0;
|
|
133
|
+
return result;
|
|
94
134
|
}
|
|
95
135
|
catch (_a) {
|
|
96
136
|
return false;
|
|
@@ -109,7 +149,8 @@ const createFromDirectHandler = function (defineOrigin, target, name, handler, c
|
|
|
109
149
|
config.asClass = asClass;
|
|
110
150
|
const proto = ((0, hop_1.hop)(handler, 'prototype') &&
|
|
111
151
|
(typeof handler.prototype === 'object')) ? handler.prototype : getDefaultPrototype();
|
|
112
|
-
|
|
152
|
+
const result = new TypeDescriptor(defineOrigin, target, name, makeConstructHandler, proto, config);
|
|
153
|
+
return result;
|
|
113
154
|
};
|
|
114
155
|
const createFromLazyGetter = function (defineOrigin, target, name, getter, config) {
|
|
115
156
|
const type = getter();
|
|
@@ -137,7 +178,8 @@ const createFromLazyGetter = function (defineOrigin, target, name, getter, confi
|
|
|
137
178
|
};
|
|
138
179
|
config = Object.assign({}, config);
|
|
139
180
|
config.asClass = asClass;
|
|
140
|
-
|
|
181
|
+
const result = new TypeDescriptor(defineOrigin, target, TypeName, makeConstructHandler, type.prototype, config);
|
|
182
|
+
return result;
|
|
141
183
|
};
|
|
142
184
|
const define = function (subtypes, TypeOrTypeName, constructHandlerOrConfig, config) {
|
|
143
185
|
if (!config || (typeof config !== 'object' && typeof config !== 'function')) {
|
|
@@ -198,7 +240,8 @@ const lookup = function (TypeNestedPath) {
|
|
|
198
240
|
if (!type) {
|
|
199
241
|
return undefined;
|
|
200
242
|
}
|
|
201
|
-
|
|
243
|
+
const result = exports.lookup.call(type.subtypes, NextNestedPath);
|
|
244
|
+
return result;
|
|
202
245
|
};
|
|
203
246
|
exports.lookup = lookup;
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBeUNiLHlDQUFzQztBQUV0QywrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLFlBQVksRUFFWixpQkFBaUIsRUFDakIsU0FBUyxHQUVULEdBQUcscUJBQVMsQ0FBQztBQUVkLHFEQUF1RDtBQUd2RCwyQ0FBcUM7QUFDckMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsbUJBQVUsQ0FBQztBQUUzQyxNQUFNLEVBQ0wsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsMEJBQTBCLEdBQzFCLEdBQUcsb0JBQVcsQ0FBQztBQUtoQixxQ0FBcUM7QUFDckMsMkNBQXdDO0FBRXhDLDJGQUEwRztBQUUxRyxvQ0FBdUQ7QUFDdkQsTUFBTSxFQUNMLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLE9BQU8sR0FDUCxHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUdtQjtBQU9uQixNQUFNLGNBQWMsR0FBRyxVQUV0QixZQUEwQixFQUMxQixLQUFlLEVBQ2YsUUFBZ0IsRUFDaEIsZ0JBQTZDLEVBQzdDLEtBQW1DLEVBQ25DLE1BQW9DO0lBS3BDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBRSxnQkFBZ0IsQ0FBRSxJQUFJLElBQUksQ0FBQztJQUVyRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTVDLE1BQU0sVUFBVSxHQUFHLFNBQVM7UUFDM0IsQ0FBQyxDQUFFLFVBQXNDLENBQUMsVUFBb0I7UUFDOUQsQ0FBQyxDQUFDLEtBQUssQ0FBRSxTQUFTLENBQUUsQ0FBQztJQUV0QixJQUFJLEtBQUssQ0FBQyxHQUFHLENB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QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBMEIsQ0FBQztJQUNyRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1gsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sY0FBTSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLFFBQStCLEVBQ3BDLGNBQWMsQ0FDWixDQUFDO0FBRUgsQ0FBQyxDQUFDO0FBOUJXLFFBQUEsTUFBTSxVQThCakIiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIFBpcGVsaW5lIChoaWdoLWxldmVsIGZsb3cpOlxuICpcbiAqICAgZGVmaW5lKFR5cGVOYW1lLCBjdG9yKSAg4oaSICBuZXcgVHlwZURlc2NyaXB0b3IoKSAg4oaSICBuZXcgVHlwZVByb3h5KClcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pa8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEluc3RhbmNlQ3JlYXRvcih0eXBlLCBwYXJlbnQsIGFyZ3MpXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKWvFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKHNlbGYpXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKWvFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yLmNhbGwocGFyZW50LCBNb2RpZmljYXRvclR5cGUsIHByb3RvLCBfYWRkUHJvcHMpXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKWvFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIgY29uc3RydWN0b3IgcnVucyAobmV3IE1vZGlmaWNhdG9yVHlwZSguLi5hcmdzKSlcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pa8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdFByb2Nlc3NpbmcoKSDihpIgaW52b2tlUG9zdEhvb2tzKClcbiAqL1xuXG5pbXBvcnQge1xuXHRfSW50ZXJuYWxfVENfLFxuXHRUeXBlRGVzY3JpcHRvckluc3RhbmNlLFxuXHRUeXBlQ2xhc3MsXG5cdFR5cGVEZWYsXG5cdENvbGxlY3Rpb25EZWYsXG5cdGNvbnN0cnVjdG9yT3B0aW9ucyxcblx0VHlwZUFic29yYmVyLFxuXHRNb2RpZmljYXRpb25Db25zdHJ1Y3RvckZhY3RvcnksXG5cdE1uZW1vbmljYUNvbnN0cnVjdG9yRmFjdG9yeSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG4vLyBMYXp5IGdldHRlcjogYSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCwgcmV0dXJucyB0aGUgYWN0dWFsIGNvbnN0cnVjdG9yIGZ1bmN0aW9uLlxuLy8gVXNlZCB3aGVuIGRlZmluZSgpIHJlY2VpdmVzIGFuIGFub255bW91cyBmdW5jdGlvbiB3cmFwcGluZyB0aGUgcmVhbCBjb25zdHJ1Y3Rvci5cbmludGVyZmFjZSBMYXp5VHlwZUdldHRlciBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQoKTogQ29uc3RydWN0SGFuZGxlcjtcbn1cblxuaW1wb3J0IHsgaG9wIH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9wJztcblxuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xQYXJlbnRUeXBlLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsXG5cdFN5bWJvbENvbmZpZyxcblxuXHRUWVBFX1RJVExFX1BSRUZJWCxcblx0TU5FTU9TWU5FLFxuXG59ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG4vLyBpbXBvcnQgeyBkZXNjcmlwdG9ycyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzJztcblxuaW1wb3J0IG1uZW1vc3luZXMgZnJvbSAnLi9NbmVtb3N5bmUnO1xuY29uc3QgeyBnZXREZWZhdWx0UHJvdG90eXBlIH0gPSBtbmVtb3N5bmVzO1xuXG5jb25zdCB7XG5cdEFMUkVBRFlfREVDTEFSRUQsXG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcblx0VFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORyxcblx0SEFORExFUl9NVVNUX0JFX0FfRlVOQ1RJT04sXG59ID0gRXJyb3JzVHlwZXM7XG5cbi8vIGludm9rZUhvb2tcbi8vIHJlZ2lzdGVySG9va1xuLy8gcmVnaXN0ZXJGbG93Q2hlY2tlclxuaW1wb3J0ICogYXMgaG9va3NBcGkgZnJvbSAnLi4vaG9va3MnO1xuaW1wb3J0IHsgVHlwZVByb3h5IH0gZnJvbSAnLi9UeXBlUHJveHknO1xuXG5pbXBvcnQgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5LCB7IENvbnN0cnVjdEhhbmRsZXIgfSBmcm9tICcuL2NvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSc7XG5cbmltcG9ydCBUeXBlc1V0aWxzLCB7IENyZWF0aW9uSGFuZGxlciB9IGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Z2V0VHlwZUNoZWNrZXIsXG5cdGdldFR5cGVTcGxpdFBhdGgsXG5cdGNoZWNrVHlwZU5hbWUsXG5cdGlzQ2xhc3MsXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHtcblx0Z2V0U3RhY2ssXG5cdFN0YWNrYWJsZUluc3RhbmNlLFxufSBmcm9tICcuLi9lcnJvcnMnO1xuXG5leHBvcnQgdHlwZSBUeXBlc01hcCA9IE1hcDxzdHJpbmcsIG9iamVjdD4gJiB7XG5cdFtTeW1ib2xQYXJlbnRUeXBlXT86IFR5cGVEZWY7XG5cdFtNTkVNT1NZTkVdPzogQ29sbGVjdGlvbkRlZjtcbn07XG5cbmNvbnN0IFR5cGVEZXNjcmlwdG9yID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlRGVzY3JpcHRvckluc3RhbmNlLFxuXHRkZWZpbmVPcmlnaW46IFR5cGVBYnNvcmJlcixcblx0dHlwZXM6IFR5cGVzTWFwLFxuXHRUeXBlTmFtZTogc3RyaW5nLFxuXHRjb25zdHJ1Y3RIYW5kbGVyOiBNbmVtb25pY2FDb25zdHJ1Y3RvckZhY3RvcnksXG5cdHByb3RvOiB7IFtpbmRleDogc3RyaW5nXTogdW5rbm93biB9LFxuXHRjb25maWc6IHsgW2luZGV4OiBzdHJpbmddOiB1bmtub3duIH0sXG4pIHtcblxuXHQvLyBoZXJlIFwidHlwZXNcIiByZWZlcnMgdG8gc3VidHlwZXMgb2YgdHlwZSBvciBjb2xsZWN0aW9uIG9iamVjdCB7fVxuXG5cdGNvbnN0IHBhcmVudFR5cGUgPSB0eXBlc1sgU3ltYm9sUGFyZW50VHlwZSBdIHx8IG51bGw7XG5cblx0Y29uc3QgaXNTdWJUeXBlID0gcGFyZW50VHlwZSA/IHRydWUgOiBmYWxzZTtcblxuXHRjb25zdCBjb2xsZWN0aW9uID0gaXNTdWJUeXBlXG5cdFx0PyAocGFyZW50VHlwZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikuY29sbGVjdGlvbiBhcyBvYmplY3Rcblx0XHQ6IHR5cGVzWyBNTkVNT1NZTkUgXTtcblxuXHRpZiAodHlwZXMuaGFzKFR5cGVOYW1lKSkge1xuXHRcdHRocm93IG5ldyBBTFJFQURZX0RFQ0xBUkVEKFR5cGVOYW1lKTtcblx0fVxuXG5cdC8vIGNvbnN0IHN1YnR5cGVzID0gZGVzY3JpcHRvcnMuY3JlYXRlVHlwZXNDb2xsZWN0aW9uKCk7XG5cdGNvbnN0IHN1YnR5cGVzID0gbmV3IE1hcDxzdHJpbmcsIG9iamVjdD4oKTtcblxuXHRjb25zdCB0aXRsZSA9IGAke1RZUEVfVElUTEVfUFJFRklYfSR7VHlwZU5hbWV9YDtcblxuXHRjb25maWcgPSBPYmplY3QuYXNzaWduKFxuXHRcdHt9LFxuXHRcdChjb2xsZWN0aW9uIGFzIFJlY29yZDxzeW1ib2wsIHVua25vd24+KVsgU3ltYm9sQ29uZmlnIF0sXG5cdFx0Y29uZmlnXG5cdCk7XG5cblx0Y29uc3QgdHlwZSA9IE9iamVjdC5hc3NpZ24oXG5cdFx0dGhpcyxcblx0XHR7XG5cblx0XHRcdGdldCBjb25zdHJ1Y3RIYW5kbGVyICgpIHtcblx0XHRcdFx0cmV0dXJuIGNvbnN0cnVjdEhhbmRsZXI7XG5cdFx0XHR9LFxuXG5cblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0cHJvdG8sXG5cblx0XHRcdGlzU3ViVHlwZSxcblx0XHRcdHN1YnR5cGVzLFxuXHRcdFx0cGFyZW50VHlwZSxcblxuXHRcdFx0Y29sbGVjdGlvbixcblxuXHRcdFx0dGl0bGUsXG5cblx0XHRcdGNvbmZpZyxcblxuXHRcdFx0aG9va3MgOiBPYmplY3QuY3JlYXRlKG51bGwpXG5cblx0XHR9XG5cdCk7XG5cblx0Z2V0U3RhY2suY2FsbChcblx0XHR0aGlzIGFzIFN0YWNrYWJsZUluc3RhbmNlLFxuXHRcdGBEZWZpbml0aW9uIG9mIFsgJHtUeXBlTmFtZX0gXSBtYWRlIGF0OmAsXG5cdFx0W10sXG5cdFx0ZGVmaW5lT3JpZ2luXG5cdCk7XG5cblx0b2RwKFxuXHRcdHN1YnR5cGVzLFxuXHRcdFN5bWJvbFBhcmVudFR5cGUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiB0eXBlO1xuXHRcdFx0fVxuXHRcdH1cblx0KTtcblxuXHQvLyBjb25zdCBVcmFudXMgPSBpc1N1YlR5cGUgPyBPYmplY3QuY3JlYXRlKG51bGwpIDogcHJvdG87XG5cdGNvbnN0IFVyYW51cyA9IGlzU3ViVHlwZSA/IHVuZGVmaW5lZCA6IHByb3RvO1xuXHR0eXBlcy5zZXQoXG5cdFx0VHlwZU5hbWUsXG5cdFx0bmV3IFR5cGVQcm94eShcblx0XHRcdHR5cGUsXG5cdFx0XHRVcmFudXNcblx0XHQpXG5cdCk7XG5cblx0Ly8gdHlwZXMuc2V0KCBUeXBlTmFtZSwgbmV3IFR5cGVQcm94eSggdHlwZSApICk7XG5cblx0cmV0dXJuIHR5cGVzLmdldChUeXBlTmFtZSk7XG5cbn0gYXMgdW5rbm93biBhcyBfSW50ZXJuYWxfVENfPFR5cGVEZXNjcmlwdG9ySW5zdGFuY2U+O1xuXG5PYmplY3QuYXNzaWduKFxuXHRUeXBlRGVzY3JpcHRvci5wcm90b3R5cGUsXG5cdGhvb2tzQXBpXG4pO1xuXG5UeXBlRGVzY3JpcHRvci5wcm90b3R5cGUuZGVmaW5lID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlRGVzY3JpcHRvckluc3RhbmNlLFxuXHRUeXBlT3JUeXBlTmFtZTogc3RyaW5nIHwgQ2FsbGFibGVGdW5jdGlvbixcblx0Y29uc3RydWN0SGFuZGxlck9yQ29uZmlnPzogQ2FsbGFibGVGdW5jdGlvbiB8IG9iamVjdCxcblx0Y29uZmlnPzogb2JqZWN0XG4pIHtcblx0cmV0dXJuIGRlZmluZS5jYWxsKFxuXHRcdGRlZmluZSxcblx0XHR0aGlzLnN1YnR5cGVzIGFzIFR5cGVzTWFwLFxuXHRcdFR5cGVPclR5cGVOYW1lLFxuXHRcdGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZyxcblx0XHRjb25maWdcblx0KTtcbn07XG5cblR5cGVEZXNjcmlwdG9yLnByb3RvdHlwZS5sb29rdXAgPSBmdW5jdGlvbiAoXG5cdHRoaXM6IFR5cGVEZXNjcmlwdG9ySW5zdGFuY2UsXG5cdFR5cGVOZXN0ZWRQYXRoOiBzdHJpbmdcbikge1xuXHRyZXR1cm4gbG9va3VwLmNhbGwoXG50aGlzLnN1YnR5cGVzIGFzIFR5cGVzTWFwLFxuVHlwZU5lc3RlZFBhdGhcblx0KTtcbn07XG5cbm9kcChcblx0VHlwZURlc2NyaXB0b3IucHJvdG90eXBlLFxuXHRTeW1ib2wuaGFzSW5zdGFuY2UsIHtcblx0XHRnZXQgKHRoaXM6IFR5cGVEZXNjcmlwdG9ySW5zdGFuY2UpIHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGdldFR5cGVDaGVja2VyKHRoaXMuVHlwZU5hbWUpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdH1cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUEFUSCBSRVNPTFVUSU9OXG4vLyBSZXNvbHZlcyBhIGRvdC1zZXBhcmF0ZWQgcGF0aCB0byB0aGUgdGFyZ2V0IHR5cGVzIG1hcCBhbmRcbi8vIHRoZSBmaW5hbCB0eXBlIG5hbWUuIFJlY3Vyc2VzIGludG8gcGFyZW50IHN1YnR5cGVzIGZvclxuLy8gbmVzdGVkIHBhdGhzIChlLmcuICdQYXJlbnQuQ2hpbGQnIOKGkiBQYXJlbnQuc3VidHlwZXMgKyAnQ2hpbGQnKS5cbi8vIFJldHVybnMgdGhlIHBhcmVudCBUeXBlQ2xhc3Mgd2hlbiB0aGUgaGVhZCBzZWdtZW50IHJlc29sdmVzXG4vLyB0byBhbiBleGlzdGluZyB0eXBlIOKAlCBuZWVkZWQgZm9yIGxhenktZ2V0dGVyIHN1YnR5cGUgZGVmaW5pdGlvbi5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCByZXNvbHZlRGVmaW5pdGlvbkNvbnRleHQgPSBmdW5jdGlvbiAoXG5cdHN1YnR5cGVzOiBUeXBlc01hcCxcblx0cGF0aDogc3RyaW5nXG4pOiB7XG5cdFx0dGFyZ2V0OiBUeXBlc01hcDtcblx0XHRuYW1lOiBzdHJpbmc7XG5cdFx0cGFyZW50PzogVHlwZUNsYXNzO1xuXHR9IHtcblx0Y29uc3Qgc3BsaXQgPSBnZXRUeXBlU3BsaXRQYXRoKHBhdGgpO1xuXHRjb25zdCBbIGhlYWQsIC4uLnJlc3QgXSA9IHNwbGl0O1xuXHRjb25zdCBwYXJlbnQgPSBsb29rdXAuY2FsbChcblx0XHRzdWJ0eXBlcyxcblx0XHRoZWFkXG5cdCk7XG5cblx0aWYgKCFwYXJlbnQpIHtcblx0XHRpZiAocmVzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKGBwYXJlbnQgJHtoZWFkfSBkZWZpbml0aW9uIGlzIG5vdCB5ZXQgZXhpc3RzIWApO1xuXHRcdH1cblx0XHRjb25zdCBub1BhcmVudFJlc3VsdCA9IHsgdGFyZ2V0IDogc3VidHlwZXMsIG5hbWUgOiBoZWFkIH07XG5cdFx0cmV0dXJuIG5vUGFyZW50UmVzdWx0O1xuXHR9XG5cblx0aWYgKHJlc3QubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IG5lc3RlZFJlc3VsdCA9IHJlc29sdmVEZWZpbml0aW9uQ29udGV4dChcbnBhcmVudC5zdWJ0eXBlcyBhcyBUeXBlc01hcCxcbnJlc3Quam9pbignLicpXG5cdFx0KTtcblx0XHRyZXR1cm4gbmVzdGVkUmVzdWx0O1xuXHR9XG5cblx0Y29uc3QgcmVzb2x2ZWRSZXN1bHQgPSB7IHRhcmdldCA6IHN1YnR5cGVzLCBuYW1lIDogaGVhZCwgcGFyZW50IH07XG5cdHJldHVybiByZXNvbHZlZFJlc3VsdDtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRFVQTElDQVRFIEdVQVJEXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgY2hlY2tEdXBsaWNhdGUgPSBmdW5jdGlvbiAodGFyZ2V0OiBUeXBlc01hcCwgbmFtZTogc3RyaW5nKTogdm9pZCB7XG5cdGNvbnN0IGV4aXN0aW5nID0gbG9va3VwLmNhbGwoXG5cdFx0dGFyZ2V0LFxuXHRcdG5hbWVcblx0KTtcblx0aWYgKGV4aXN0aW5nKSB7XG5cdFx0dGhyb3cgbmV3IEFMUkVBRFlfREVDTEFSRUQobmFtZSk7XG5cdH1cbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTEFaWSBHRVRURVIgREVURUNUSU9OXG4vLyBBIGxhenkgZ2V0dGVyIGlzIGEgZnVuY3Rpb24gdGhhdCwgd2hlbiBjYWxsZWQsIHJldHVybnMgYVxuLy8gbmFtZWQgY29uc3RydWN0b3IuIFVzZWQgZm9yIGxhdGUtYm91bmQgdHlwZSBkZWZpbml0aW9ucy5cbi8vIElmIHRoZSBjYWxsIHRocm93cyBvciByZXR1cm5zIGEgbm9uLW5hbWVkIGZ1bmN0aW9uLCBpdCBpc1xuLy8gdHJlYXRlZCBhcyBhIGRpcmVjdCBoYW5kbGVyIGluc3RlYWQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgaXNMYXp5R2V0dGVyID0gZnVuY3Rpb24gKGhhbmRsZXI6IENvbnN0cnVjdEhhbmRsZXIgfCBMYXp5VHlwZUdldHRlcik6IGJvb2xlYW4ge1xuXHR0cnkge1xuXHRcdC8vIFByb2JlOiB0cnkgdG8gY2FsbCBhcyBhIGxhenkgZ2V0dGVyLiBJZiBpdCBzdWNjZWVkcyBhbmQgcmV0dXJucyBhIG5hbWVkXG5cdFx0Ly8gZnVuY3Rpb24sIGl0J3MgYSBsYXp5IGdldHRlci4gT3RoZXJ3aXNlICh0aHJvd3Mgb3IgcmV0dXJucyBub24tZnVuY3Rpb24pLFxuXHRcdC8vIGl0J3MgYSBkaXJlY3QgaGFuZGxlci4gVGhlIGNhc3QgaXMgdGhlIHByb2JlIOKAlCBydW50aW1lIGRlY2lkZXMgd2hpY2ggaXQgaXMuXG5cdFx0Y29uc3QgcmVzdWx0ID0gKGhhbmRsZXIgYXMgTGF6eVR5cGVHZXR0ZXIpKCk7XG5cdFx0cmV0dXJuIHJlc3VsdCBpbnN0YW5jZW9mIEZ1bmN0aW9uICYmIHJlc3VsdC5uYW1lLmxlbmd0aCA+IDA7XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT05TVFJVQ1RJT04gU1RSQVRFR0lFU1xuLy8gVHdvIGJyYW5jaGVzLCBzYW1lIHJldHVybiB0eXBlLCBubyByZWN1cnNpb24uXG4vLyBCb3RoIHJlY2VpdmUgdGhlIHJlc29sdmVkIGNvbnRleHQgYW5kIHJldHVybiBUeXBlRGVzY3JpcHRvci5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBjcmVhdGVGcm9tRGlyZWN0SGFuZGxlciA9IGZ1bmN0aW9uIChcblx0ZGVmaW5lT3JpZ2luOiBUeXBlQWJzb3JiZXIsXG5cdHRhcmdldDogVHlwZXNNYXAsXG5cdG5hbWU6IHN0cmluZyxcblx0aGFuZGxlcj86IENvbnN0cnVjdEhhbmRsZXIsXG5cdGNvbmZpZz86IGNvbnN0cnVjdG9yT3B0aW9uc1xuKSB7XG5cdGhhbmRsZXIgPSBoYW5kbGVyIHx8IGZ1bmN0aW9uICgpIHsgfTtcblx0Y29uc3QgYXNDbGFzcyA9IGlzQ2xhc3MoaGFuZGxlcik7XG5cdGNvbnN0IG1vZGlmaWNhdG9yQm9keSA9IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keShcblx0XHRuYW1lLFxuXHRcdGFzQ2xhc3Ncblx0KTtcblxuXHRjb25zdCBtYWtlQ29uc3RydWN0SGFuZGxlciA9IG1vZGlmaWNhdG9yQm9keShcblx0XHRoYW5kbGVyIGFzIENvbnN0cnVjdEhhbmRsZXIsXG5cdFx0Q3JlYXRpb25IYW5kbGVyLFxuXHRcdFN5bWJvbENvbnN0cnVjdG9yTmFtZVxuXHQpO1xuXG5cdGlmIChjb25maWcgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdGNvbmZpZyA9IHtcblx0XHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yIDogY29uZmlnIGFzIE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yRmFjdG9yeVxuXHRcdH07XG5cdH1cblxuXHRjb25maWchLmFzQ2xhc3MgPSBhc0NsYXNzO1xuXG5cdGNvbnN0IHByb3RvID0gKFxuXHRcdGhvcChcblx0XHRcdGhhbmRsZXIsXG5cdFx0XHQncHJvdG90eXBlJ1xuXHRcdCkgJiZcblx0XHQodHlwZW9mIGhhbmRsZXIucHJvdG90eXBlID09PSAnb2JqZWN0Jylcblx0KSA/IGhhbmRsZXIucHJvdG90eXBlIDogZ2V0RGVmYXVsdFByb3RvdHlwZSgpO1xuXG5cdHJldHVybiBuZXcgVHlwZURlc2NyaXB0b3IoXG5cdFx0ZGVmaW5lT3JpZ2luLFxuXHRcdHRhcmdldCxcblx0XHRuYW1lLFxuXHRcdG1ha2VDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdHByb3RvLFxuXHRcdGNvbmZpZ1xuXHQpIGFzIHVua25vd24gYXMgVHlwZUNsYXNzO1xufTtcblxuY29uc3QgY3JlYXRlRnJvbUxhenlHZXR0ZXIgPSBmdW5jdGlvbiAoXG5cdGRlZmluZU9yaWdpbjogVHlwZUFic29yYmVyLFxuXHR0YXJnZXQ6IFR5cGVzTWFwLFxuXHRuYW1lOiBzdHJpbmcsXG5cdGdldHRlcjogTGF6eVR5cGVHZXR0ZXIsXG5cdGNvbmZpZzogY29uc3RydWN0b3JPcHRpb25zXG4pIHtcblx0Y29uc3QgdHlwZSA9IGdldHRlcigpO1xuXG5cdGlmICh0eXBlb2YgdHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdHRocm93IG5ldyBIQU5ETEVSX01VU1RfQkVfQV9GVU5DVElPTjtcblx0fVxuXG5cdGNvbnN0IFR5cGVOYW1lID0gdHlwZS5uYW1lIHx8IG5hbWU7XG5cdGlmICghVHlwZU5hbWUpIHtcblx0XHR0aHJvdyBuZXcgVFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORztcblx0fVxuXG5cdGNvbnN0IGFzQ2xhc3MgPSBpc0NsYXNzKHR5cGUpO1xuXG5cdGNvbnN0IG1ha2VDb25zdHJ1Y3RIYW5kbGVyID0gKCkgPT4ge1xuXHRcdGNvbnN0IGNvbnN0cnVjdEhhbmRsZXIgPSBnZXR0ZXIoKTtcblx0XHRvZHAoXG5cdFx0XHRjb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdFx0U3ltYm9sQ29uc3RydWN0b3JOYW1lLCB7XG5cdFx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFR5cGVOYW1lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0KTtcblxuXHRcdGNvbnN0IHByb3RvRGVzYyA9IE9iamVjdFxuXHRcdFx0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcblx0XHRcdFx0Y29uc3RydWN0SGFuZGxlcixcblx0XHRcdFx0J3Byb3RvdHlwZSdcblx0XHRcdCkgYXMgUHJvcGVydHlEZXNjcmlwdG9yIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChwcm90b0Rlc2MgJiYgcHJvdG9EZXNjLndyaXRhYmxlKSB7XG5cdFx0XHRjb25zdHJ1Y3RIYW5kbGVyLnByb3RvdHlwZSA9IGdldERlZmF1bHRQcm90b3R5cGUoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gY29uc3RydWN0SGFuZGxlcjtcblx0fTtcblxuXHRjb25maWcgPSBPYmplY3QuYXNzaWduKFxuXHRcdHt9LFxuXHRcdGNvbmZpZ1xuXHQpO1xuXG5cdGNvbmZpZy5hc0NsYXNzID0gYXNDbGFzcztcblxuXHRyZXR1cm4gbmV3IFR5cGVEZXNjcmlwdG9yKFxuXHRcdGRlZmluZU9yaWdpbixcblx0XHR0YXJnZXQsXG5cdFx0VHlwZU5hbWUsXG5cdFx0bWFrZUNvbnN0cnVjdEhhbmRsZXIsXG5cdFx0dHlwZS5wcm90b3R5cGUsXG5cdFx0Y29uZmlnXG5cdCkgYXMgdW5rbm93biBhcyBUeXBlQ2xhc3M7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1BSU4gRElTUEFUQ0hFUlxuLy8gQWxsIGJyYW5jaGVzIGZ1bm5lbCBoZXJlLiBSZWN1cnNpb24gaXMgaXNvbGF0ZWQgdG8gcGF0aFxuLy8gcmVzb2x1dGlvbiAocmVzb2x2ZURlZmluaXRpb25Db250ZXh0KSBhbmQgdGhlIHNpbmdsZSBjYXNlXG4vLyBvZiBhIG5hbWVkIGZ1bmN0aW9uIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IGRlZmluZSA9IGZ1bmN0aW9uIChcblx0dGhpczogdW5rbm93bixcblx0c3VidHlwZXM6IFR5cGVzTWFwLFxuXHRUeXBlT3JUeXBlTmFtZTogc3RyaW5nIHwgQ2FsbGFibGVGdW5jdGlvbixcblx0Y29uc3RydWN0SGFuZGxlck9yQ29uZmlnPzogQ2FsbGFibGVGdW5jdGlvbiB8IG9iamVjdCxcblx0Y29uZmlnPzogb2JqZWN0XG4pOiBUeXBlQ2xhc3Mge1xuXG5cdGlmICghY29uZmlnIHx8ICh0eXBlb2YgY29uZmlnICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgY29uZmlnICE9PSAnZnVuY3Rpb24nKSkge1xuXHRcdGNvbmZpZyA9IHt9O1xuXHR9XG5cblx0Ly8gLS0tIEJyYW5jaDogZnVuY3Rpb24gcGFzc2VkIGFzIGZpcnN0IGFyZyAtLS1cblx0aWYgKHR5cGVvZiBUeXBlT3JUeXBlTmFtZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdGNvbnN0IGZuID0gVHlwZU9yVHlwZU5hbWU7XG5cdFx0aWYgKGZuLm5hbWUpIHtcblx0XHRcdGNoZWNrRHVwbGljYXRlKFxuXHRcdFx0XHRzdWJ0eXBlcyxcblx0XHRcdFx0Zm4ubmFtZVxuXHRcdFx0KTtcblx0XHRcdGNvbnN0IGRlZmluZVJlc3VsdCA9IGRlZmluZS5jYWxsKFxuXHRcdFx0XHR0aGlzLFxuXHRcdFx0XHRzdWJ0eXBlcyxcblx0XHRcdFx0Zm4ubmFtZSxcblx0XHRcdFx0Zm4sXG5cdFx0XHRcdGNvbmZpZ1xuXHRcdFx0KTtcblx0XHRcdHJldHVybiBkZWZpbmVSZXN1bHQ7XG5cdFx0fVxuXHRcdC8vIEFub255bW91cyBmdW5jdGlvbjogY29uc3RydWN0SGFuZGxlck9yQ29uZmlnIG1heSBob2xkIHRoZSBjb25maWdcblx0XHRjb25zdCBsYXp5Q29uZmlnID0gdHlwZW9mIGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZyA9PT0gJ29iamVjdCcgJiYgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnICE9PSBudWxsXG5cdFx0XHQ/IGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZyBhcyBjb25zdHJ1Y3Rvck9wdGlvbnNcblx0XHRcdDogY29uZmlnIGFzIGNvbnN0cnVjdG9yT3B0aW9ucztcblx0XHRjb25zdCBsYXp5UmVzdWx0ID0gY3JlYXRlRnJvbUxhenlHZXR0ZXIoXG5cdFx0XHR0aGlzIGFzIFR5cGVBYnNvcmJlcixcblx0XHRcdHN1YnR5cGVzLFxuXHRcdFx0JycsXG5cdFx0XHRmbiBhcyBMYXp5VHlwZUdldHRlcixcblx0XHRcdGxhenlDb25maWdcblx0XHQpO1xuXHRcdHJldHVybiBsYXp5UmVzdWx0O1xuXHR9XG5cblx0Ly8gLS0tIEJyYW5jaDogc3RyaW5nIHBhdGggcGFzc2VkIGFzIGZpcnN0IGFyZyAtLS1cblx0aWYgKHR5cGVvZiBUeXBlT3JUeXBlTmFtZSAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdkZWZpbml0aW9uIGlzIG5vdCBwcm92aWRlZCcpO1xuXHR9XG5cdGNoZWNrVHlwZU5hbWUoVHlwZU9yVHlwZU5hbWUpO1xuXG5cdGxldCBoYW5kbGVyOiBDb25zdHJ1Y3RIYW5kbGVyIHwgTGF6eVR5cGVHZXR0ZXIgfCB1bmRlZmluZWQ7XG5cdGlmICh0eXBlb2YgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0aGFuZGxlciA9IGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZyBhcyBDb25zdHJ1Y3RIYW5kbGVyIHwgTGF6eVR5cGVHZXR0ZXI7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZyA9PT0gJ29iamVjdCcpIHtcblx0XHRjb25maWcgPSBjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWcgYXMgY29uc3RydWN0b3JPcHRpb25zO1xuXHR9XG5cblx0Y29uc3Qge1xuXHRcdHRhcmdldCwgbmFtZSwgcGFyZW50XG5cdH0gPSByZXNvbHZlRGVmaW5pdGlvbkNvbnRleHQoXG5cdFx0c3VidHlwZXMsXG5cdFx0VHlwZU9yVHlwZU5hbWVcblx0KTtcblxuXHQvLyBFeGlzdGluZyB0eXBlIHdpdGggbm8gaGFuZGxlcjogZXJyb3IgKG1hdGNoZXMgb3JpZ2luYWwgZmFsbHRocm91Z2gpXG5cdGlmIChwYXJlbnQgJiYgIWhhbmRsZXIpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdkZWZpbml0aW9uIGlzIG5vdCBwcm92aWRlZCcpO1xuXHR9XG5cblx0Ly8gSWYgdGhlIHBhdGggcmVzb2x2ZWQgdG8gYW4gZXhpc3RpbmcgdHlwZSBhbmQgdGhlIGhhbmRsZXJcblx0Ly8gaXMgYSBsYXp5IGdldHRlciwgZGVmaW5lIHRoZSBnZXR0ZXIncyByZXR1cm5lZCBjb25zdHJ1Y3RvclxuXHQvLyBhcyBhIHN1YnR5cGUgb2YgdGhlIGV4aXN0aW5nIHR5cGUuXG5cdGlmIChwYXJlbnQgJiYgaGFuZGxlciAmJiBpc0xhenlHZXR0ZXIoaGFuZGxlcikpIHtcblx0XHRjb25zdCBsYXp5VHlwZSA9IChoYW5kbGVyIGFzIExhenlUeXBlR2V0dGVyKSgpO1xuXHRcdGNoZWNrRHVwbGljYXRlKFxucGFyZW50LnN1YnR5cGVzIGFzIFR5cGVzTWFwLFxubGF6eVR5cGUubmFtZVxuXHRcdCk7XG5cdFx0Y29uc3QgbGF6eVBhcmVudFJlc3VsdCA9IGNyZWF0ZUZyb21MYXp5R2V0dGVyKFxuXHRcdFx0dGhpcyBhcyBUeXBlQWJzb3JiZXIsXG5cdFx0XHRwYXJlbnQuc3VidHlwZXMgYXMgVHlwZXNNYXAsXG5cdFx0XHRsYXp5VHlwZS5uYW1lLFxuXHRcdFx0aGFuZGxlciBhcyBMYXp5VHlwZUdldHRlcixcblx0XHRcdGNvbmZpZyBhcyBjb25zdHJ1Y3Rvck9wdGlvbnNcblx0XHQpO1xuXHRcdHJldHVybiBsYXp5UGFyZW50UmVzdWx0O1xuXHR9XG5cblx0Y29uc3QgcmVzdWx0ID0gY3JlYXRlRnJvbURpcmVjdEhhbmRsZXIoXG5cdFx0dGhpcyBhcyBUeXBlQWJzb3JiZXIsXG5cdFx0dGFyZ2V0LFxuXHRcdG5hbWUsXG5cdFx0aGFuZGxlcixcblx0XHRjb25maWcgYXMgY29uc3RydWN0b3JPcHRpb25zXG5cdCk7XG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgbG9va3VwID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlc01hcCxcblx0VHlwZU5lc3RlZFBhdGg6IHN0cmluZ1xuKTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkIHtcblxuXHRpZiAodHlwZW9mIFR5cGVOZXN0ZWRQYXRoICE9PSAnc3RyaW5nJykge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oJ2FyZyA6IHR5cGUgbmVzdGVkIHBhdGggbXVzdCBiZSBhIHN0cmluZycpO1xuXHR9XG5cblx0aWYgKCFUeXBlTmVzdGVkUGF0aC5sZW5ndGgpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdhcmcgOiB0eXBlIG5lc3RlZCBwYXRoIGhhcyBubyBwYXRoJyk7XG5cdH1cblxuXHRjb25zdCBzcGxpdCA9IGdldFR5cGVTcGxpdFBhdGgoVHlwZU5lc3RlZFBhdGgpO1xuXG5cdGNvbnN0IFsgbmFtZSBdID0gc3BsaXQ7XG5cdGNvbnN0IHR5cGUgPSB0aGlzLmdldChuYW1lKSBhcyBUeXBlQ2xhc3MgfCB1bmRlZmluZWQ7XG5cdGlmIChzcGxpdC5sZW5ndGggPT09IDEpIHtcblx0XHRyZXR1cm4gdHlwZTtcblx0fVxuXG5cdGNvbnN0IE5leHROZXN0ZWRQYXRoID0gc3BsaXQuc2xpY2UoMSkuam9pbignLicpO1xuXHRpZiAoIXR5cGUpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cdHJldHVybiBsb29rdXAuY2FsbChcbnR5cGUuc3VidHlwZXMgYXMgdW5rbm93biBhcyBUeXBlc01hcCxcbk5leHROZXN0ZWRQYXRoXG5cdCk7XG5cbn07XG5cblxuXG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUNiLHlDQUFzQztBQUV0QywrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLFlBQVksRUFFWixpQkFBaUIsRUFDakIsU0FBUyxHQUVULEdBQUcscUJBQVMsQ0FBQztBQUVkLHFEQUF1RDtBQUd2RCw0REFBcUM7QUFDckMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsbUJBQVUsQ0FBQztBQUUzQyxNQUFNLEVBQ0wsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsMEJBQTBCLEdBQzFCLEdBQUcsb0JBQVcsQ0FBQztBQUtoQixtREFBcUM7QUFDckMsMkNBQXdDO0FBRXhDLDRHQUEwRztBQUUxRyxrREFBdUQ7QUFDdkQsTUFBTSxFQUNMLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLE9BQU8sR0FDUCxHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUdtQjtBQU9uQixNQUFNLGNBQWMsR0FBRyxVQUV0QixZQUEwQixFQUMxQixLQUFlLEVBQ2YsUUFBZ0IsRUFDaEIsZ0JBQTZDLEVBQzdDLEtBQW1DLEVBQ25DLE1BQW9DO0lBS3BDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBRSxnQkFBZ0IsQ0FBRSxJQUFJLElBQUksQ0FBQztJQUVyRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTVDLE1BQU0sVUFBVSxHQUFHLFNBQVM7UUFDM0IsQ0FBQyxDQUFFLFVBQXNDLENBQUMsVUFBb0I7UUFDOUQsQ0FBQyxDQUFDLEtBQUssQ0FBRSxTQUFTLENB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eUNBQXlDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUkscUJBQXFCLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFL0MsTUFBTSxDQUFFLElBQUksQ0FBRSxHQUFHLEtBQUssQ0FBQztJQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBMEIsQ0FBQztJQUNyRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1gsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLGNBQU0sQ0FBQyxJQUFJLENBQzNCLElBQUksQ0FBQyxRQUErQixFQUNwQyxjQUFjLENBQ1osQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDO0FBRWYsQ0FBQyxDQUFDO0FBL0JXLFFBQUEsTUFBTSxVQStCakIiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIFBpcGVsaW5lIChoaWdoLWxldmVsIGZsb3cpOlxuICpcbiAqICAgZGVmaW5lKFR5cGVOYW1lLCBjdG9yKSAg4oaSICBuZXcgVHlwZURlc2NyaXB0b3IoKSAg4oaSICBuZXcgVHlwZVByb3h5KClcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pa8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEluc3RhbmNlQ3JlYXRvcih0eXBlLCBwYXJlbnQsIGFyZ3MpXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKWvFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKHNlbGYpXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKWvFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yLmNhbGwocGFyZW50LCBNb2RpZmljYXRvclR5cGUsIHByb3RvLCBfYWRkUHJvcHMpXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKWvFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIgY29uc3RydWN0b3IgcnVucyAobmV3IE1vZGlmaWNhdG9yVHlwZSguLi5hcmdzKSlcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUglxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pa8XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdFByb2Nlc3NpbmcoKSDihpIgaW52b2tlUG9zdEhvb2tzKClcbiAqL1xuXG5pbXBvcnQge1xuXHRfSW50ZXJuYWxfVENfLFxuXHRUeXBlRGVzY3JpcHRvckluc3RhbmNlLFxuXHRUeXBlQ2xhc3MsXG5cdFR5cGVEZWYsXG5cdENvbGxlY3Rpb25EZWYsXG5cdGNvbnN0cnVjdG9yT3B0aW9ucyxcblx0VHlwZUFic29yYmVyLFxuXHRNb2RpZmljYXRpb25Db25zdHJ1Y3RvckZhY3RvcnksXG5cdE1uZW1vbmljYUNvbnN0cnVjdG9yRmFjdG9yeSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG4vLyBMYXp5IGdldHRlcjogYSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCwgcmV0dXJucyB0aGUgYWN0dWFsIGNvbnN0cnVjdG9yIGZ1bmN0aW9uLlxuLy8gVXNlZCB3aGVuIGRlZmluZSgpIHJlY2VpdmVzIGFuIGFub255bW91cyBmdW5jdGlvbiB3cmFwcGluZyB0aGUgcmVhbCBjb25zdHJ1Y3Rvci5cbmludGVyZmFjZSBMYXp5VHlwZUdldHRlciBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQoKTogQ29uc3RydWN0SGFuZGxlcjtcbn1cblxuaW1wb3J0IHsgaG9wIH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9wJztcblxuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xQYXJlbnRUeXBlLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsXG5cdFN5bWJvbENvbmZpZyxcblxuXHRUWVBFX1RJVExFX1BSRUZJWCxcblx0TU5FTU9TWU5FLFxuXG59ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG4vLyBpbXBvcnQgeyBkZXNjcmlwdG9ycyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzJztcblxuaW1wb3J0IG1uZW1vc3luZXMgZnJvbSAnLi9NbmVtb3N5bmUnO1xuY29uc3QgeyBnZXREZWZhdWx0UHJvdG90eXBlIH0gPSBtbmVtb3N5bmVzO1xuXG5jb25zdCB7XG5cdEFMUkVBRFlfREVDTEFSRUQsXG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcblx0VFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORyxcblx0SEFORExFUl9NVVNUX0JFX0FfRlVOQ1RJT04sXG59ID0gRXJyb3JzVHlwZXM7XG5cbi8vIGludm9rZUhvb2tcbi8vIHJlZ2lzdGVySG9va1xuLy8gcmVnaXN0ZXJGbG93Q2hlY2tlclxuaW1wb3J0ICogYXMgaG9va3NBcGkgZnJvbSAnLi4vaG9va3MnO1xuaW1wb3J0IHsgVHlwZVByb3h5IH0gZnJvbSAnLi9UeXBlUHJveHknO1xuXG5pbXBvcnQgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5LCB7IENvbnN0cnVjdEhhbmRsZXIgfSBmcm9tICcuL2NvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSc7XG5cbmltcG9ydCBUeXBlc1V0aWxzLCB7IENyZWF0aW9uSGFuZGxlciB9IGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Z2V0VHlwZUNoZWNrZXIsXG5cdGdldFR5cGVTcGxpdFBhdGgsXG5cdGNoZWNrVHlwZU5hbWUsXG5cdGlzQ2xhc3MsXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHtcblx0Z2V0U3RhY2ssXG5cdFN0YWNrYWJsZUluc3RhbmNlLFxufSBmcm9tICcuLi9lcnJvcnMnO1xuXG5leHBvcnQgdHlwZSBUeXBlc01hcCA9IE1hcDxzdHJpbmcsIG9iamVjdD4gJiB7XG5cdFtTeW1ib2xQYXJlbnRUeXBlXT86IFR5cGVEZWY7XG5cdFtNTkVNT1NZTkVdPzogQ29sbGVjdGlvbkRlZjtcbn07XG5cbmNvbnN0IFR5cGVEZXNjcmlwdG9yID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlRGVzY3JpcHRvckluc3RhbmNlLFxuXHRkZWZpbmVPcmlnaW46IFR5cGVBYnNvcmJlcixcblx0dHlwZXM6IFR5cGVzTWFwLFxuXHRUeXBlTmFtZTogc3RyaW5nLFxuXHRjb25zdHJ1Y3RIYW5kbGVyOiBNbmVtb25pY2FDb25zdHJ1Y3RvckZhY3RvcnksXG5cdHByb3RvOiB7IFtpbmRleDogc3RyaW5nXTogdW5rbm93biB9LFxuXHRjb25maWc6IHsgW2luZGV4OiBzdHJpbmddOiB1bmtub3duIH0sXG4pIHtcblxuXHQvLyBoZXJlIFwidHlwZXNcIiByZWZlcnMgdG8gc3VidHlwZXMgb2YgdHlwZSBvciBjb2xsZWN0aW9uIG9iamVjdCB7fVxuXG5cdGNvbnN0IHBhcmVudFR5cGUgPSB0eXBlc1sgU3ltYm9sUGFyZW50VHlwZSBdIHx8IG51bGw7XG5cblx0Y29uc3QgaXNTdWJUeXBlID0gcGFyZW50VHlwZSA/IHRydWUgOiBmYWxzZTtcblxuXHRjb25zdCBjb2xsZWN0aW9uID0gaXNTdWJUeXBlXG5cdFx0PyAocGFyZW50VHlwZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikuY29sbGVjdGlvbiBhcyBvYmplY3Rcblx0XHQ6IHR5cGVzWyBNTkVNT1NZTkUgXTtcblxuXHRpZiAodHlwZXMuaGFzKFR5cGVOYW1lKSkge1xuXHRcdHRocm93IG5ldyBBTFJFQURZX0RFQ0xBUkVEKFR5cGVOYW1lKTtcblx0fVxuXG5cdC8vIGNvbnN0IHN1YnR5cGVzID0gZGVzY3JpcHRvcnMuY3JlYXRlVHlwZXNDb2xsZWN0aW9uKCk7XG5cdGNvbnN0IHN1YnR5cGVzID0gbmV3IE1hcDxzdHJpbmcsIG9iamVjdD4oKTtcblxuXHRjb25zdCB0aXRsZSA9IGAke1RZUEVfVElUTEVfUFJFRklYfSR7VHlwZU5hbWV9YDtcblxuXHRjb25maWcgPSBPYmplY3QuYXNzaWduKFxuXHRcdHt9LFxuXHRcdChjb2xsZWN0aW9uIGFzIFJlY29yZDxzeW1ib2wsIHVua25vd24+KVsgU3ltYm9sQ29uZmlnIF0sXG5cdFx0Y29uZmlnXG5cdCk7XG5cblx0Y29uc3QgdHlwZSA9IE9iamVjdC5hc3NpZ24oXG5cdFx0dGhpcyxcblx0XHR7XG5cblx0XHRcdGdldCBjb25zdHJ1Y3RIYW5kbGVyICgpIHtcblx0XHRcdFx0cmV0dXJuIGNvbnN0cnVjdEhhbmRsZXI7XG5cdFx0XHR9LFxuXG5cblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0cHJvdG8sXG5cblx0XHRcdGlzU3ViVHlwZSxcblx0XHRcdHN1YnR5cGVzLFxuXHRcdFx0cGFyZW50VHlwZSxcblxuXHRcdFx0Y29sbGVjdGlvbixcblxuXHRcdFx0dGl0bGUsXG5cblx0XHRcdGNvbmZpZyxcblxuXHRcdFx0aG9va3MgOiBPYmplY3QuY3JlYXRlKG51bGwpXG5cblx0XHR9XG5cdCk7XG5cblx0Z2V0U3RhY2suY2FsbChcblx0XHR0aGlzIGFzIFN0YWNrYWJsZUluc3RhbmNlLFxuXHRcdGBEZWZpbml0aW9uIG9mIFsgJHtUeXBlTmFtZX0gXSBtYWRlIGF0OmAsXG5cdFx0W10sXG5cdFx0ZGVmaW5lT3JpZ2luXG5cdCk7XG5cblx0b2RwKFxuXHRcdHN1YnR5cGVzLFxuXHRcdFN5bWJvbFBhcmVudFR5cGUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiB0eXBlO1xuXHRcdFx0fVxuXHRcdH1cblx0KTtcblxuXHQvLyBjb25zdCBVcmFudXMgPSBpc1N1YlR5cGUgPyBPYmplY3QuY3JlYXRlKG51bGwpIDogcHJvdG87XG5cdGNvbnN0IFVyYW51cyA9IGlzU3ViVHlwZSA/IHVuZGVmaW5lZCA6IHByb3RvO1xuXHR0eXBlcy5zZXQoXG5cdFx0VHlwZU5hbWUsXG5cdFx0bmV3IFR5cGVQcm94eShcblx0XHRcdHR5cGUsXG5cdFx0XHRVcmFudXNcblx0XHQpXG5cdCk7XG5cblx0Ly8gdHlwZXMuc2V0KCBUeXBlTmFtZSwgbmV3IFR5cGVQcm94eSggdHlwZSApICk7XG5cblx0Y29uc3QgcmVzdWx0ID0gdHlwZXMuZ2V0KFR5cGVOYW1lKTtcblx0cmV0dXJuIHJlc3VsdDtcblxufSBhcyB1bmtub3duIGFzIF9JbnRlcm5hbF9UQ188VHlwZURlc2NyaXB0b3JJbnN0YW5jZT47XG5cbk9iamVjdC5hc3NpZ24oXG5cdFR5cGVEZXNjcmlwdG9yLnByb3RvdHlwZSxcblx0aG9va3NBcGlcbik7XG5cblR5cGVEZXNjcmlwdG9yLnByb3RvdHlwZS5kZWZpbmUgPSBmdW5jdGlvbiAoXG5cdHRoaXM6IFR5cGVEZXNjcmlwdG9ySW5zdGFuY2UsXG5cdFR5cGVPclR5cGVOYW1lOiBzdHJpbmcgfCBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWc/OiBDYWxsYWJsZUZ1bmN0aW9uIHwgb2JqZWN0LFxuXHRjb25maWc/OiBvYmplY3Rcbikge1xuXHRjb25zdCByZXN1bHQgPSBkZWZpbmUuY2FsbChcblx0XHRkZWZpbmUsXG5cdFx0dGhpcy5zdWJ0eXBlcyBhcyBUeXBlc01hcCxcblx0XHRUeXBlT3JUeXBlTmFtZSxcblx0XHRjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWcsXG5cdFx0Y29uZmlnXG5cdCk7XG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5UeXBlRGVzY3JpcHRvci5wcm90b3R5cGUubG9va3VwID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBUeXBlRGVzY3JpcHRvckluc3RhbmNlLFxuXHRUeXBlTmVzdGVkUGF0aDogc3RyaW5nXG4pIHtcblx0Y29uc3QgcmVzdWx0ID0gbG9va3VwLmNhbGwoXG50aGlzLnN1YnR5cGVzIGFzIFR5cGVzTWFwLFxuVHlwZU5lc3RlZFBhdGhcblx0KTtcblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbm9kcChcblx0VHlwZURlc2NyaXB0b3IucHJvdG90eXBlLFxuXHRTeW1ib2wuaGFzSW5zdGFuY2UsIHtcblx0XHRnZXQgKHRoaXM6IFR5cGVEZXNjcmlwdG9ySW5zdGFuY2UpIHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGdldFR5cGVDaGVja2VyKHRoaXMuVHlwZU5hbWUpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdH1cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUEFUSCBSRVNPTFVUSU9OXG4vLyBSZXNvbHZlcyBhIGRvdC1zZXBhcmF0ZWQgcGF0aCB0byB0aGUgdGFyZ2V0IHR5cGVzIG1hcCBhbmRcbi8vIHRoZSBmaW5hbCB0eXBlIG5hbWUuIFJlY3Vyc2VzIGludG8gcGFyZW50IHN1YnR5cGVzIGZvclxuLy8gbmVzdGVkIHBhdGhzIChlLmcuICdQYXJlbnQuQ2hpbGQnIOKGkiBQYXJlbnQuc3VidHlwZXMgKyAnQ2hpbGQnKS5cbi8vIFJldHVybnMgdGhlIHBhcmVudCBUeXBlQ2xhc3Mgd2hlbiB0aGUgaGVhZCBzZWdtZW50IHJlc29sdmVzXG4vLyB0byBhbiBleGlzdGluZyB0eXBlIOKAlCBuZWVkZWQgZm9yIGxhenktZ2V0dGVyIHN1YnR5cGUgZGVmaW5pdGlvbi5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCByZXNvbHZlRGVmaW5pdGlvbkNvbnRleHQgPSBmdW5jdGlvbiAoXG5cdHN1YnR5cGVzOiBUeXBlc01hcCxcblx0cGF0aDogc3RyaW5nXG4pOiB7XG5cdFx0dGFyZ2V0OiBUeXBlc01hcDtcblx0XHRuYW1lOiBzdHJpbmc7XG5cdFx0cGFyZW50PzogVHlwZUNsYXNzO1xuXHR9IHtcblx0Y29uc3Qgc3BsaXQgPSBnZXRUeXBlU3BsaXRQYXRoKHBhdGgpO1xuXHRjb25zdCBbIGhlYWQsIC4uLnJlc3QgXSA9IHNwbGl0O1xuXHRjb25zdCBwYXJlbnQgPSBsb29rdXAuY2FsbChcblx0XHRzdWJ0eXBlcyxcblx0XHRoZWFkXG5cdCk7XG5cblx0aWYgKCFwYXJlbnQpIHtcblx0XHRpZiAocmVzdC5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKGBwYXJlbnQgJHtoZWFkfSBkZWZpbml0aW9uIGlzIG5vdCB5ZXQgZXhpc3RzIWApO1xuXHRcdH1cblx0XHRjb25zdCBub1BhcmVudFJlc3VsdCA9IHsgdGFyZ2V0IDogc3VidHlwZXMsIG5hbWUgOiBoZWFkIH07XG5cdFx0cmV0dXJuIG5vUGFyZW50UmVzdWx0O1xuXHR9XG5cblx0aWYgKHJlc3QubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IG5lc3RlZFJlc3VsdCA9IHJlc29sdmVEZWZpbml0aW9uQ29udGV4dChcbnBhcmVudC5zdWJ0eXBlcyBhcyBUeXBlc01hcCxcbnJlc3Quam9pbignLicpXG5cdFx0KTtcblx0XHRyZXR1cm4gbmVzdGVkUmVzdWx0O1xuXHR9XG5cblx0Y29uc3QgcmVzb2x2ZWRSZXN1bHQgPSB7IHRhcmdldCA6IHN1YnR5cGVzLCBuYW1lIDogaGVhZCwgcGFyZW50IH07XG5cdHJldHVybiByZXNvbHZlZFJlc3VsdDtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRFVQTElDQVRFIEdVQVJEXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgY2hlY2tEdXBsaWNhdGUgPSBmdW5jdGlvbiAodGFyZ2V0OiBUeXBlc01hcCwgbmFtZTogc3RyaW5nKTogdm9pZCB7XG5cdGNvbnN0IGV4aXN0aW5nID0gbG9va3VwLmNhbGwoXG5cdFx0dGFyZ2V0LFxuXHRcdG5hbWVcblx0KTtcblx0aWYgKGV4aXN0aW5nKSB7XG5cdFx0dGhyb3cgbmV3IEFMUkVBRFlfREVDTEFSRUQobmFtZSk7XG5cdH1cbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTEFaWSBHRVRURVIgREVURUNUSU9OXG4vLyBBIGxhenkgZ2V0dGVyIGlzIGEgZnVuY3Rpb24gdGhhdCwgd2hlbiBjYWxsZWQsIHJldHVybnMgYVxuLy8gbmFtZWQgY29uc3RydWN0b3IuIFVzZWQgZm9yIGxhdGUtYm91bmQgdHlwZSBkZWZpbml0aW9ucy5cbi8vIElmIHRoZSBjYWxsIHRocm93cyBvciByZXR1cm5zIGEgbm9uLW5hbWVkIGZ1bmN0aW9uLCBpdCBpc1xuLy8gdHJlYXRlZCBhcyBhIGRpcmVjdCBoYW5kbGVyIGluc3RlYWQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgaXNMYXp5R2V0dGVyID0gZnVuY3Rpb24gKGhhbmRsZXI6IENvbnN0cnVjdEhhbmRsZXIgfCBMYXp5VHlwZUdldHRlcik6IGJvb2xlYW4ge1xuXHR0cnkge1xuXHRcdC8vIFByb2JlOiB0cnkgdG8gY2FsbCBhcyBhIGxhenkgZ2V0dGVyLiBJZiBpdCBzdWNjZWVkcyBhbmQgcmV0dXJucyBhIG5hbWVkXG5cdFx0Ly8gZnVuY3Rpb24sIGl0J3MgYSBsYXp5IGdldHRlci4gT3RoZXJ3aXNlICh0aHJvd3Mgb3IgcmV0dXJucyBub24tZnVuY3Rpb24pLFxuXHRcdC8vIGl0J3MgYSBkaXJlY3QgaGFuZGxlci4gVGhlIGNhc3QgaXMgdGhlIHByb2JlIOKAlCBydW50aW1lIGRlY2lkZXMgd2hpY2ggaXQgaXMuXG5cdFx0Y29uc3QgbGF6eVJlc3VsdCA9IChoYW5kbGVyIGFzIExhenlUeXBlR2V0dGVyKSgpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IGxhenlSZXN1bHQgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBsYXp5UmVzdWx0Lm5hbWUubGVuZ3RoID4gMDtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9IGNhdGNoIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09OU1RSVUNUSU9OIFNUUkFURUdJRVNcbi8vIFR3byBicmFuY2hlcywgc2FtZSByZXR1cm4gdHlwZSwgbm8gcmVjdXJzaW9uLlxuLy8gQm90aCByZWNlaXZlIHRoZSByZXNvbHZlZCBjb250ZXh0IGFuZCByZXR1cm4gVHlwZURlc2NyaXB0b3IuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgY3JlYXRlRnJvbURpcmVjdEhhbmRsZXIgPSBmdW5jdGlvbiAoXG5cdGRlZmluZU9yaWdpbjogVHlwZUFic29yYmVyLFxuXHR0YXJnZXQ6IFR5cGVzTWFwLFxuXHRuYW1lOiBzdHJpbmcsXG5cdGhhbmRsZXI/OiBDb25zdHJ1Y3RIYW5kbGVyLFxuXHRjb25maWc/OiBjb25zdHJ1Y3Rvck9wdGlvbnNcbikge1xuXHRoYW5kbGVyID0gaGFuZGxlciB8fCBmdW5jdGlvbiAoKSB7IH07XG5cdGNvbnN0IGFzQ2xhc3MgPSBpc0NsYXNzKGhhbmRsZXIpO1xuXHRjb25zdCBtb2RpZmljYXRvckJvZHkgPSBjb21waWxlTmV3TW9kaWZpY2F0b3JGdW5jdGlvbkJvZHkoXG5cdFx0bmFtZSxcblx0XHRhc0NsYXNzXG5cdCk7XG5cblx0Y29uc3QgbWFrZUNvbnN0cnVjdEhhbmRsZXIgPSBtb2RpZmljYXRvckJvZHkoXG5cdFx0aGFuZGxlciBhcyBDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdENyZWF0aW9uSGFuZGxlcixcblx0XHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWVcblx0KTtcblxuXHRpZiAoY29uZmlnIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcblx0XHRjb25maWcgPSB7XG5cdFx0XHRNb2RpZmljYXRpb25Db25zdHJ1Y3RvciA6IGNvbmZpZyBhcyBNb2RpZmljYXRpb25Db25zdHJ1Y3RvckZhY3Rvcnlcblx0XHR9O1xuXHR9XG5cblx0Y29uZmlnIS5hc0NsYXNzID0gYXNDbGFzcztcblxuXHRjb25zdCBwcm90byA9IChcblx0XHRob3AoXG5cdFx0XHRoYW5kbGVyLFxuXHRcdFx0J3Byb3RvdHlwZSdcblx0XHQpICYmXG5cdFx0KHR5cGVvZiBoYW5kbGVyLnByb3RvdHlwZSA9PT0gJ29iamVjdCcpXG5cdCkgPyBoYW5kbGVyLnByb3RvdHlwZSA6IGdldERlZmF1bHRQcm90b3R5cGUoKTtcblxuXHRjb25zdCByZXN1bHQgPSBuZXcgVHlwZURlc2NyaXB0b3IoXG5cdFx0ZGVmaW5lT3JpZ2luLFxuXHRcdHRhcmdldCxcblx0XHRuYW1lLFxuXHRcdG1ha2VDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdHByb3RvLFxuXHRcdGNvbmZpZ1xuXHQpIGFzIHVua25vd24gYXMgVHlwZUNsYXNzO1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgY3JlYXRlRnJvbUxhenlHZXR0ZXIgPSBmdW5jdGlvbiAoXG5cdGRlZmluZU9yaWdpbjogVHlwZUFic29yYmVyLFxuXHR0YXJnZXQ6IFR5cGVzTWFwLFxuXHRuYW1lOiBzdHJpbmcsXG5cdGdldHRlcjogTGF6eVR5cGVHZXR0ZXIsXG5cdGNvbmZpZzogY29uc3RydWN0b3JPcHRpb25zXG4pIHtcblx0Y29uc3QgdHlwZSA9IGdldHRlcigpO1xuXG5cdGlmICh0eXBlb2YgdHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdHRocm93IG5ldyBIQU5ETEVSX01VU1RfQkVfQV9GVU5DVElPTjtcblx0fVxuXG5cdGNvbnN0IFR5cGVOYW1lID0gdHlwZS5uYW1lIHx8IG5hbWU7XG5cdGlmICghVHlwZU5hbWUpIHtcblx0XHR0aHJvdyBuZXcgVFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORztcblx0fVxuXG5cdGNvbnN0IGFzQ2xhc3MgPSBpc0NsYXNzKHR5cGUpO1xuXG5cdGNvbnN0IG1ha2VDb25zdHJ1Y3RIYW5kbGVyID0gKCkgPT4ge1xuXHRcdGNvbnN0IGNvbnN0cnVjdEhhbmRsZXIgPSBnZXR0ZXIoKTtcblx0XHRvZHAoXG5cdFx0XHRjb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdFx0U3ltYm9sQ29uc3RydWN0b3JOYW1lLCB7XG5cdFx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFR5cGVOYW1lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0KTtcblxuXHRcdGNvbnN0IHByb3RvRGVzYyA9IE9iamVjdFxuXHRcdFx0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcblx0XHRcdFx0Y29uc3RydWN0SGFuZGxlcixcblx0XHRcdFx0J3Byb3RvdHlwZSdcblx0XHRcdCkgYXMgUHJvcGVydHlEZXNjcmlwdG9yIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChwcm90b0Rlc2MgJiYgcHJvdG9EZXNjLndyaXRhYmxlKSB7XG5cdFx0XHRjb25zdHJ1Y3RIYW5kbGVyLnByb3RvdHlwZSA9IGdldERlZmF1bHRQcm90b3R5cGUoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gY29uc3RydWN0SGFuZGxlcjtcblx0fTtcblxuXHRjb25maWcgPSBPYmplY3QuYXNzaWduKFxuXHRcdHt9LFxuXHRcdGNvbmZpZ1xuXHQpO1xuXG5cdGNvbmZpZy5hc0NsYXNzID0gYXNDbGFzcztcblxuXHRjb25zdCByZXN1bHQgPSBuZXcgVHlwZURlc2NyaXB0b3IoXG5cdFx0ZGVmaW5lT3JpZ2luLFxuXHRcdHRhcmdldCxcblx0XHRUeXBlTmFtZSxcblx0XHRtYWtlQ29uc3RydWN0SGFuZGxlcixcblx0XHR0eXBlLnByb3RvdHlwZSxcblx0XHRjb25maWdcblx0KSBhcyB1bmtub3duIGFzIFR5cGVDbGFzcztcblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTUFJTiBESVNQQVRDSEVSXG4vLyBBbGwgYnJhbmNoZXMgZnVubmVsIGhlcmUuIFJlY3Vyc2lvbiBpcyBpc29sYXRlZCB0byBwYXRoXG4vLyByZXNvbHV0aW9uIChyZXNvbHZlRGVmaW5pdGlvbkNvbnRleHQpIGFuZCB0aGUgc2luZ2xlIGNhc2Vcbi8vIG9mIGEgbmFtZWQgZnVuY3Rpb24gcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgZGVmaW5lID0gZnVuY3Rpb24gKFxuXHR0aGlzOiB1bmtub3duLFxuXHRzdWJ0eXBlczogVHlwZXNNYXAsXG5cdFR5cGVPclR5cGVOYW1lOiBzdHJpbmcgfCBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWc/OiBDYWxsYWJsZUZ1bmN0aW9uIHwgb2JqZWN0LFxuXHRjb25maWc/OiBvYmplY3Rcbik6IFR5cGVDbGFzcyB7XG5cblx0aWYgKCFjb25maWcgfHwgKHR5cGVvZiBjb25maWcgIT09ICdvYmplY3QnICYmIHR5cGVvZiBjb25maWcgIT09ICdmdW5jdGlvbicpKSB7XG5cdFx0Y29uZmlnID0ge307XG5cdH1cblxuXHQvLyAtLS0gQnJhbmNoOiBmdW5jdGlvbiBwYXNzZWQgYXMgZmlyc3QgYXJnIC0tLVxuXHRpZiAodHlwZW9mIFR5cGVPclR5cGVOYW1lID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0Y29uc3QgZm4gPSBUeXBlT3JUeXBlTmFtZTtcblx0XHRpZiAoZm4ubmFtZSkge1xuXHRcdFx0Y2hlY2tEdXBsaWNhdGUoXG5cdFx0XHRcdHN1YnR5cGVzLFxuXHRcdFx0XHRmbi5uYW1lXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgZGVmaW5lUmVzdWx0ID0gZGVmaW5lLmNhbGwoXG5cdFx0XHRcdHRoaXMsXG5cdFx0XHRcdHN1YnR5cGVzLFxuXHRcdFx0XHRmbi5uYW1lLFxuXHRcdFx0XHRmbixcblx0XHRcdFx0Y29uZmlnXG5cdFx0XHQpO1xuXHRcdFx0cmV0dXJuIGRlZmluZVJlc3VsdDtcblx0XHR9XG5cdFx0Ly8gQW5vbnltb3VzIGZ1bmN0aW9uOiBjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWcgbWF5IGhvbGQgdGhlIGNvbmZpZ1xuXHRcdGNvbnN0IGxhenlDb25maWcgPSB0eXBlb2YgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnID09PSAnb2JqZWN0JyAmJiBjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWcgIT09IG51bGxcblx0XHRcdD8gY29uc3RydWN0SGFuZGxlck9yQ29uZmlnIGFzIGNvbnN0cnVjdG9yT3B0aW9uc1xuXHRcdFx0OiBjb25maWcgYXMgY29uc3RydWN0b3JPcHRpb25zO1xuXHRcdGNvbnN0IGxhenlSZXN1bHQgPSBjcmVhdGVGcm9tTGF6eUdldHRlcihcblx0XHRcdHRoaXMgYXMgVHlwZUFic29yYmVyLFxuXHRcdFx0c3VidHlwZXMsXG5cdFx0XHQnJyxcblx0XHRcdGZuIGFzIExhenlUeXBlR2V0dGVyLFxuXHRcdFx0bGF6eUNvbmZpZ1xuXHRcdCk7XG5cdFx0cmV0dXJuIGxhenlSZXN1bHQ7XG5cdH1cblxuXHQvLyAtLS0gQnJhbmNoOiBzdHJpbmcgcGF0aCBwYXNzZWQgYXMgZmlyc3QgYXJnIC0tLVxuXHRpZiAodHlwZW9mIFR5cGVPclR5cGVOYW1lICE9PSAnc3RyaW5nJykge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oJ2RlZmluaXRpb24gaXMgbm90IHByb3ZpZGVkJyk7XG5cdH1cblx0Y2hlY2tUeXBlTmFtZShUeXBlT3JUeXBlTmFtZSk7XG5cblx0bGV0IGhhbmRsZXI6IENvbnN0cnVjdEhhbmRsZXIgfCBMYXp5VHlwZUdldHRlciB8IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiBjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWcgPT09ICdmdW5jdGlvbicpIHtcblx0XHRoYW5kbGVyID0gY29uc3RydWN0SGFuZGxlck9yQ29uZmlnIGFzIENvbnN0cnVjdEhhbmRsZXIgfCBMYXp5VHlwZUdldHRlcjtcblx0fSBlbHNlIGlmICh0eXBlb2YgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnID09PSAnb2JqZWN0Jykge1xuXHRcdGNvbmZpZyA9IGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZyBhcyBjb25zdHJ1Y3Rvck9wdGlvbnM7XG5cdH1cblxuXHRjb25zdCB7XG5cdFx0dGFyZ2V0LCBuYW1lLCBwYXJlbnRcblx0fSA9IHJlc29sdmVEZWZpbml0aW9uQ29udGV4dChcblx0XHRzdWJ0eXBlcyxcblx0XHRUeXBlT3JUeXBlTmFtZVxuXHQpO1xuXG5cdC8vIEV4aXN0aW5nIHR5cGUgd2l0aCBubyBoYW5kbGVyOiBlcnJvciAobWF0Y2hlcyBvcmlnaW5hbCBmYWxsdGhyb3VnaClcblx0aWYgKHBhcmVudCAmJiAhaGFuZGxlcikge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oJ2RlZmluaXRpb24gaXMgbm90IHByb3ZpZGVkJyk7XG5cdH1cblxuXHQvLyBJZiB0aGUgcGF0aCByZXNvbHZlZCB0byBhbiBleGlzdGluZyB0eXBlIGFuZCB0aGUgaGFuZGxlclxuXHQvLyBpcyBhIGxhenkgZ2V0dGVyLCBkZWZpbmUgdGhlIGdldHRlcidzIHJldHVybmVkIGNvbnN0cnVjdG9yXG5cdC8vIGFzIGEgc3VidHlwZSBvZiB0aGUgZXhpc3RpbmcgdHlwZS5cblx0aWYgKHBhcmVudCAmJiBoYW5kbGVyICYmIGlzTGF6eUdldHRlcihoYW5kbGVyKSkge1xuXHRcdGNvbnN0IGxhenlUeXBlID0gKGhhbmRsZXIgYXMgTGF6eVR5cGVHZXR0ZXIpKCk7XG5cdFx0Y2hlY2tEdXBsaWNhdGUoXG5wYXJlbnQuc3VidHlwZXMgYXMgVHlwZXNNYXAsXG5sYXp5VHlwZS5uYW1lXG5cdFx0KTtcblx0XHRjb25zdCBsYXp5UGFyZW50UmVzdWx0ID0gY3JlYXRlRnJvbUxhenlHZXR0ZXIoXG5cdFx0XHR0aGlzIGFzIFR5cGVBYnNvcmJlcixcblx0XHRcdHBhcmVudC5zdWJ0eXBlcyBhcyBUeXBlc01hcCxcblx0XHRcdGxhenlUeXBlLm5hbWUsXG5cdFx0XHRoYW5kbGVyIGFzIExhenlUeXBlR2V0dGVyLFxuXHRcdFx0Y29uZmlnIGFzIGNvbnN0cnVjdG9yT3B0aW9uc1xuXHRcdCk7XG5cdFx0cmV0dXJuIGxhenlQYXJlbnRSZXN1bHQ7XG5cdH1cblxuXHRjb25zdCByZXN1bHQgPSBjcmVhdGVGcm9tRGlyZWN0SGFuZGxlcihcblx0XHR0aGlzIGFzIFR5cGVBYnNvcmJlcixcblx0XHR0YXJnZXQsXG5cdFx0bmFtZSxcblx0XHRoYW5kbGVyLFxuXHRcdGNvbmZpZyBhcyBjb25zdHJ1Y3Rvck9wdGlvbnNcblx0KTtcblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBsb29rdXAgPSBmdW5jdGlvbiAoXG5cdHRoaXM6IFR5cGVzTWFwLFxuXHRUeXBlTmVzdGVkUGF0aDogc3RyaW5nXG4pOiBUeXBlQ2xhc3MgfCB1bmRlZmluZWQge1xuXG5cdGlmICh0eXBlb2YgVHlwZU5lc3RlZFBhdGggIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignYXJnIDogdHlwZSBuZXN0ZWQgcGF0aCBtdXN0IGJlIGEgc3RyaW5nJyk7XG5cdH1cblxuXHRpZiAoIVR5cGVOZXN0ZWRQYXRoLmxlbmd0aCkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oJ2FyZyA6IHR5cGUgbmVzdGVkIHBhdGggaGFzIG5vIHBhdGgnKTtcblx0fVxuXG5cdGNvbnN0IHNwbGl0ID0gZ2V0VHlwZVNwbGl0UGF0aChUeXBlTmVzdGVkUGF0aCk7XG5cblx0Y29uc3QgWyBuYW1lIF0gPSBzcGxpdDtcblx0Y29uc3QgdHlwZSA9IHRoaXMuZ2V0KG5hbWUpIGFzIFR5cGVDbGFzcyB8IHVuZGVmaW5lZDtcblx0aWYgKHNwbGl0Lmxlbmd0aCA9PT0gMSkge1xuXHRcdHJldHVybiB0eXBlO1xuXHR9XG5cblx0Y29uc3QgTmV4dE5lc3RlZFBhdGggPSBzcGxpdC5zbGljZSgxKS5qb2luKCcuJyk7XG5cdGlmICghdHlwZSkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0Y29uc3QgcmVzdWx0ID0gbG9va3VwLmNhbGwoXG50eXBlLnN1YnR5cGVzIGFzIHVua25vd24gYXMgVHlwZXNNYXAsXG5OZXh0TmVzdGVkUGF0aFxuXHQpO1xuXHRyZXR1cm4gcmVzdWx0O1xuXG59O1xuXG5cblxuIl19
|
package/build/api/utils/index.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.CreationHandler = void 0;
|
|
4
7
|
const constants_1 = require("../../constants");
|
|
5
8
|
const errors_1 = require("../../descriptors/errors");
|
|
6
|
-
const
|
|
9
|
+
const collectConstructors_1 = require("../../utils/collectConstructors");
|
|
7
10
|
const { odp, SymbolConstructorName, MNEMONICA, MNEMOSYNE, } = constants_1.constants;
|
|
8
11
|
const { WRONG_TYPE_DEFINITION, } = errors_1.ErrorsTypes;
|
|
9
|
-
const { collectConstructors } = utils_1.utils;
|
|
10
12
|
const Props_1 = require("../types/Props");
|
|
11
|
-
const compileNewModificatorFunctionBody_1 = require("../types/compileNewModificatorFunctionBody");
|
|
13
|
+
const compileNewModificatorFunctionBody_1 = __importDefault(require("../types/compileNewModificatorFunctionBody"));
|
|
12
14
|
const CreationHandler = function (constructionAnswer) {
|
|
13
15
|
return constructionAnswer;
|
|
14
16
|
};
|
|
@@ -27,10 +29,12 @@ const getTypeChecker = (TypeName) => {
|
|
|
27
29
|
return false;
|
|
28
30
|
}
|
|
29
31
|
if (Reflect.getPrototypeOf(instance).constructor.name === 'Promise') {
|
|
30
|
-
|
|
32
|
+
const checkResult = instance[SymbolConstructorName] === TypeName;
|
|
33
|
+
return checkResult;
|
|
31
34
|
}
|
|
32
|
-
const constructors = collectConstructors(instance);
|
|
33
|
-
|
|
35
|
+
const constructors = (0, collectConstructors_1.collectConstructors)(instance);
|
|
36
|
+
const constructorResult = constructors[TypeName] || false;
|
|
37
|
+
return constructorResult;
|
|
34
38
|
};
|
|
35
39
|
return seeker;
|
|
36
40
|
};
|
|
@@ -107,13 +111,15 @@ const findSubTypeFromParent = (instance, subType) => {
|
|
|
107
111
|
};
|
|
108
112
|
const isClass = (fn) => {
|
|
109
113
|
const str = String(fn);
|
|
110
|
-
|
|
114
|
+
const result = str.indexOf('class ') === 0;
|
|
115
|
+
return result;
|
|
111
116
|
};
|
|
112
117
|
const makeErrorModificatorType = (TypeName, ErrorModificator = function () { }) => {
|
|
113
118
|
const modificatorBody = (0, compileNewModificatorFunctionBody_1.default)(TypeName);
|
|
114
119
|
const modificatorType = modificatorBody(ErrorModificator, exports.CreationHandler, SymbolConstructorName);
|
|
115
120
|
const result = modificatorType();
|
|
116
|
-
|
|
121
|
+
const constructorResult = result;
|
|
122
|
+
return constructorResult;
|
|
117
123
|
};
|
|
118
124
|
const reflectPrimitiveWrappers = (_thisArg) => {
|
|
119
125
|
let thisArg = _thisArg;
|
|
@@ -121,9 +127,10 @@ const reflectPrimitiveWrappers = (_thisArg) => {
|
|
|
121
127
|
thisArg = Object.create(null);
|
|
122
128
|
odp(thisArg, Symbol.toPrimitive, {
|
|
123
129
|
get() {
|
|
124
|
-
|
|
130
|
+
const result = () => {
|
|
125
131
|
return _thisArg;
|
|
126
132
|
};
|
|
133
|
+
return result;
|
|
127
134
|
}
|
|
128
135
|
});
|
|
129
136
|
}
|
|
@@ -132,9 +139,11 @@ const reflectPrimitiveWrappers = (_thisArg) => {
|
|
|
132
139
|
_thisArg instanceof String) {
|
|
133
140
|
odp(thisArg, Symbol.toPrimitive, {
|
|
134
141
|
get() {
|
|
135
|
-
|
|
136
|
-
|
|
142
|
+
const result = () => {
|
|
143
|
+
const valueResult = _thisArg.valueOf();
|
|
144
|
+
return valueResult;
|
|
137
145
|
};
|
|
146
|
+
return result;
|
|
138
147
|
}
|
|
139
148
|
});
|
|
140
149
|
}
|
|
@@ -152,4 +161,4 @@ const TypesUtils = {
|
|
|
152
161
|
reflectPrimitiveWrappers,
|
|
153
162
|
};
|
|
154
163
|
exports.default = TypesUtils;
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsK0NBQTRDO0FBQzVDLHFEQUF1RDtBQUN2RCx1Q0FBb0M7QUFFcEMsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsU0FBUyxFQUNULFNBQVMsR0FDVCxHQUFHLHFCQUFTLENBQUM7QUFFZCxNQUFNLEVBQUUscUJBQXFCLEdBQUcsR0FBRyxvQkFBVyxDQUFDO0FBRS9DLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLGFBQUssQ0FBQztBQUV0QywwQ0FFd0I7QUFHeEIsa0dBQWlIO0FBSTFHLE1BQU0sZUFBZSxHQUFHLFVBQTJELGtCQUEyQjtJQUNwSCxPQUFPLGtCQUFrQixDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUZXLFFBQUEsZUFBZSxtQkFFMUI7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ3JDLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7QUFDRixDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUMzQyxNQUFNLE1BQU0sR0FBWSxDQUFDLFFBQWdCLEVBQUUsRUFBRTtRQUU1QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUdELElBQUksQ0FBQyxRQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBR0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJ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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCB7XG5cdG9kcCxcblx0U3ltYm9sQ29uc3RydWN0b3JOYW1lLFxuXHRNTkVNT05JQ0EsXG5cdE1ORU1PU1lORSxcbn0gPSBjb25zdGFudHM7XG5cbmNvbnN0IHsgV1JPTkdfVFlQRV9ERUZJTklUSU9OLCB9ID0gRXJyb3JzVHlwZXM7XG5cbmNvbnN0IHsgY29sbGVjdENvbnN0cnVjdG9ycyB9ID0gdXRpbHM7XG5cbmltcG9ydCB7XG5cdF9nZXRQcm9wcywgUHJvcHMgXG59IGZyb20gJy4uL3R5cGVzL1Byb3BzJztcbmltcG9ydCB0eXBlIHsgTW5lbW9uaWNhQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCBjb21waWxlTmV3TW9kaWZpY2F0b3JGdW5jdGlvbkJvZHksIHsgQ29uc3RydWN0SGFuZGxlciB9IGZyb20gJy4uL3R5cGVzL2NvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSc7XG5cbi8vIENyZWF0aW9uSGFuZGxlciAtIGhhbmRsZXMgY29uc3RydWN0b3IgcmV0dXJuIHZhbHVlc1xuLy8gTW92ZWQgdG8gYXBpL3R5cGVzL2luZGV4LnRzIGFzIHBlciByZWZhY3RvcmluZyBwbGFuXG5leHBvcnQgY29uc3QgQ3JlYXRpb25IYW5kbGVyID0gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCAmIHsgY29uc3RydWN0b3I6IE5ld2FibGVGdW5jdGlvbiB9LCBjb25zdHJ1Y3Rpb25BbnN3ZXI6IHVua25vd24pIHtcblx0cmV0dXJuIGNvbnN0cnVjdGlvbkFuc3dlcjtcbn07XG5cbmNvbnN0IGNoZWNrUHJvdG8gPSAocHJvdG86IHVua25vd24pID0+IHtcblx0aWYgKCEocHJvdG8gaW5zdGFuY2VvZiBPYmplY3QpKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignZXhwZWN0IHByb3RvdHlwZSB0byBiZSBhbiBvYmplY3QnKTtcblx0fVxufTtcblxuY29uc3QgZ2V0VHlwZUNoZWNrZXIgPSAoVHlwZU5hbWU6IHN0cmluZykgPT4ge1xuXHRjb25zdCBzZWVrZXI6IHVua25vd24gPSAoaW5zdGFuY2U6IG9iamVjdCkgPT4ge1xuXG5cdFx0aWYgKHR5cGVvZiBpbnN0YW5jZSAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQgXG5cdFx0aWYgKCFpbnN0YW5jZSEuY29uc3RydWN0b3IpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0IFxuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgSSdtIHRvbyBsYXp5IGZvciB0aGF0XG5cdFx0aWYgKFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoaW5zdGFuY2UpLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQcm9taXNlJykge1xuXHRcdFx0Ly8gaWYgKCBpbnN0YW5jZSBpbnN0YW5jZW9mIFByb21pc2UgKSB7XG5cdFx0XHQgXG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIEknbSB0b28gbGF6eSBmb3IgdGhhdFxuXHRcdFx0cmV0dXJuIGluc3RhbmNlWyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgXSA9PT0gVHlwZU5hbWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgY29uc3RydWN0b3JzOiB7XG5cdFx0XHRzdHJpbmc6IG5ldyAoKSA9PiB1bmtub3duXG5cdFx0fSA9IGNvbGxlY3RDb25zdHJ1Y3RvcnMoaW5zdGFuY2UpO1xuXHRcdCBcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIEknbSB0b28gbGF6eSBmb3IgdGhhdFxuXHRcdHJldHVybiBjb25zdHJ1Y3RvcnNbIFR5cGVOYW1lIF0gfHwgZmFsc2U7XG5cblx0fTtcblx0cmV0dXJuIHNlZWtlcjtcbn07XG5cbmNvbnN0IGdldFR5cGVTcGxpdFBhdGggPSAocGF0aDogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHNwbGl0ID0gcGF0aFxuXHRcdC8vIGJlYXV0aWZ1bGwgbmFtZXNcblx0XHQucmVwbGFjZShcblx0XHRcdC9cXG58XFx0fCAvZyxcblx0XHRcdCcnXG5cdFx0KVxuXHRcdC5yZXBsYWNlKFxuXHRcdFx0L1xcWyhcXHcrKVxcXS9nLFxuXHRcdFx0Jy4kMSdcblx0XHQpXG5cdFx0LnJlcGxhY2UoXG5cdFx0XHQvXlxcLi8sXG5cdFx0XHQnJ1xuXHRcdClcblx0XHQuc3BsaXQoL1xcLnxcXC98Oi8pO1xuXHRyZXR1cm4gc3BsaXQ7XG59O1xuXG5leHBvcnQgdHlwZSBhc3luY1N0YWNrID0ge1xuXHRfX3N0YWNrX18/OiBzdHJpbmdcblx0X190eXBlX186IHtcblx0XHRpc1N1YlR5cGU6IGJvb2xlYW5cblx0fVxuXHRwYXJlbnQ6ICgpID0+IGFzeW5jU3RhY2tcbn1cblxuY29uc3QgZ2V0RXhpc3RlbnRBc3luY1N0YWNrID0gKGV4aXN0ZW50SW5zdGFuY2U6IGFzeW5jU3RhY2spOiB1bmtub3duID0+IHtcblxuXHRjb25zdCBzdGFjayA9IFtdO1xuXHRsZXQgcHJvdG8gPSBleGlzdGVudEluc3RhbmNlO1xuXG5cdHdoaWxlIChwcm90bykge1xuXG5cdFx0Y29uc3QgcHJvcHMgPSBfZ2V0UHJvcHMocHJvdG8pIGFzIFByb3BzO1xuXG5cdFx0aWYgKCFwcm9wcy5fX3N0YWNrX18pIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNvbnN0IHBzdGFjayA9IHByb3BzXG5cdFx0XHQuX19zdGFja19fXG5cdFx0XHQuc3BsaXQoJ1xcbicpXG5cdFx0XHQucmVkdWNlKFxuXHRcdFx0XHQoYXJyOiBzdHJpbmdbXSwgbGluZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGxpbmUubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRhcnIucHVzaChsaW5lKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGFycjtcblx0XHRcdFx0fSxcblx0XHRcdFx0W11cblx0XHRcdCk7XG5cblx0XHRwcm90byA9IHByb3RvLnBhcmVudCgpO1xuXG5cdFx0Y29uc3QgcHJvdG9Qcm9wcyA9IF9nZXRQcm9wcyhwcm90bykgYXMgUHJvcHM7XG5cblx0XHRpZiAocHJvdG8gJiYgcHJvdG9Qcm9wcyAmJiBwcm90b1Byb3BzLl9fdHlwZV9fKSB7XG5cblx0XHRcdGlmIChwcm90b1Byb3BzLl9fdHlwZV9fLmlzU3ViVHlwZSkge1xuXHRcdFx0XHRzdGFjay5wdXNoKC4uLnBzdGFjay5zbGljZShcblx0XHRcdFx0XHQwLFxuXHRcdFx0XHRcdDFcblx0XHRcdFx0KSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzdGFjay5wdXNoKC4uLnBzdGFjayk7XG5cdFx0XHR9XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0c3RhY2sucHVzaCguLi5wc3RhY2spO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHN0YWNrO1xuXG59O1xuXG5jb25zdCBmb3JiaWRkZW5OYW1lcyA9IFsgTU5FTU9OSUNBLCBNTkVNT1NZTkUgXTtcblxuY29uc3QgY2hlY2tUeXBlTmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IHtcblxuXHRpZiAoIW5hbWUubGVuZ3RoKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignVHlwZU5hbWUgbXVzdCBub3QgYmUgZW1wdHknKTtcblx0fVxuXG5cdGlmIChuYW1lWyAwIF0gIT09IG5hbWVbIDAgXS50b1VwcGVyQ2FzZSgpKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignVHlwZU5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggVXBwZXJjYXNlIExldHRlcicpO1xuXHR9XG5cblx0aWYgKGZvcmJpZGRlbk5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignVHlwZU5hbWUgb2YgcmVzZXJ2ZWQga2V5d29yZCcpO1xuXHR9XG5cbn07XG5cbmV4cG9ydCB0eXBlIHBhcmVudFN1YiA9IHtcblx0VHlwZU5hbWU6IHN0cmluZztcblx0X190eXBlX186IHtcblx0XHRzdWJ0eXBlczogTWFwPHN0cmluZywgcGFyZW50U3ViPlxuXHR9XG5cdF9fcGFyZW50X186IHBhcmVudFN1YlxufVxuXG5jb25zdCBmaW5kU3ViVHlwZUZyb21QYXJlbnQgPSAoaW5zdGFuY2U6IHBhcmVudFN1YiB8IG9iamVjdCB8IHVuZGVmaW5lZCwgc3ViVHlwZTogc3RyaW5nKTogcGFyZW50U3ViIHwgbnVsbCA9PiB7XG5cdGxldCBzdWJ0eXBlID0gbnVsbDtcblxuXHRpZiAoIWluc3RhbmNlKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0aWYgKHByb3BzKSB7XG5cdFx0aWYocHJvcHMuX190eXBlX18uc3VidHlwZXMuaGFzKHN1YlR5cGUpKSB7XG5cdFx0XHRjb25zdCBfc3VidHlwZSA9IHByb3BzLl9fdHlwZV9fLnN1YnR5cGVzLmdldChzdWJUeXBlKTtcblx0XHRcdHN1YnR5cGUgPSBfc3VidHlwZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3VidHlwZSA9IGZpbmRTdWJUeXBlRnJvbVBhcmVudChcblx0XHRcdFx0cHJvcHMuX19wYXJlbnRfXyxcblx0XHRcdFx0c3ViVHlwZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0IFxuXHQvLyBAdHMtZXhwZWN0LWVycm9yIEknbSB0b28gbGF6eSBmb3IgdGhhdFxuXHRyZXR1cm4gc3VidHlwZTtcbn07XG5cbi8vIGNvbnN0IGlzQ2xhc3MgPSAoIGZ1bmN0aW9uUG9pbnRlcjogQ2FsbGFibGVGdW5jdGlvbiApID0+IHtcbi8vIFx0Y29uc3QgdmFsdWUgPSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCggZnVuY3Rpb25Qb2ludGVyICk7XG4vLyBcdHJldHVybiAvXlxccypjbGFzc1xccysvLnRlc3QoIHZhbHVlLnRyaW0oKSApO1xuLy8gfTtcblxuLy8gYWNjb3JkaW5nbHkgdG8gdGhlIGdpc3QgZnJvbSBoZXJlOlxuLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vd2VudG91dC9lYTNhZmU5YzgyMmE2YjZlZjMyZjllNGYzZTk4YjFiYVxuY29uc3QgaXNDbGFzcyA9IChmbjogQ29uc3RydWN0SGFuZGxlcikgPT4ge1xuXHRcblx0Y29uc3Qgc3RyID0gU3RyaW5nKGZuKTtcblx0cmV0dXJuIHN0ci5pbmRleE9mKCdjbGFzcyAnKSA9PT0gMDtcblxuXHQvKlxuXG5cdC8vIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgZm4gZm9yIHR5cGVvZlxuXHQvLyBiZWNhdXNlIG9mIG90aGVyIGNoZWNrcyBtYWRlIGJlZm9yZVxuXHQvLyBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG5cdC8vIFx0cmV0dXJuIGZhbHNlO1xuXHQvLyB9XG5cblx0Ly8gc2VlbWluZ2x5XG5cdC8vIGNsYXNzIHByb3RvdHlwZSBpcyBhbHdheXMgb2JqZWN0XG5cdGlmICghKGZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIE9iamVjdCkpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Ly8gYnV0IG9ubHkgaWYgbm90IGF1Z21lbnRlZFxuXG5cdC8vIGNsYXNzIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBjYW5ub3QgYmUgcmUtZGVmaW5lZCAodXN1YWxseSlcblx0Ly8gYnV0IGZvciBmdW5jdGlvbnMgdXNlciBtYXkgcmUtYXNzaWduIGl0IGVhc2lseVxuXHQvLyBqdXN0IGFzc2lnbmluZyB0aGUgd2F5IC5wcm90b3R5cGUgPSB7fVxuXHQvLyBhbmQgdGhleSA5OS45JSBkbyB0aGlzLCBjYXVzZSBub2JvZHkgY2FyZXNcblx0Ly8gYnV0IHdlIGFyZSBjaGVja2luZyBpZiB0aGlzIGlzIGNsYXNzLCBzbyBpdCB3b3JrcyAuLi5cblx0aWYgKGZuLnByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gZm4pIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBhbmQgdGhlIG1vc3QgdW5rbm93biB0aGluZyBpcyB0aGF0LFxuXHQvLyBjYXVzZSBmb3IgZnVuY3Rpb25zIGl0IGl0IHdyaXRlYWJsZSApKSlcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cblx0cmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGZuLCAncHJvdG90eXBlJykhLndyaXRhYmxlID09PSBmYWxzZTtcblxuXHQqL1xufTtcblxuY29uc3QgbWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlID0gKFxuXHRUeXBlTmFtZTogc3RyaW5nLFxuXHRFcnJvck1vZGlmaWNhdG9yID0gZnVuY3Rpb24gKCkgeyB9XG4pOiBNbmVtb25pY2FDb25zdHJ1Y3RvciA9PiB7XG5cblx0Y29uc3QgbW9kaWZpY2F0b3JCb2R5ID0gY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5KFR5cGVOYW1lKTtcblxuXHQvLyBDcmVhdGlvbkhhbmRsZXIgaXMgbm93IGRlZmluZWQgbG9jYWxseSBpbiBhcGkvdHlwZXMvaW5kZXgudHNcblx0Y29uc3QgbW9kaWZpY2F0b3JUeXBlID0gbW9kaWZpY2F0b3JCb2R5KFxuXHRcdEVycm9yTW9kaWZpY2F0b3IsXG5cdFx0Q3JlYXRpb25IYW5kbGVyLFxuXHRcdFN5bWJvbENvbnN0cnVjdG9yTmFtZVxuXHQpO1xuXG5cdGNvbnN0IHJlc3VsdCA9IG1vZGlmaWNhdG9yVHlwZSgpO1xuXHRyZXR1cm4gcmVzdWx0IGFzIE1uZW1vbmljYUNvbnN0cnVjdG9yO1xuXG59O1xuXG5cbi8vIFRPRE86IC52YWx1ZU9mKCksIC50b1N0cmluZygpID8/P1xuY29uc3QgcmVmbGVjdFByaW1pdGl2ZVdyYXBwZXJzID0gKF90aGlzQXJnOiB1bmtub3duKSA9PiB7XG5cdGxldCB0aGlzQXJnOiBvYmplY3QgPSBfdGhpc0FyZyBhcyBvYmplY3Q7XG5cblx0aWYgKF90aGlzQXJnID09PSBudWxsKSB7XG5cdFx0dGhpc0FyZyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdFx0b2RwKFxuXHRcdFx0dGhpc0FyZyxcblx0XHRcdFN5bWJvbC50b1ByaW1pdGl2ZSxcblx0XHRcdHtcblx0XHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzQXJnO1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cblx0aWYgKFxuXHRcdF90aGlzQXJnIGluc3RhbmNlb2YgTnVtYmVyIHx8XG5cdFx0X3RoaXNBcmcgaW5zdGFuY2VvZiBCb29sZWFuIHx8XG5cdFx0X3RoaXNBcmcgaW5zdGFuY2VvZiBTdHJpbmdcblx0KSB7XG5cdFx0b2RwKFxuXHRcdFx0dGhpc0FyZyxcblx0XHRcdFN5bWJvbC50b1ByaW1pdGl2ZSxcblx0XHRcdHtcblx0XHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIChfdGhpc0FyZyBhcyBTdHJpbmcgfCBOdW1iZXIgfCBCb29sZWFuKS52YWx1ZU9mKCk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdCk7XG5cdH1cblxuXHRyZXR1cm4gdGhpc0FyZztcbn07XG5cbmNvbnN0IFR5cGVzVXRpbHMgPSB7XG5cdGlzQ2xhc3MsXG5cdGNoZWNrUHJvdG8sXG5cdGdldFR5cGVDaGVja2VyLFxuXHRnZXRUeXBlU3BsaXRQYXRoLFxuXHRnZXRFeGlzdGVudEFzeW5jU3RhY2ssXG5cdGNoZWNrVHlwZU5hbWUsXG5cdGZpbmRTdWJUeXBlRnJvbVBhcmVudCxcblx0bWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlLFxuXHRyZWZsZWN0UHJpbWl0aXZlV3JhcHBlcnMsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUeXBlc1V0aWxzO1xuIl19
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7O0FBRWIsK0NBQTRDO0FBQzVDLHFEQUF1RDtBQUN2RCx5RUFBc0U7QUFFdEUsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsU0FBUyxFQUNULFNBQVMsR0FDVCxHQUFHLHFCQUFTLENBQUM7QUFFZCxNQUFNLEVBQUUscUJBQXFCLEdBQUcsR0FBRyxvQkFBVyxDQUFDO0FBRS9DLDBDQUV3QjtBQUd4QixtSEFBaUg7QUFJMUcsTUFBTSxlQUFlLEdBQUcsVUFBMkQsa0JBQTJCO0lBQ3BILE9BQU8sa0JBQWtCLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRlcsUUFBQSxlQUFlLG1CQUUxQjtBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7SUFDckMsSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDckUsQ0FBQztBQUNGLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO0lBQzNDLE1BQU0sTUFBTSxHQUFZLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1FBRTVDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBR0QsSUFBSSxDQUFDLFFBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFHRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUlyRSxNQUFNLFdBQVcsR0FB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Q0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLE9BQU87SUFDUCxVQUFVO0lBQ1YsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLHFCQUFxQjtJQUNyQix3QkFBd0I7SUFDeEIsd0JBQXdCO0NBQ3hCLENBQUM7QUFFRixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5pbXBvcnQgeyBjb2xsZWN0Q29uc3RydWN0b3JzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sbGVjdENvbnN0cnVjdG9ycyc7XG5cbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsXG5cdE1ORU1PTklDQSxcblx0TU5FTU9TWU5FLFxufSA9IGNvbnN0YW50cztcblxuY29uc3QgeyBXUk9OR19UWVBFX0RFRklOSVRJT04sIH0gPSBFcnJvcnNUeXBlcztcblxuaW1wb3J0IHtcblx0X2dldFByb3BzLCBQcm9wcyBcbn0gZnJvbSAnLi4vdHlwZXMvUHJvcHMnO1xuaW1wb3J0IHR5cGUgeyBNbmVtb25pY2FDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSwgeyBDb25zdHJ1Y3RIYW5kbGVyIH0gZnJvbSAnLi4vdHlwZXMvY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5JztcblxuLy8gQ3JlYXRpb25IYW5kbGVyIC0gaGFuZGxlcyBjb25zdHJ1Y3RvciByZXR1cm4gdmFsdWVzXG4vLyBNb3ZlZCB0byBhcGkvdHlwZXMvaW5kZXgudHMgYXMgcGVyIHJlZmFjdG9yaW5nIHBsYW5cbmV4cG9ydCBjb25zdCBDcmVhdGlvbkhhbmRsZXIgPSBmdW5jdGlvbiAodGhpczogb2JqZWN0ICYgeyBjb25zdHJ1Y3RvcjogTmV3YWJsZUZ1bmN0aW9uIH0sIGNvbnN0cnVjdGlvbkFuc3dlcjogdW5rbm93bikge1xuXHRyZXR1cm4gY29uc3RydWN0aW9uQW5zd2VyO1xufTtcblxuY29uc3QgY2hlY2tQcm90byA9IChwcm90bzogdW5rbm93bikgPT4ge1xuXHRpZiAoIShwcm90byBpbnN0YW5jZW9mIE9iamVjdCkpIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCdleHBlY3QgcHJvdG90eXBlIHRvIGJlIGFuIG9iamVjdCcpO1xuXHR9XG59O1xuXG5jb25zdCBnZXRUeXBlQ2hlY2tlciA9IChUeXBlTmFtZTogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHNlZWtlcjogdW5rbm93biA9IChpbnN0YW5jZTogb2JqZWN0KSA9PiB7XG5cblx0XHRpZiAodHlwZW9mIGluc3RhbmNlICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdCBcblx0XHRpZiAoIWluc3RhbmNlIS5jb25zdHJ1Y3Rvcikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHQgXG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciBJJ20gdG9vIGxhenkgZm9yIHRoYXRcblx0XHRpZiAoUmVmbGVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZSkuY29uc3RydWN0b3IubmFtZSA9PT0gJ1Byb21pc2UnKSB7XG5cdFx0XHQvLyBpZiAoIGluc3RhbmNlIGluc3RhbmNlb2YgUHJvbWlzZSApIHtcblx0XHRcdCBcblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgSSdtIHRvbyBsYXp5IGZvciB0aGF0XG5cdFx0XHRjb25zdCBjaGVja1Jlc3VsdCA9IGluc3RhbmNlWyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgXSA9PT0gVHlwZU5hbWU7XG5cdFx0XHRyZXR1cm4gY2hlY2tSZXN1bHQ7XG5cdFx0fVxuXG5cdFx0Y29uc3QgY29uc3RydWN0b3JzID0gY29sbGVjdENvbnN0cnVjdG9ycyhpbnN0YW5jZSkgYXMgUmVjb3JkPHN0cmluZywgbmV3ICgpID0+IHVua25vd24+O1xuXHRcdCBcblx0XHRjb25zdCBjb25zdHJ1Y3RvclJlc3VsdCA9IGNvbnN0cnVjdG9yc1sgVHlwZU5hbWUgXSB8fCBmYWxzZTtcblx0XHRyZXR1cm4gY29uc3RydWN0b3JSZXN1bHQ7XG5cblx0fTtcblx0cmV0dXJuIHNlZWtlcjtcbn07XG5cbmNvbnN0IGdldFR5cGVTcGxpdFBhdGggPSAocGF0aDogc3RyaW5nKSA9PiB7XG5cdGNvbnN0IHNwbGl0ID0gcGF0aFxuXHRcdC8vIGJlYXV0aWZ1bGwgbmFtZXNcblx0XHQucmVwbGFjZShcblx0XHRcdC9cXG58XFx0fCAvZyxcblx0XHRcdCcnXG5cdFx0KVxuXHRcdC5yZXBsYWNlKFxuXHRcdFx0L1xcWyhcXHcrKVxcXS9nLFxuXHRcdFx0Jy4kMSdcblx0XHQpXG5cdFx0LnJlcGxhY2UoXG5cdFx0XHQvXlxcLi8sXG5cdFx0XHQnJ1xuXHRcdClcblx0XHQuc3BsaXQoL1xcLnxcXC98Oi8pO1xuXHRyZXR1cm4gc3BsaXQ7XG59O1xuXG5leHBvcnQgdHlwZSBhc3luY1N0YWNrID0ge1xuXHRfX3N0YWNrX18/OiBzdHJpbmdcblx0X190eXBlX186IHtcblx0XHRpc1N1YlR5cGU6IGJvb2xlYW5cblx0fVxuXHRwYXJlbnQ6ICgpID0+IGFzeW5jU3RhY2tcbn1cblxuY29uc3QgZ2V0RXhpc3RlbnRBc3luY1N0YWNrID0gKGV4aXN0ZW50SW5zdGFuY2U6IGFzeW5jU3RhY2spOiB1bmtub3duID0+IHtcblxuXHRjb25zdCBzdGFjayA9IFtdO1xuXHRsZXQgcHJvdG8gPSBleGlzdGVudEluc3RhbmNlO1xuXG5cdHdoaWxlIChwcm90bykge1xuXG5cdFx0Y29uc3QgcHJvcHMgPSBfZ2V0UHJvcHMocHJvdG8pIGFzIFByb3BzO1xuXG5cdFx0aWYgKCFwcm9wcy5fX3N0YWNrX18pIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNvbnN0IHBzdGFjayA9IHByb3BzXG5cdFx0XHQuX19zdGFja19fXG5cdFx0XHQuc3BsaXQoJ1xcbicpXG5cdFx0XHQucmVkdWNlKFxuXHRcdFx0XHQoYXJyOiBzdHJpbmdbXSwgbGluZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGxpbmUubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRhcnIucHVzaChsaW5lKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGFycjtcblx0XHRcdFx0fSxcblx0XHRcdFx0W11cblx0XHRcdCk7XG5cblx0XHRwcm90byA9IHByb3RvLnBhcmVudCgpO1xuXG5cdFx0Y29uc3QgcHJvdG9Qcm9wcyA9IF9nZXRQcm9wcyhwcm90bykgYXMgUHJvcHM7XG5cblx0XHRpZiAocHJvdG8gJiYgcHJvdG9Qcm9wcyAmJiBwcm90b1Byb3BzLl9fdHlwZV9fKSB7XG5cblx0XHRcdGlmIChwcm90b1Byb3BzLl9fdHlwZV9fLmlzU3ViVHlwZSkge1xuXHRcdFx0XHRzdGFjay5wdXNoKC4uLnBzdGFjay5zbGljZShcblx0XHRcdFx0XHQwLFxuXHRcdFx0XHRcdDFcblx0XHRcdFx0KSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzdGFjay5wdXNoKC4uLnBzdGFjayk7XG5cdFx0XHR9XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0c3RhY2sucHVzaCguLi5wc3RhY2spO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHN0YWNrO1xuXG59O1xuXG5jb25zdCBmb3JiaWRkZW5OYW1lcyA9IFsgTU5FTU9OSUNBLCBNTkVNT1NZTkUgXTtcblxuY29uc3QgY2hlY2tUeXBlTmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IHtcblxuXHRpZiAoIW5hbWUubGVuZ3RoKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignVHlwZU5hbWUgbXVzdCBub3QgYmUgZW1wdHknKTtcblx0fVxuXG5cdGlmIChuYW1lWyAwIF0gIT09IG5hbWVbIDAgXS50b1VwcGVyQ2FzZSgpKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignVHlwZU5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggVXBwZXJjYXNlIExldHRlcicpO1xuXHR9XG5cblx0aWYgKGZvcmJpZGRlbk5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTignVHlwZU5hbWUgb2YgcmVzZXJ2ZWQga2V5d29yZCcpO1xuXHR9XG5cbn07XG5cbmV4cG9ydCB0eXBlIHBhcmVudFN1YiA9IHtcblx0VHlwZU5hbWU6IHN0cmluZztcblx0X190eXBlX186IHtcblx0XHRzdWJ0eXBlczogTWFwPHN0cmluZywgcGFyZW50U3ViPlxuXHR9XG5cdF9fcGFyZW50X186IHBhcmVudFN1YlxufVxuXG5jb25zdCBmaW5kU3ViVHlwZUZyb21QYXJlbnQgPSAoaW5zdGFuY2U6IHBhcmVudFN1YiB8IG9iamVjdCB8IHVuZGVmaW5lZCwgc3ViVHlwZTogc3RyaW5nKTogcGFyZW50U3ViIHwgbnVsbCA9PiB7XG5cdGxldCBzdWJ0eXBlID0gbnVsbDtcblxuXHRpZiAoIWluc3RhbmNlKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0aWYgKHByb3BzKSB7XG5cdFx0aWYocHJvcHMuX190eXBlX18uc3VidHlwZXMuaGFzKHN1YlR5cGUpKSB7XG5cdFx0XHRjb25zdCBfc3VidHlwZSA9IHByb3BzLl9fdHlwZV9fLnN1YnR5cGVzLmdldChzdWJUeXBlKTtcblx0XHRcdHN1YnR5cGUgPSBfc3VidHlwZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3VidHlwZSA9IGZpbmRTdWJUeXBlRnJvbVBhcmVudChcblx0XHRcdFx0cHJvcHMuX19wYXJlbnRfXyxcblx0XHRcdFx0c3ViVHlwZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0IFxuXHQvLyBAdHMtZXhwZWN0LWVycm9yIEknbSB0b28gbGF6eSBmb3IgdGhhdFxuXHRyZXR1cm4gc3VidHlwZTtcbn07XG5cbi8vIGNvbnN0IGlzQ2xhc3MgPSAoIGZ1bmN0aW9uUG9pbnRlcjogQ2FsbGFibGVGdW5jdGlvbiApID0+IHtcbi8vIFx0Y29uc3QgdmFsdWUgPSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCggZnVuY3Rpb25Qb2ludGVyICk7XG4vLyBcdHJldHVybiAvXlxccypjbGFzc1xccysvLnRlc3QoIHZhbHVlLnRyaW0oKSApO1xuLy8gfTtcblxuLy8gYWNjb3JkaW5nbHkgdG8gdGhlIGdpc3QgZnJvbSBoZXJlOlxuLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vd2VudG91dC9lYTNhZmU5YzgyMmE2YjZlZjMyZjllNGYzZTk4YjFiYVxuY29uc3QgaXNDbGFzcyA9IChmbjogQ29uc3RydWN0SGFuZGxlcikgPT4ge1xuXHRcblx0Y29uc3Qgc3RyID0gU3RyaW5nKGZuKTtcblx0Y29uc3QgcmVzdWx0ID0gc3RyLmluZGV4T2YoJ2NsYXNzICcpID09PSAwO1xuXHRyZXR1cm4gcmVzdWx0O1xuXG5cdC8qXG5cblx0Ly8gbm90IG5lY2Vzc2FyeSB0byBjaGVjayBmbiBmb3IgdHlwZW9mXG5cdC8vIGJlY2F1c2Ugb2Ygb3RoZXIgY2hlY2tzIG1hZGUgYmVmb3JlXG5cdC8vIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcblx0Ly8gXHRyZXR1cm4gZmFsc2U7XG5cdC8vIH1cblxuXHQvLyBzZWVtaW5nbHlcblx0Ly8gY2xhc3MgcHJvdG90eXBlIGlzIGFsd2F5cyBvYmplY3Rcblx0aWYgKCEoZm4ucHJvdG90eXBlIGluc3RhbmNlb2YgT2JqZWN0KSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHQvLyBidXQgb25seSBpZiBub3QgYXVnbWVudGVkXG5cblx0Ly8gY2xhc3MgcHJvdG90eXBlLmNvbnN0cnVjdG9yIGNhbm5vdCBiZSByZS1kZWZpbmVkICh1c3VhbGx5KVxuXHQvLyBidXQgZm9yIGZ1bmN0aW9ucyB1c2VyIG1heSByZS1hc3NpZ24gaXQgZWFzaWx5XG5cdC8vIGp1c3QgYXNzaWduaW5nIHRoZSB3YXkgLnByb3RvdHlwZSA9IHt9XG5cdC8vIGFuZCB0aGV5IDk5LjklIGRvIHRoaXMsIGNhdXNlIG5vYm9keSBjYXJlc1xuXHQvLyBidXQgd2UgYXJlIGNoZWNraW5nIGlmIHRoaXMgaXMgY2xhc3MsIHNvIGl0IHdvcmtzIC4uLlxuXHRpZiAoZm4ucHJvdG90eXBlLmNvbnN0cnVjdG9yICE9PSBmbikge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIGFuZCB0aGUgbW9zdCB1bmtub3duIHRoaW5nIGlzIHRoYXQsXG5cdC8vIGNhdXNlIGZvciBmdW5jdGlvbnMgaXQgaXQgd3JpdGVhYmxlICkpKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXHRyZXR1cm4gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm4sICdwcm90b3R5cGUnKSEud3JpdGFibGUgPT09IGZhbHNlO1xuXG5cdCovXG59O1xuXG5jb25zdCBtYWtlRXJyb3JNb2RpZmljYXRvclR5cGUgPSAoXG5cdFR5cGVOYW1lOiBzdHJpbmcsXG5cdEVycm9yTW9kaWZpY2F0b3IgPSBmdW5jdGlvbiAoKSB7IH1cbik6IE1uZW1vbmljYUNvbnN0cnVjdG9yID0+IHtcblxuXHRjb25zdCBtb2RpZmljYXRvckJvZHkgPSBjb21waWxlTmV3TW9kaWZpY2F0b3JGdW5jdGlvbkJvZHkoVHlwZU5hbWUpO1xuXG5cdC8vIENyZWF0aW9uSGFuZGxlciBpcyBub3cgZGVmaW5lZCBsb2NhbGx5IGluIGFwaS90eXBlcy9pbmRleC50c1xuXHRjb25zdCBtb2RpZmljYXRvclR5cGUgPSBtb2RpZmljYXRvckJvZHkoXG5cdFx0RXJyb3JNb2RpZmljYXRvcixcblx0XHRDcmVhdGlvbkhhbmRsZXIsXG5cdFx0U3ltYm9sQ29uc3RydWN0b3JOYW1lXG5cdCk7XG5cblx0Y29uc3QgcmVzdWx0ID0gbW9kaWZpY2F0b3JUeXBlKCk7XG5cdGNvbnN0IGNvbnN0cnVjdG9yUmVzdWx0ID0gcmVzdWx0IGFzIE1uZW1vbmljYUNvbnN0cnVjdG9yO1xuXHRyZXR1cm4gY29uc3RydWN0b3JSZXN1bHQ7XG5cbn07XG5cblxuLy8gVE9ETzogLnZhbHVlT2YoKSwgLnRvU3RyaW5nKCkgPz8/XG5jb25zdCByZWZsZWN0UHJpbWl0aXZlV3JhcHBlcnMgPSAoX3RoaXNBcmc6IHVua25vd24pID0+IHtcblx0bGV0IHRoaXNBcmc6IG9iamVjdCA9IF90aGlzQXJnIGFzIG9iamVjdDtcblxuXHRpZiAoX3RoaXNBcmcgPT09IG51bGwpIHtcblx0XHR0aGlzQXJnID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblx0XHRvZHAoXG5cdFx0XHR0aGlzQXJnLFxuXHRcdFx0U3ltYm9sLnRvUHJpbWl0aXZlLFxuXHRcdFx0e1xuXHRcdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRcdGNvbnN0IHJlc3VsdCA9ICgpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpc0FyZztcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cblx0aWYgKFxuXHRcdF90aGlzQXJnIGluc3RhbmNlb2YgTnVtYmVyIHx8XG5cdFx0X3RoaXNBcmcgaW5zdGFuY2VvZiBCb29sZWFuIHx8XG5cdFx0X3RoaXNBcmcgaW5zdGFuY2VvZiBTdHJpbmdcblx0KSB7XG5cdFx0b2RwKFxuXHRcdFx0dGhpc0FyZyxcblx0XHRcdFN5bWJvbC50b1ByaW1pdGl2ZSxcblx0XHRcdHtcblx0XHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0XHRjb25zdCByZXN1bHQgPSAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCB2YWx1ZVJlc3VsdCA9IChfdGhpc0FyZyBhcyBTdHJpbmcgfCBOdW1iZXIgfCBCb29sZWFuKS52YWx1ZU9mKCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWVSZXN1bHQ7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0KTtcblx0fVxuXG5cdHJldHVybiB0aGlzQXJnO1xufTtcblxuY29uc3QgVHlwZXNVdGlscyA9IHtcblx0aXNDbGFzcyxcblx0Y2hlY2tQcm90byxcblx0Z2V0VHlwZUNoZWNrZXIsXG5cdGdldFR5cGVTcGxpdFBhdGgsXG5cdGdldEV4aXN0ZW50QXN5bmNTdGFjayxcblx0Y2hlY2tUeXBlTmFtZSxcblx0ZmluZFN1YlR5cGVGcm9tUGFyZW50LFxuXHRtYWtlRXJyb3JNb2RpZmljYXRvclR5cGUsXG5cdHJlZmxlY3RQcmltaXRpdmVXcmFwcGVycyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFR5cGVzVXRpbHM7XG4iXX0=
|