occam-verify-cli 1.0.633 → 1.0.635
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/lib/context/nominal.js +9 -1
- package/lib/element/conclusion.js +156 -19
- package/lib/element/deduction.js +156 -19
- package/lib/element/hypothesis.js +158 -21
- package/lib/element/section.js +31 -18
- package/lib/element/subDerivation.js +170 -15
- package/lib/element/subproof.js +194 -18
- package/package.json +4 -4
- package/src/context/nominal.js +8 -0
- package/src/element/conclusion.js +3 -1
- package/src/element/deduction.js +3 -1
- package/src/element/hypothesis.js +3 -1
- package/src/element/section.js +1 -1
- package/src/element/subDerivation.js +8 -7
- package/src/element/subproof.js +9 -7
package/lib/context/nominal.js
CHANGED
|
@@ -12,6 +12,7 @@ var _occamlanguages = require("occam-languages");
|
|
|
12
12
|
var _occamnominal = require("occam-nominal");
|
|
13
13
|
var _lexer = /*#__PURE__*/ _interop_require_default(require("../nominal/lexer"));
|
|
14
14
|
var _parser = /*#__PURE__*/ _interop_require_default(require("../nominal/parser"));
|
|
15
|
+
var _metaTypes = require("../metaTypes");
|
|
15
16
|
function _assert_this_initialized(self) {
|
|
16
17
|
if (self === void 0) {
|
|
17
18
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -116,6 +117,13 @@ var NominalContext = /*#__PURE__*/ function(Context) {
|
|
|
116
117
|
value: function getParser() {
|
|
117
118
|
return this.parser;
|
|
118
119
|
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
key: "findMetaTypeByMetaTypeName",
|
|
123
|
+
value: function findMetaTypeByMetaTypeName(metaTypeName) {
|
|
124
|
+
var metaType = (0, _metaTypes.findMetaTypeByMetaTypeName)(metaTypeName);
|
|
125
|
+
return metaType;
|
|
126
|
+
}
|
|
119
127
|
}
|
|
120
128
|
], [
|
|
121
129
|
{
|
|
@@ -131,4 +139,4 @@ var NominalContext = /*#__PURE__*/ function(Context) {
|
|
|
131
139
|
var nominalContext = NominalContext.fromNothing();
|
|
132
140
|
var _default = nominalContext;
|
|
133
141
|
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L25vbWluYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbm9taW5hbFwiO1xuXG5pbXBvcnQgTm9taW5hbExleGVyIGZyb20gXCIuLi9ub21pbmFsL2xleGVyXCI7XG5pbXBvcnQgTm9taW5hbFBhcnNlciBmcm9tIFwiLi4vbm9taW5hbC9wYXJzZXJcIjtcblxuaW1wb3J0IHsgZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUgfSBmcm9tIFwiLi4vbWV0YVR5cGVzXCI7XG5cbmNvbnN0IHsgbm9taW5hbExleGVyRnJvbU5vdGhpbmcgfSA9IGxleGVyc1V0aWxpdGllcyxcbiAgICAgIHsgbm9taW5hbFBhcnNlckZyb21Ob3RoaW5nIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5jb25zdCBub21pbmFsTGV4ZXIgPSBub21pbmFsTGV4ZXJGcm9tTm90aGluZyhOb21pbmFsTGV4ZXIpLFxuICAgICAgbm9taW5hbFBhcnNlciA9IG5vbWluYWxQYXJzZXJGcm9tTm90aGluZyhOb21pbmFsUGFyc2VyKTsgLy8vXG5cbmNsYXNzIE5vbWluYWxDb250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGxleGVyLCBwYXJzZXIpIHtcbiAgICBzdXBlcihjb250ZXh0KTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgfVxuXG4gIGdldExleGVyKCkge1xuICAgIHJldHVybiB0aGlzLmxleGVyO1xuICB9XG5cbiAgZ2V0UGFyc2VyKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlcjtcbiAgfVxuXG4gIGZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lKG1ldGFUeXBlTmFtZSkge1xuICAgIGNvbnN0IG1ldGFUeXBlID0gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgIHJldHVybiBtZXRhVHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gbnVsbCxcbiAgICAgICAgICBsZXhlciA9IG5vbWluYWxMZXhlciwgLy8vXG4gICAgICAgICAgcGFyc2VyID0gbm9taW5hbFBhcnNlciwgLy8vXG4gICAgICAgICAgbm9taW5hbENvbnRleHQgPSBDb250ZXh0LmZyb21Ob3RoaW5nKE5vbWluYWxDb250ZXh0LCBsZXhlciwgcGFyc2VyLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBub21pbmFsQ29udGV4dDtcbiAgfVxufVxuXG5jb25zdCBub21pbmFsQ29udGV4dCA9IE5vbWluYWxDb250ZXh0LmZyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vbWluYWxDb250ZXh0O1xuIl0sIm5hbWVzIjpbIm5vbWluYWxMZXhlckZyb21Ob3RoaW5nIiwibGV4ZXJzVXRpbGl0aWVzIiwibm9taW5hbFBhcnNlckZyb21Ob3RoaW5nIiwicGFyc2Vyc1V0aWxpdGllcyIsIm5vbWluYWxMZXhlciIsIk5vbWluYWxMZXhlciIsIm5vbWluYWxQYXJzZXIiLCJOb21pbmFsUGFyc2VyIiwiTm9taW5hbENvbnRleHQiLCJjb250ZXh0IiwibGV4ZXIiLCJwYXJzZXIiLCJnZXRMZXhlciIsImdldFBhcnNlciIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lIiwibWV0YVR5cGVOYW1lIiwibWV0YVR5cGUiLCJmcm9tTm90aGluZyIsIm5vbWluYWxDb250ZXh0IiwiQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBa0RBOzs7ZUFBQTs7OzhCQWhEd0I7NEJBQzBCOzREQUV6Qjs2REFDQzt5QkFFaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0MsSUFBTSxBQUFFQSwwQkFBNEJDLDZCQUFlLENBQTNDRCx5QkFDRixBQUFFRSwyQkFBNkJDLDhCQUFnQixDQUE3Q0Q7QUFFUixJQUFNRSxlQUFlSix3QkFBd0JLLGNBQVksR0FDbkRDLGdCQUFnQkoseUJBQXlCSyxlQUFhLEdBQUcsR0FBRztBQUVsRSxJQUFBLEFBQU1DLCtCQUFOO2NBQU1BO2FBQUFBLGVBQ1FDLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxNQUFNO2dDQUQ5Qkg7O2dCQUVGLGtCQUZFQTtZQUVJQzs7UUFFTixNQUFLQyxLQUFLLEdBQUdBO1FBQ2IsTUFBS0MsTUFBTSxHQUFHQTs7O2tCQUxaSDs7WUFRSkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixLQUFLO1lBQ25COzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixNQUFNO1lBQ3BCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLDJCQUEyQkMsWUFBWTtnQkFDckMsSUFBTUMsV0FBV0YsSUFBQUEscUNBQTBCLEVBQUNDO2dCQUU1QyxPQUFPQztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BO2dCQUNMLElBQU1SLFVBQVUsTUFDVkMsUUFBUU4sY0FDUk8sU0FBU0wsZUFDVFksaUJBQWlCQyx1QkFBTyxDQUFDRixXQUFXLENBMUJ4Q1QsZ0JBMEJ5REUsT0FBT0MsUUFBUUY7Z0JBRTFFLE9BQU9TO1lBQ1Q7OztXQTdCSVY7RUFBdUJXLHVCQUFPO0FBZ0NwQyxJQUFNRCxpQkFBaUJWLGVBQWVTLFdBQVc7SUFFakQsV0FBZUMifQ==
|
|
@@ -18,6 +18,35 @@ function _assert_this_initialized(self) {
|
|
|
18
18
|
}
|
|
19
19
|
return self;
|
|
20
20
|
}
|
|
21
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
22
|
+
try {
|
|
23
|
+
var info = gen[key](arg);
|
|
24
|
+
var value = info.value;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
reject(error);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (info.done) {
|
|
30
|
+
resolve(value);
|
|
31
|
+
} else {
|
|
32
|
+
Promise.resolve(value).then(_next, _throw);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function _async_to_generator(fn) {
|
|
36
|
+
return function() {
|
|
37
|
+
var self = this, args = arguments;
|
|
38
|
+
return new Promise(function(resolve, reject) {
|
|
39
|
+
var gen = fn.apply(self, args);
|
|
40
|
+
function _next(value) {
|
|
41
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
42
|
+
}
|
|
43
|
+
function _throw(err) {
|
|
44
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
45
|
+
}
|
|
46
|
+
_next(undefined);
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
}
|
|
21
50
|
function _call_super(_this, derived, args) {
|
|
22
51
|
derived = _get_prototype_of(derived);
|
|
23
52
|
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
@@ -144,6 +173,97 @@ function _is_native_reflect_construct() {
|
|
|
144
173
|
return !!result;
|
|
145
174
|
})();
|
|
146
175
|
}
|
|
176
|
+
function _ts_generator(thisArg, body) {
|
|
177
|
+
var f, y, t, _ = {
|
|
178
|
+
label: 0,
|
|
179
|
+
sent: function() {
|
|
180
|
+
if (t[0] & 1) throw t[1];
|
|
181
|
+
return t[1];
|
|
182
|
+
},
|
|
183
|
+
trys: [],
|
|
184
|
+
ops: []
|
|
185
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
186
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
187
|
+
return this;
|
|
188
|
+
}), g;
|
|
189
|
+
function verb(n) {
|
|
190
|
+
return function(v) {
|
|
191
|
+
return step([
|
|
192
|
+
n,
|
|
193
|
+
v
|
|
194
|
+
]);
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
function step(op) {
|
|
198
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
199
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
200
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
201
|
+
if (y = 0, t) op = [
|
|
202
|
+
op[0] & 2,
|
|
203
|
+
t.value
|
|
204
|
+
];
|
|
205
|
+
switch(op[0]){
|
|
206
|
+
case 0:
|
|
207
|
+
case 1:
|
|
208
|
+
t = op;
|
|
209
|
+
break;
|
|
210
|
+
case 4:
|
|
211
|
+
_.label++;
|
|
212
|
+
return {
|
|
213
|
+
value: op[1],
|
|
214
|
+
done: false
|
|
215
|
+
};
|
|
216
|
+
case 5:
|
|
217
|
+
_.label++;
|
|
218
|
+
y = op[1];
|
|
219
|
+
op = [
|
|
220
|
+
0
|
|
221
|
+
];
|
|
222
|
+
continue;
|
|
223
|
+
case 7:
|
|
224
|
+
op = _.ops.pop();
|
|
225
|
+
_.trys.pop();
|
|
226
|
+
continue;
|
|
227
|
+
default:
|
|
228
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
229
|
+
_ = 0;
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
233
|
+
_.label = op[1];
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
237
|
+
_.label = t[1];
|
|
238
|
+
t = op;
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
if (t && _.label < t[2]) {
|
|
242
|
+
_.label = t[2];
|
|
243
|
+
_.ops.push(op);
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
if (t[2]) _.ops.pop();
|
|
247
|
+
_.trys.pop();
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
op = body.call(thisArg, _);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
op = [
|
|
253
|
+
6,
|
|
254
|
+
e
|
|
255
|
+
];
|
|
256
|
+
y = 0;
|
|
257
|
+
} finally{
|
|
258
|
+
f = t = 0;
|
|
259
|
+
}
|
|
260
|
+
if (op[0] & 5) throw op[1];
|
|
261
|
+
return {
|
|
262
|
+
value: op[0] ? op[1] : void 0,
|
|
263
|
+
done: true
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
}
|
|
147
267
|
var _Conclusion;
|
|
148
268
|
var _default = (0, _elements.define)((_Conclusion = /*#__PURE__*/ function(Element) {
|
|
149
269
|
_inherits(Conclusion, Element);
|
|
@@ -175,25 +295,42 @@ var _default = (0, _elements.define)((_Conclusion = /*#__PURE__*/ function(Eleme
|
|
|
175
295
|
{
|
|
176
296
|
key: "verify",
|
|
177
297
|
value: function verify(context) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
298
|
+
return _async_to_generator(function() {
|
|
299
|
+
var _this, verifies, conclusionString;
|
|
300
|
+
return _ts_generator(this, function(_state) {
|
|
301
|
+
switch(_state.label){
|
|
302
|
+
case 0:
|
|
303
|
+
_this = this;
|
|
304
|
+
verifies = false;
|
|
305
|
+
return [
|
|
306
|
+
4,
|
|
307
|
+
this.break(context)
|
|
308
|
+
];
|
|
309
|
+
case 1:
|
|
310
|
+
_state.sent();
|
|
311
|
+
conclusionString = this.getString(); ///
|
|
312
|
+
context.trace("Verifying the '".concat(conclusionString, "' conclusion..."));
|
|
313
|
+
if (this.statement !== null) {
|
|
314
|
+
(0, _context.attempt)(function(context) {
|
|
315
|
+
var stated = true, assignments = null, statementValidates = _this.statement.validate(assignments, stated, context);
|
|
316
|
+
if (statementValidates) {
|
|
317
|
+
_this.setContext(context);
|
|
318
|
+
verifies = true;
|
|
319
|
+
}
|
|
320
|
+
}, context);
|
|
321
|
+
} else {
|
|
322
|
+
context.debug("Unable to verify the '".concat(conclusionString, "' conclusion because it is nonsense."));
|
|
323
|
+
}
|
|
324
|
+
if (verifies) {
|
|
325
|
+
context.debug("...verified the '".concat(conclusionString, "' conclusion."));
|
|
326
|
+
}
|
|
327
|
+
return [
|
|
328
|
+
2,
|
|
329
|
+
verifies
|
|
330
|
+
];
|
|
188
331
|
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
context.debug("Unable to verify the '".concat(conclusionString, "' conclusion because it is nonsense."));
|
|
192
|
-
}
|
|
193
|
-
if (verifies) {
|
|
194
|
-
context.debug("...verified the '".concat(conclusionString, "' conclusion."));
|
|
195
|
-
}
|
|
196
|
-
return verifies;
|
|
332
|
+
});
|
|
333
|
+
}).call(this);
|
|
197
334
|
}
|
|
198
335
|
},
|
|
199
336
|
{
|
|
@@ -244,4 +381,4 @@ var _default = (0, _elements.define)((_Conclusion = /*#__PURE__*/ function(Eleme
|
|
|
244
381
|
return Conclusion;
|
|
245
382
|
}(_wrap_native_super(_occamlanguages.Element)), _define_property(_Conclusion, "name", "Conclusion"), _Conclusion));
|
|
246
383
|
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
384
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbmNsdXNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgYXR0ZW1wdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgc3RhdGVtZW50RnJvbUpTT04sIHRlcm1zVG9UZXJtc0pTT04sIGZyYW1lc1RvRnJhbWVzSlNPTiwgc3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmV4cG9ydCAgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQ29uY2x1c2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRDb25jbHVzaW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29uY2x1c2lvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gY29uY2x1c2lvbk5vZGU7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IGNvbmNsdXNpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbmNsdXNpb25TdHJpbmd9JyBjb25jbHVzaW9uLi4uYCk7XG5cbiAgICBpZiAodGhpcy5zdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgICAgYXNzaWdubWVudHMgPSBudWxsLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0aGlzLnN0YXRlbWVudC52YWxpZGF0ZShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgICAgdGhpcy5zZXRDb250ZXh0KGNvbnRleHQpO1xuXG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7Y29uY2x1c2lvblN0cmluZ30nIGNvbmNsdXNpb24gYmVjYXVzZSBpdCBpcyBub25zZW5zZS5gKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb25jbHVzaW9uU3RyaW5nfScgY29uY2x1c2lvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllcztcblxuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBjb25jbHVzaW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtjb25jbHVzaW9uU3RyaW5nfScgY29uY2x1c2lvbi4uLmApO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy5zdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29uY2x1c2lvblN0cmluZ30nIGNvbmNsdXNpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGZyYW1lcyxcbiAgICAgICAgdGVybXM7XG5cbiAgICBmcmFtZXMgPSB0aGlzLmNvbnRleHQuZ2V0RnJhbWVzKCk7XG5cbiAgICB0ZXJtcyA9IHRoaXMuY29udGV4dC5nZXRUZXJtcygpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTih0aGlzLnN0YXRlbWVudCksXG4gICAgICAgICAgZnJhbWVzSlNPTiA9IGZyYW1lc1RvRnJhbWVzSlNPTihmcmFtZXMpLFxuICAgICAgICAgIHRlcm1zSlNPTiA9IHRlcm1zVG9UZXJtc0pTT04odGVybXMpO1xuXG4gICAgZnJhbWVzID0gZnJhbWVzSlNPTjsgIC8vL1xuXG4gICAgdGVybXMgPSB0ZXJtc0pTT047ICAvLy9cblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHN0YXRlbWVudEpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RhdGVtZW50LFxuICAgICAgICAgICAgZnJhbWVzLFxuICAgICAgICAgICAgdGVybXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29uY2x1c2lvblwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgc3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dCA9IGVwaGVtZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgY29uc3QgY29uY2x1c2lvbiA9IG5ldyBDb25jbHVzaW9uKGNvbnRleHQsIHN0cmluZywgbm9kZSwgc3RhdGVtZW50KTtcblxuICAgIHJldHVybiBjb25jbHVzaW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJDb25jbHVzaW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJzdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJnZXRDb25jbHVzaW9uTm9kZSIsImdldE5vZGUiLCJjb25jbHVzaW9uTm9kZSIsInZlcmlmeSIsInZlcmlmaWVzIiwiY29uY2x1c2lvblN0cmluZyIsImJyZWFrIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJhdHRlbXB0Iiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJ2YWxpZGF0ZSIsInNldENvbnRleHQiLCJkZWJ1ZyIsInVuaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50VW5pZmllcyIsInN0YXRlbWVudFN0cmluZyIsInNwZWNpZmljQ29udGV4dCIsImdldENvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInRvSlNPTiIsImZyYW1lcyIsInRlcm1zIiwiZ2V0RnJhbWVzIiwiZ2V0VGVybXMiLCJzdGF0ZW1lbnRKU09OIiwic3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OIiwiZnJhbWVzSlNPTiIsImZyYW1lc1RvRnJhbWVzSlNPTiIsInRlcm1zSlNPTiIsInRlcm1zVG9UZXJtc0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJzdGF0ZW1lbnRGcm9tSlNPTiIsImVwaGVtZXJhbENvbnRleHQiLCJjb25jbHVzaW9uIiwiRWxlbWVudCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7OzhCQU53Qjt3QkFFRDt1QkFDQztvQkFDMEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRWxHLFdBQWdCQSxJQUFBQSxnQkFBTSwrQkFBQzs7YUFBTUMsV0FDZkMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsU0FBUztnQ0FEakJKOztnQkFFekIsa0JBRnlCQTtZQUVuQkM7WUFBU0M7WUFBUUM7O1FBRXZCLE1BQUtDLFNBQVMsR0FBR0E7Ozs7O1lBR25CQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNELFNBQVM7WUFDdkI7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUgsT0FBTyxJQUFJLENBQUNJLE9BQU8sSUFDbkJDLGlCQUFpQkwsTUFBTyxHQUFHO2dCQUVqQyxPQUFPSztZQUNUOzs7WUFFTUMsS0FBQUE7bUJBQU4sU0FBTUEsT0FBT1IsT0FBTzs7K0JBQ2RTLFVBSUVDOzs7OztnQ0FKRkQsV0FBVztnQ0FFZjs7b0NBQU0sSUFBSSxDQUFDRSxLQUFLLENBQUNYOzs7Z0NBQWpCO2dDQUVNVSxtQkFBbUIsSUFBSSxDQUFDRSxTQUFTLElBQUssR0FBRztnQ0FFL0NaLFFBQVFhLEtBQUssQ0FBQyxBQUFDLGtCQUFrQyxPQUFqQkgsa0JBQWlCO2dDQUVqRCxJQUFJLElBQUksQ0FBQ1AsU0FBUyxLQUFLLE1BQU07b0NBQzNCVyxJQUFBQSxnQkFBTyxFQUFDLFNBQUNkO3dDQUNQLElBQU1lLFNBQVMsTUFDVEMsY0FBYyxNQUNkQyxxQkFBcUIsTUFBS2QsU0FBUyxDQUFDZSxRQUFRLENBQUNGLGFBQWFELFFBQVFmO3dDQUV4RSxJQUFJaUIsb0JBQW9COzRDQUN0QixNQUFLRSxVQUFVLENBQUNuQjs0Q0FFaEJTLFdBQVc7d0NBQ2I7b0NBQ0YsR0FBR1Q7Z0NBQ0wsT0FBTztvQ0FDTEEsUUFBUW9CLEtBQUssQ0FBQyxBQUFDLHlCQUF5QyxPQUFqQlYsa0JBQWlCO2dDQUMxRDtnQ0FFQSxJQUFJRCxVQUFVO29DQUNaVCxRQUFRb0IsS0FBSyxDQUFDLEFBQUMsb0JBQW9DLE9BQWpCVixrQkFBaUI7Z0NBQ3JEO2dDQUVBOztvQ0FBT0Q7Ozs7Z0JBQ1Q7Ozs7WUFFQVksS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVsQixTQUFTLEVBQUVILE9BQU87Z0JBQy9CLElBQUlzQjtnQkFFSixJQUFNQyxrQkFBa0JwQixVQUFVUyxTQUFTLElBQ3JDRixtQkFBbUIsSUFBSSxDQUFDRSxTQUFTLElBQUssR0FBRztnQkFFL0NaLFFBQVFhLEtBQUssQ0FBQyxBQUFDLGlCQUF3REgsT0FBeENhLGlCQUFnQiwwQkFBeUMsT0FBakJiLGtCQUFpQjtnQkFFeEYsSUFBTWMsa0JBQWtCeEIsU0FBVSxHQUFHO2dCQUVyQ0EsVUFBVSxJQUFJLENBQUN5QixVQUFVO2dCQUV6QixJQUFNQyxpQkFBaUIxQixTQUFVLEdBQUc7Z0JBRXBDQSxVQUFVd0IsaUJBQWtCLEdBQUc7Z0JBRS9CRixtQkFBbUIsSUFBSSxDQUFDbkIsU0FBUyxDQUFDa0IsY0FBYyxDQUFDbEIsV0FBV3VCLGdCQUFnQkY7Z0JBRTVFLElBQUlGLGtCQUFrQjtvQkFDcEJ0QixRQUFRb0IsS0FBSyxDQUFDLEFBQUMsbUJBQTBEVixPQUF4Q2EsaUJBQWdCLDBCQUF5QyxPQUFqQmIsa0JBQWlCO2dCQUM1RjtnQkFFQSxPQUFPWTtZQUNUOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLFFBQ0FDO2dCQUVKRCxTQUFTLElBQUksQ0FBQzVCLE9BQU8sQ0FBQzhCLFNBQVM7Z0JBRS9CRCxRQUFRLElBQUksQ0FBQzdCLE9BQU8sQ0FBQytCLFFBQVE7Z0JBRTdCLElBQU1DLGdCQUFnQkMsSUFBQUEsOEJBQXdCLEVBQUMsSUFBSSxDQUFDOUIsU0FBUyxHQUN2RCtCLGFBQWFDLElBQUFBLHdCQUFrQixFQUFDUCxTQUNoQ1EsWUFBWUMsSUFBQUEsc0JBQWdCLEVBQUNSO2dCQUVuQ0QsU0FBU00sWUFBYSxHQUFHO2dCQUV6QkwsUUFBUU8sV0FBWSxHQUFHO2dCQUV2QixJQUFNakMsWUFBWTZCLGVBQ1pNLE9BQU87b0JBQ0xuQyxXQUFBQTtvQkFDQXlCLFFBQUFBO29CQUNBQyxPQUFBQTtnQkFDRjtnQkFFTixPQUFPUztZQUNUOzs7O1lBSU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRXRDLE9BQU87Z0JBQzNCLElBQU1HLFlBQVlxQyxJQUFBQSx1QkFBaUIsRUFBQ0YsTUFBTXRDLFVBQ3BDRSxPQUFPLE1BQ1BELFNBQVNFLFVBQVVTLFNBQVM7Z0JBRWxDWixVQUFVeUMsa0JBQWtCLEdBQUc7Z0JBRS9CLElBQU1DLGFBQWEsSUFBSTNDLFdBQVdDLFNBQVNDLFFBQVFDLE1BQU1DO2dCQUV6RCxPQUFPdUM7WUFDVDs7OztxQkFqSDhDQyx1QkFBTyxJQXFHckQsOEJBQU9DLFFBQU8ifQ==
|
package/lib/element/deduction.js
CHANGED
|
@@ -18,6 +18,35 @@ function _assert_this_initialized(self) {
|
|
|
18
18
|
}
|
|
19
19
|
return self;
|
|
20
20
|
}
|
|
21
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
22
|
+
try {
|
|
23
|
+
var info = gen[key](arg);
|
|
24
|
+
var value = info.value;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
reject(error);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (info.done) {
|
|
30
|
+
resolve(value);
|
|
31
|
+
} else {
|
|
32
|
+
Promise.resolve(value).then(_next, _throw);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function _async_to_generator(fn) {
|
|
36
|
+
return function() {
|
|
37
|
+
var self = this, args = arguments;
|
|
38
|
+
return new Promise(function(resolve, reject) {
|
|
39
|
+
var gen = fn.apply(self, args);
|
|
40
|
+
function _next(value) {
|
|
41
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
42
|
+
}
|
|
43
|
+
function _throw(err) {
|
|
44
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
45
|
+
}
|
|
46
|
+
_next(undefined);
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
}
|
|
21
50
|
function _call_super(_this, derived, args) {
|
|
22
51
|
derived = _get_prototype_of(derived);
|
|
23
52
|
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
@@ -144,6 +173,97 @@ function _is_native_reflect_construct() {
|
|
|
144
173
|
return !!result;
|
|
145
174
|
})();
|
|
146
175
|
}
|
|
176
|
+
function _ts_generator(thisArg, body) {
|
|
177
|
+
var f, y, t, _ = {
|
|
178
|
+
label: 0,
|
|
179
|
+
sent: function() {
|
|
180
|
+
if (t[0] & 1) throw t[1];
|
|
181
|
+
return t[1];
|
|
182
|
+
},
|
|
183
|
+
trys: [],
|
|
184
|
+
ops: []
|
|
185
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
186
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
187
|
+
return this;
|
|
188
|
+
}), g;
|
|
189
|
+
function verb(n) {
|
|
190
|
+
return function(v) {
|
|
191
|
+
return step([
|
|
192
|
+
n,
|
|
193
|
+
v
|
|
194
|
+
]);
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
function step(op) {
|
|
198
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
199
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
200
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
201
|
+
if (y = 0, t) op = [
|
|
202
|
+
op[0] & 2,
|
|
203
|
+
t.value
|
|
204
|
+
];
|
|
205
|
+
switch(op[0]){
|
|
206
|
+
case 0:
|
|
207
|
+
case 1:
|
|
208
|
+
t = op;
|
|
209
|
+
break;
|
|
210
|
+
case 4:
|
|
211
|
+
_.label++;
|
|
212
|
+
return {
|
|
213
|
+
value: op[1],
|
|
214
|
+
done: false
|
|
215
|
+
};
|
|
216
|
+
case 5:
|
|
217
|
+
_.label++;
|
|
218
|
+
y = op[1];
|
|
219
|
+
op = [
|
|
220
|
+
0
|
|
221
|
+
];
|
|
222
|
+
continue;
|
|
223
|
+
case 7:
|
|
224
|
+
op = _.ops.pop();
|
|
225
|
+
_.trys.pop();
|
|
226
|
+
continue;
|
|
227
|
+
default:
|
|
228
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
229
|
+
_ = 0;
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
233
|
+
_.label = op[1];
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
237
|
+
_.label = t[1];
|
|
238
|
+
t = op;
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
if (t && _.label < t[2]) {
|
|
242
|
+
_.label = t[2];
|
|
243
|
+
_.ops.push(op);
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
if (t[2]) _.ops.pop();
|
|
247
|
+
_.trys.pop();
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
op = body.call(thisArg, _);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
op = [
|
|
253
|
+
6,
|
|
254
|
+
e
|
|
255
|
+
];
|
|
256
|
+
y = 0;
|
|
257
|
+
} finally{
|
|
258
|
+
f = t = 0;
|
|
259
|
+
}
|
|
260
|
+
if (op[0] & 5) throw op[1];
|
|
261
|
+
return {
|
|
262
|
+
value: op[0] ? op[1] : void 0,
|
|
263
|
+
done: true
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
}
|
|
147
267
|
var _Deduction;
|
|
148
268
|
var _default = (0, _elements.define)((_Deduction = /*#__PURE__*/ function(Element) {
|
|
149
269
|
_inherits(Deduction, Element);
|
|
@@ -175,25 +295,42 @@ var _default = (0, _elements.define)((_Deduction = /*#__PURE__*/ function(Elemen
|
|
|
175
295
|
{
|
|
176
296
|
key: "verify",
|
|
177
297
|
value: function verify(context) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
298
|
+
return _async_to_generator(function() {
|
|
299
|
+
var _this, verifies, deductionString;
|
|
300
|
+
return _ts_generator(this, function(_state) {
|
|
301
|
+
switch(_state.label){
|
|
302
|
+
case 0:
|
|
303
|
+
_this = this;
|
|
304
|
+
verifies = false;
|
|
305
|
+
return [
|
|
306
|
+
4,
|
|
307
|
+
this.break(context)
|
|
308
|
+
];
|
|
309
|
+
case 1:
|
|
310
|
+
_state.sent();
|
|
311
|
+
deductionString = this.getString(); ///
|
|
312
|
+
context.trace("Verifying the '".concat(deductionString, "' deduction..."));
|
|
313
|
+
if (this.statement !== null) {
|
|
314
|
+
(0, _context.attempt)(function(context) {
|
|
315
|
+
var stated = true, assignments = null, statementValidates = _this.statement.validate(assignments, stated, context);
|
|
316
|
+
if (statementValidates) {
|
|
317
|
+
_this.setContext(context);
|
|
318
|
+
verifies = true;
|
|
319
|
+
}
|
|
320
|
+
}, context);
|
|
321
|
+
} else {
|
|
322
|
+
context.debug("Unable to verify the '".concat(deductionString, "' deduction because it is nonsense."));
|
|
323
|
+
}
|
|
324
|
+
if (verifies) {
|
|
325
|
+
context.debug("...verified the '".concat(deductionString, "' deduction."));
|
|
326
|
+
}
|
|
327
|
+
return [
|
|
328
|
+
2,
|
|
329
|
+
verifies
|
|
330
|
+
];
|
|
188
331
|
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
context.debug("Unable to verify the '".concat(deductionString, "' deduction because it is nonsense."));
|
|
192
|
-
}
|
|
193
|
-
if (verifies) {
|
|
194
|
-
context.debug("...verified the '".concat(deductionString, "' deduction."));
|
|
195
|
-
}
|
|
196
|
-
return verifies;
|
|
332
|
+
});
|
|
333
|
+
}).call(this);
|
|
197
334
|
}
|
|
198
335
|
},
|
|
199
336
|
{
|
|
@@ -259,4 +396,4 @@ var _default = (0, _elements.define)((_Deduction = /*#__PURE__*/ function(Elemen
|
|
|
259
396
|
return Deduction;
|
|
260
397
|
}(_wrap_native_super(_occamlanguages.Element)), _define_property(_Deduction, "name", "Deduction"), _Deduction));
|
|
261
398
|
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2RlZHVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBhdHRlbXB0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBzdGF0ZW1lbnRGcm9tSlNPTiwgdGVybXNUb1Rlcm1zSlNPTiwgZnJhbWVzVG9GcmFtZXNKU09OLCBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIERlZHVjdGlvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXREZWR1Y3Rpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBkZWR1Y3Rpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gZGVkdWN0aW9uTm9kZTtcbiAgfVxuXG4gIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBkZWR1Y3Rpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi4uLmApO1xuXG4gICAgaWYgKHRoaXMuc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gbnVsbCxcbiAgICAgICAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdGhpcy5zdGF0ZW1lbnQudmFsaWRhdGUoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIHRoaXMuc2V0Q29udGV4dChjb250ZXh0KTtcblxuICAgICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbiBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllcztcblxuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBkZWR1Y3Rpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi4uLmApO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy5zdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlEZWR1Y3Rpb24oZGVkdWN0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IGRlZHVjdGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBnZW5lcmFsRGVkdWN0aW9uID0gdGhpcywgIC8vL1xuICAgICAgICAgIHNwZWNpZmljRGVkdWN0aW9uID0gZGVkdWN0aW9uLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbERlZHVjdGlvblN0cmluZyA9IGdlbmVyYWxEZWR1Y3Rpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3BlY2lmaWNEZWR1Y3Rpb25TdHJpbmcgPSBzcGVjaWZpY0RlZHVjdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzcGVjaWZpY0RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbiB3aXRoIHRoZSAnJHtnZW5lcmFsRGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzcGVjaWZpY0RlZHVjdGlvbi5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdGhpcy51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgIGRlZHVjdGlvblVuaWZpZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChkZWR1Y3Rpb25VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzcGVjaWZpY0RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbiB3aXRoIHRoZSAnJHtnZW5lcmFsRGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBkZWR1Y3Rpb25VbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBmcmFtZXMsXG4gICAgICAgIHRlcm1zO1xuXG4gICAgZnJhbWVzID0gdGhpcy5jb250ZXh0LmdldEZyYW1lcygpO1xuXG4gICAgdGVybXMgPSB0aGlzLmNvbnRleHQuZ2V0VGVybXMoKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudEpTT04gPSBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04odGhpcy5zdGF0ZW1lbnQpLFxuICAgICAgICAgIGZyYW1lc0pTT04gPSBmcmFtZXNUb0ZyYW1lc0pTT04oZnJhbWVzKSxcbiAgICAgICAgICB0ZXJtc0pTT04gPSB0ZXJtc1RvVGVybXNKU09OKHRlcm1zKTtcblxuICAgIGZyYW1lcyA9IGZyYW1lc0pTT047ICAvLy9cblxuICAgIHRlcm1zID0gdGVybXNKU09OOyAgLy8vXG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0YXRlbWVudCxcbiAgICAgICAgICAgIGZyYW1lcyxcbiAgICAgICAgICAgIHRlcm1zXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkRlZHVjdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29uc3QgZGVkdWN0aW9uID0gbmV3IERlZHVjdGlvbihjb250ZXh0LCBzdHJpbmcsIHN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gZGVkdWN0aW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJEZWR1Y3Rpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImdldERlZHVjdGlvbk5vZGUiLCJnZXROb2RlIiwiZGVkdWN0aW9uTm9kZSIsInZlcmlmeSIsInZlcmlmaWVzIiwiZGVkdWN0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJhdHRlbXB0Iiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJ2YWxpZGF0ZSIsInNldENvbnRleHQiLCJkZWJ1ZyIsInVuaWZ5U3RhdGVtZW50Iiwic3Vic3RpdHV0aW9ucyIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJzcGVjaWZpY0NvbnRleHQiLCJnZXRDb250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJ1bmlmeURlZHVjdGlvbiIsImRlZHVjdGlvbiIsImRlZHVjdGlvblVuaWZpZXMiLCJnZW5lcmFsRGVkdWN0aW9uIiwic3BlY2lmaWNEZWR1Y3Rpb24iLCJnZW5lcmFsRGVkdWN0aW9uU3RyaW5nIiwic3BlY2lmaWNEZWR1Y3Rpb25TdHJpbmciLCJ0b0pTT04iLCJmcmFtZXMiLCJ0ZXJtcyIsImdldEZyYW1lcyIsImdldFRlcm1zIiwic3RhdGVtZW50SlNPTiIsInN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiIsImZyYW1lc0pTT04iLCJmcmFtZXNUb0ZyYW1lc0pTT04iLCJ0ZXJtc0pTT04iLCJ0ZXJtc1RvVGVybXNKU09OIiwianNvbiIsImZyb21KU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJFbGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7OEJBTndCO3dCQUVEO3VCQUNDO29CQUMwRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFbEcsV0FBZUEsSUFBQUEsZ0JBQU0sOEJBQUM7O2FBQU1DLFVBQ2RDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVM7Z0NBRGxCSjs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLQyxTQUFTLEdBQUdBOzs7OztZQUduQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxTQUFTO1lBQ3ZCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1ILE9BQU8sSUFBSSxDQUFDSSxPQUFPLElBQ25CQyxnQkFBZ0JMLE1BQU0sR0FBRztnQkFFL0IsT0FBT0s7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPUixPQUFPOztnQkFDWixJQUFJUyxXQUFXO2dCQUVmLElBQU1DLGtCQUFrQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFH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
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2RlZHVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBhdHRlbXB0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBzdGF0ZW1lbnRGcm9tSlNPTiwgdGVybXNUb1Rlcm1zSlNPTiwgZnJhbWVzVG9GcmFtZXNKU09OLCBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIERlZHVjdGlvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXREZWR1Y3Rpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBkZWR1Y3Rpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gZGVkdWN0aW9uTm9kZTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uLi5gKTtcblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgICAgICBhc3NpZ25tZW50cyA9IG51bGwsXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLnNldENvbnRleHQoY29udGV4dCk7XG5cbiAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24gYmVjYXVzZSBpdCBpcyBub25zZW5zZS5gKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uLi5gKTtcblxuICAgIGNvbnN0IHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQ7ICAvLy9cblxuICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnN0IGdlbmVyYWxDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMuc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5RGVkdWN0aW9uKGRlZHVjdGlvbiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCBkZWR1Y3Rpb25VbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbERlZHVjdGlvbiA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzcGVjaWZpY0RlZHVjdGlvbiA9IGRlZHVjdGlvbiwgIC8vL1xuICAgICAgICAgIGdlbmVyYWxEZWR1Y3Rpb25TdHJpbmcgPSBnZW5lcmFsRGVkdWN0aW9uLmdldFN0cmluZygpLFxuICAgICAgICAgIHNwZWNpZmljRGVkdWN0aW9uU3RyaW5nID0gc3BlY2lmaWNEZWR1Y3Rpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3BlY2lmaWNEZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24gd2l0aCB0aGUgJyR7Z2VuZXJhbERlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3BlY2lmaWNEZWR1Y3Rpb24uZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBkZWR1Y3Rpb25VbmlmaWVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZGVkdWN0aW9uVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3BlY2lmaWNEZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24gd2l0aCB0aGUgJyR7Z2VuZXJhbERlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVkdWN0aW9uVW5pZmllcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBsZXQgZnJhbWVzLFxuICAgICAgICB0ZXJtcztcblxuICAgIGZyYW1lcyA9IHRoaXMuY29udGV4dC5nZXRGcmFtZXMoKTtcblxuICAgIHRlcm1zID0gdGhpcy5jb250ZXh0LmdldFRlcm1zKCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRKU09OID0gc3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OKHRoaXMuc3RhdGVtZW50KSxcbiAgICAgICAgICBmcmFtZXNKU09OID0gZnJhbWVzVG9GcmFtZXNKU09OKGZyYW1lcyksXG4gICAgICAgICAgdGVybXNKU09OID0gdGVybXNUb1Rlcm1zSlNPTih0ZXJtcyk7XG5cbiAgICBmcmFtZXMgPSBmcmFtZXNKU09OOyAgLy8vXG5cbiAgICB0ZXJtcyA9IHRlcm1zSlNPTjsgIC8vL1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdGF0ZW1lbnQsXG4gICAgICAgICAgICBmcmFtZXMsXG4gICAgICAgICAgICB0ZXJtc1xuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJEZWR1Y3Rpb25cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnN0IGRlZHVjdGlvbiA9IG5ldyBEZWR1Y3Rpb24oY29udGV4dCwgc3RyaW5nLCBzdGF0ZW1lbnQpO1xuXG4gICAgcmV0dXJuIGRlZHVjdGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRGVkdWN0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJzdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJnZXREZWR1Y3Rpb25Ob2RlIiwiZ2V0Tm9kZSIsImRlZHVjdGlvbk5vZGUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImRlZHVjdGlvblN0cmluZyIsImJyZWFrIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJhdHRlbXB0Iiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJ2YWxpZGF0ZSIsInNldENvbnRleHQiLCJkZWJ1ZyIsInVuaWZ5U3RhdGVtZW50Iiwic3Vic3RpdHV0aW9ucyIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJzcGVjaWZpY0NvbnRleHQiLCJnZXRDb250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJ1bmlmeURlZHVjdGlvbiIsImRlZHVjdGlvbiIsImRlZHVjdGlvblVuaWZpZXMiLCJnZW5lcmFsRGVkdWN0aW9uIiwic3BlY2lmaWNEZWR1Y3Rpb24iLCJnZW5lcmFsRGVkdWN0aW9uU3RyaW5nIiwic3BlY2lmaWNEZWR1Y3Rpb25TdHJpbmciLCJ0b0pTT04iLCJmcmFtZXMiLCJ0ZXJtcyIsImdldEZyYW1lcyIsImdldFRlcm1zIiwic3RhdGVtZW50SlNPTiIsInN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiIsImZyYW1lc0pTT04iLCJmcmFtZXNUb0ZyYW1lc0pTT04iLCJ0ZXJtc0pTT04iLCJ0ZXJtc1RvVGVybXNKU09OIiwianNvbiIsImZyb21KU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJFbGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7OEJBTndCO3dCQUVEO3VCQUNDO29CQUMwRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFbEcsV0FBZUEsSUFBQUEsZ0JBQU0sOEJBQUM7O2FBQU1DLFVBQ2RDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVM7Z0NBRGxCSjs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLQyxTQUFTLEdBQUdBOzs7OztZQUduQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxTQUFTO1lBQ3ZCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElB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
|