occam-verify-cli 1.0.448 → 1.0.472
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/constants.js +13 -5
- package/lib/context/ephemeral.js +270 -0
- package/lib/context/file.js +136 -128
- package/lib/context/liminal.js +120 -0
- package/lib/context/literal.js +92 -0
- package/lib/context/nominal.js +15 -1
- package/lib/context/release.js +68 -9
- package/lib/context/scoped.js +322 -0
- package/lib/context/synthetic.js +133 -0
- package/lib/element/assertion/contained.js +66 -66
- package/lib/element/assertion/defined.js +32 -32
- package/lib/element/assertion/property.js +39 -39
- package/lib/element/assertion/satisfies.js +22 -22
- package/lib/element/assumption.js +71 -87
- package/lib/element/combinator/bracketed.js +1 -10
- package/lib/element/conclusion.js +19 -15
- package/lib/element/constructor/bracketed.js +1 -10
- package/lib/element/constructor.js +2 -2
- package/lib/element/declaration/combinator.js +1 -2
- package/lib/element/declaration/metavariable.js +3 -3
- package/lib/element/declaration/variable.js +3 -3
- package/lib/element/deduction.js +26 -20
- package/lib/element/derivation.js +3 -3
- package/lib/element/equality.js +5 -5
- package/lib/element/equivalence.js +112 -107
- package/lib/element/equivalences.js +24 -10
- package/lib/element/error.js +3 -3
- package/lib/element/frame.js +73 -62
- package/lib/element/hypothesis.js +2 -2
- package/lib/element/judgement.js +40 -60
- package/lib/element/metaType.js +4 -4
- package/lib/element/metavariable.js +49 -38
- package/lib/element/parameter.js +13 -5
- package/lib/element/procedureCall.js +16 -16
- package/lib/element/proof.js +14 -13
- package/lib/element/proofAssertion/premise.js +319 -0
- package/lib/element/proofAssertion/step.js +309 -0
- package/lib/element/proofAssertion/supposition.js +333 -0
- package/lib/element/proofAssertion.js +20 -10
- package/lib/element/propertyRelation.js +2 -2
- package/lib/element/reference.js +72 -30
- package/lib/element/rule.js +26 -28
- package/lib/element/section.js +5 -5
- package/lib/element/signature.js +9 -6
- package/lib/element/statement.js +44 -36
- package/lib/element/subproof.js +18 -17
- package/lib/element/substitution/frame.js +86 -49
- package/lib/element/substitution/reference.js +101 -19
- package/lib/element/substitution/statement.js +128 -105
- package/lib/element/substitution/term.js +93 -57
- package/lib/element/substitution.js +20 -69
- package/lib/element/substitutions.js +49 -34
- package/lib/element/term.js +41 -30
- package/lib/element/topLevelAssertion/axiom.js +331 -0
- package/lib/element/{conjecture.js → topLevelAssertion/conjecture.js} +10 -10
- package/lib/element/{lemma.js → topLevelAssertion/lemma.js} +9 -9
- package/lib/element/{theorem.js → topLevelAssertion/theorem.js} +8 -8
- package/lib/element/topLevelAssertion.js +434 -0
- package/lib/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +8 -8
- package/lib/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +8 -8
- package/lib/element/topLevelMetaAssertion.js +293 -0
- package/lib/element/type.js +4 -4
- package/lib/element/variable.js +48 -40
- package/lib/index.js +3 -3
- package/lib/main.js +3 -3
- package/lib/metaTypes.js +18 -15
- package/lib/node/frame.js +2 -2
- package/lib/node/metavariable.js +4 -4
- package/lib/node/parameter.js +28 -7
- package/lib/node/proofAssertion/premise.js +116 -0
- package/lib/node/proofAssertion/step.js +152 -0
- package/lib/node/proofAssertion/supposition.js +116 -0
- package/lib/node/{premise.js → proofAssertion.js} +11 -18
- package/lib/node/statement.js +2 -2
- package/lib/node/substitution/frame.js +9 -31
- package/lib/node/substitution/reference.js +137 -0
- package/lib/node/substitution/statement.js +9 -31
- package/lib/node/substitution/term.js +9 -23
- package/lib/node/{axiom.js → topLevelAssertion/axiom.js} +7 -7
- package/lib/node/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
- package/lib/node/{lemma.js → topLevelAssertion/lemma.js} +7 -7
- package/lib/node/{theorem.js → topLevelAssertion/theorem.js} +7 -7
- package/lib/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +9 -9
- package/lib/node/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
- package/lib/node/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
- package/lib/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +9 -9
- package/lib/nonTerminalNodeMap.js +15 -14
- package/lib/preamble.js +10 -10
- package/lib/process/instantiate.js +6 -21
- package/lib/process/unify.js +11 -10
- package/lib/tokenTypes.js +22 -0
- package/lib/types.js +3 -3
- package/lib/utilities/bnf.js +5 -5
- package/lib/utilities/context.js +63 -0
- package/lib/utilities/element.js +235 -408
- package/lib/utilities/instance.js +12 -34
- package/lib/utilities/json.js +3 -2
- package/lib/utilities/string.js +56 -21
- package/lib/utilities/unification.js +38 -32
- package/lib/utilities/validation.js +47 -50
- package/package.json +2 -2
- package/src/constants.js +12 -1
- package/src/context/ephemeral.js +257 -0
- package/src/context/file.js +108 -116
- package/src/context/liminal.js +67 -0
- package/src/context/literal.js +51 -0
- package/src/context/nominal.js +12 -0
- package/src/context/release.js +48 -8
- package/src/context/{local.js → scoped.js} +43 -125
- package/src/context/synthetic.js +60 -0
- package/src/element/assertion/contained.js +49 -47
- package/src/element/assertion/defined.js +29 -27
- package/src/element/assertion/property.js +35 -35
- package/src/element/assertion/satisfies.js +19 -18
- package/src/element/assumption.js +71 -93
- package/src/element/combinator/bracketed.js +0 -7
- package/src/element/conclusion.js +25 -24
- package/src/element/constructor/bracketed.js +0 -7
- package/src/element/constructor.js +1 -1
- package/src/element/declaration/combinator.js +0 -1
- package/src/element/declaration/metavariable.js +2 -2
- package/src/element/declaration/variable.js +5 -5
- package/src/element/deduction.js +33 -31
- package/src/element/derivation.js +2 -2
- package/src/element/equality.js +4 -4
- package/src/element/equivalence.js +115 -135
- package/src/element/equivalences.js +9 -7
- package/src/element/error.js +4 -2
- package/src/element/frame.js +80 -65
- package/src/element/hypothesis.js +1 -1
- package/src/element/judgement.js +42 -62
- package/src/element/metaType.js +3 -4
- package/src/element/metavariable.js +59 -56
- package/src/element/parameter.js +10 -5
- package/src/element/procedureCall.js +20 -18
- package/src/element/proof.js +14 -16
- package/src/element/{premise.js → proofAssertion/premise.js} +57 -53
- package/src/element/{step.js → proofAssertion/step.js} +59 -62
- package/src/element/{supposition.js → proofAssertion/supposition.js} +67 -56
- package/src/element/proofAssertion.js +24 -13
- package/src/element/propertyRelation.js +1 -1
- package/src/element/reference.js +87 -37
- package/src/element/rule.js +31 -37
- package/src/element/section.js +5 -5
- package/src/element/signature.js +8 -8
- package/src/element/statement.js +52 -48
- package/src/element/subproof.js +16 -18
- package/src/element/substitution/frame.js +104 -50
- package/src/element/substitution/reference.js +120 -20
- package/src/element/substitution/statement.js +169 -130
- package/src/element/substitution/term.js +104 -63
- package/src/element/substitution.js +16 -58
- package/src/element/substitutions.js +43 -41
- package/src/element/term.js +47 -41
- package/src/element/{axiom.js → topLevelAssertion/axiom.js} +22 -20
- package/src/element/{conjecture.js → topLevelAssertion/conjecture.js} +5 -6
- package/src/element/{lemma.js → topLevelAssertion/lemma.js} +5 -6
- package/src/element/{theorem.js → topLevelAssertion/theorem.js} +5 -5
- package/src/element/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +37 -33
- package/src/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +5 -6
- package/src/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +5 -6
- package/src/element/{metaLemmaMetatheorem.js → topLevelMetaAssertion.js} +19 -17
- package/src/element/type.js +2 -4
- package/src/element/variable.js +47 -48
- package/src/index.js +2 -1
- package/src/main.js +2 -1
- package/src/metaTypes.js +25 -9
- package/src/node/frame.js +1 -1
- package/src/node/metavariable.js +3 -3
- package/src/node/parameter.js +32 -5
- package/src/node/proofAssertion/premise.js +16 -0
- package/src/node/{step.js → proofAssertion/step.js} +4 -18
- package/src/node/proofAssertion/supposition.js +16 -0
- package/src/node/proofAssertion.js +23 -0
- package/src/node/statement.js +1 -1
- package/src/node/substitution/frame.js +6 -32
- package/src/node/substitution/reference.js +38 -0
- package/src/node/substitution/statement.js +6 -32
- package/src/node/substitution/term.js +6 -22
- package/src/node/topLevelAssertion/axiom.js +13 -0
- package/src/node/topLevelAssertion/conjecture.js +13 -0
- package/src/node/topLevelAssertion/lemma.js +13 -0
- package/src/node/topLevelAssertion/theorem.js +13 -0
- package/src/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +1 -1
- package/src/node/topLevelMetaAssertion/metaLemma.js +13 -0
- package/src/node/topLevelMetaAssertion/metatheorem.js +13 -0
- package/src/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +1 -1
- package/src/nonTerminalNodeMap.js +15 -12
- package/src/preamble.js +9 -9
- package/src/process/instantiate.js +27 -36
- package/src/process/unify.js +10 -9
- package/src/tokenTypes.js +4 -0
- package/src/types.js +4 -2
- package/src/utilities/bnf.js +3 -2
- package/src/utilities/context.js +46 -0
- package/src/utilities/element.js +302 -509
- package/src/utilities/instance.js +19 -42
- package/src/utilities/json.js +3 -1
- package/src/utilities/string.js +69 -28
- package/src/utilities/unification.js +41 -38
- package/src/utilities/validation.js +66 -75
- package/lib/context/local.js +0 -605
- package/lib/context/temporary.js +0 -752
- package/lib/element/axiom.js +0 -329
- package/lib/element/axiomLemmaTheoremConjecture.js +0 -427
- package/lib/element/metaLemmaMetatheorem.js +0 -289
- package/lib/element/premise.js +0 -307
- package/lib/element/step.js +0 -311
- package/lib/element/supposition.js +0 -320
- package/lib/log.js +0 -150
- package/lib/node/step.js +0 -166
- package/lib/node/supposition.js +0 -130
- package/src/context/temporary.js +0 -476
- package/src/log.js +0 -118
- package/src/node/axiom.js +0 -13
- package/src/node/conjecture.js +0 -13
- package/src/node/lemma.js +0 -13
- package/src/node/metaLemma.js +0 -13
- package/src/node/metatheorem.js +0 -13
- package/src/node/premise.js +0 -30
- package/src/node/supposition.js +0 -30
- package/src/node/theorem.js +0 -13
|
@@ -235,7 +235,7 @@ var _default = (0, _elements.define)((_Assumption = /*#__PURE__*/ function(Eleme
|
|
|
235
235
|
key: "compareSubstitution",
|
|
236
236
|
value: function compareSubstitution(substitution, context) {
|
|
237
237
|
var comparesToSubstituion = false;
|
|
238
|
-
var assumptionString = this.
|
|
238
|
+
var assumptionString = this.getString(), substitutionString = substitution.getString();
|
|
239
239
|
context.trace("Comparing the '".concat(assumptionString, "' assumption to the '").concat(substitutionString, "' substitution..."));
|
|
240
240
|
var simple = this.isSimple();
|
|
241
241
|
if (simple) {
|
|
@@ -259,123 +259,107 @@ var _default = (0, _elements.define)((_Assumption = /*#__PURE__*/ function(Eleme
|
|
|
259
259
|
}
|
|
260
260
|
},
|
|
261
261
|
{
|
|
262
|
-
key: "
|
|
263
|
-
value: function
|
|
264
|
-
var
|
|
265
|
-
var assumptionString = this.
|
|
266
|
-
context.trace("
|
|
262
|
+
key: "validate",
|
|
263
|
+
value: function validate(assignments, stated, context) {
|
|
264
|
+
var validates = false;
|
|
265
|
+
var assumptionString = this.getString(); ///
|
|
266
|
+
context.trace("Validating the '".concat(assumptionString, "' assumption..."));
|
|
267
267
|
var simple = this.isSimple();
|
|
268
268
|
if (simple) {
|
|
269
|
-
var
|
|
270
|
-
|
|
269
|
+
var referenceValidatesAsMetavariable = this.validateReferenceAsMetavariable(assignments, stated, context);
|
|
270
|
+
if (referenceValidatesAsMetavariable) {
|
|
271
|
+
validates = true;
|
|
272
|
+
}
|
|
271
273
|
} else {
|
|
272
|
-
var
|
|
273
|
-
if (
|
|
274
|
+
var referenceValidates = this.reference.validate(context);
|
|
275
|
+
if (referenceValidates) {
|
|
274
276
|
var statementValidates = this.validateStatement(assignments, stated, context);
|
|
275
277
|
if (statementValidates) {
|
|
276
|
-
var
|
|
278
|
+
var validatesWhenStated = false, validatesWhenDerived = false;
|
|
277
279
|
if (stated) {
|
|
278
|
-
|
|
280
|
+
validatesWhenStated = this.validateWhenStated(assignments, context);
|
|
279
281
|
} else {
|
|
280
|
-
|
|
282
|
+
validatesWhenDerived = this.validateWhenDerived(context);
|
|
281
283
|
}
|
|
282
|
-
if (
|
|
283
|
-
|
|
284
|
+
if (validatesWhenStated || validatesWhenDerived) {
|
|
285
|
+
validates = true;
|
|
284
286
|
}
|
|
285
287
|
}
|
|
286
288
|
}
|
|
287
|
-
if (
|
|
288
|
-
context.debug("...
|
|
289
|
+
if (validates) {
|
|
290
|
+
context.debug("...validated the '".concat(assumptionString, "' assumption."));
|
|
289
291
|
}
|
|
290
292
|
}
|
|
291
|
-
return
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
key: "verifyReference",
|
|
296
|
-
value: function verifyReference(assignments, stated, context) {
|
|
297
|
-
var referenceVerified;
|
|
298
|
-
var referenceString = this.reference.getString(), assumptionString = this.string; ///
|
|
299
|
-
context.trace("Verifying the '".concat(assumptionString, "' assumption's '").concat(referenceString, "' reference..."));
|
|
300
|
-
referenceVerified = this.reference.verify(context);
|
|
301
|
-
if (referenceVerified) {
|
|
302
|
-
context.debug("...verified the '".concat(assumptionString, "' assumption's '").concat(referenceString, "' reference."));
|
|
303
|
-
}
|
|
304
|
-
return referenceVerified;
|
|
293
|
+
return validates;
|
|
305
294
|
}
|
|
306
295
|
},
|
|
307
296
|
{
|
|
308
297
|
key: "validateStatement",
|
|
309
298
|
value: function validateStatement(assignments, stated, context) {
|
|
310
|
-
var statementValidates;
|
|
311
|
-
if (this.statement
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
var statementString = this.statement.getString();
|
|
315
|
-
context.trace("Validating the '".concat(statementString, "' statement..."));
|
|
299
|
+
var statementValidates = true; ///
|
|
300
|
+
if (this.statement !== null) {
|
|
301
|
+
var assumptionString = this.getString(), statementString = this.statement.getString();
|
|
302
|
+
context.trace("Validating the '".concat(assumptionString, "' assumption's '").concat(statementString, "' statement..."));
|
|
316
303
|
stated = true; ///
|
|
317
304
|
assignments = null; ///
|
|
318
305
|
statementValidates = this.statement.validate(assignments, stated, context);
|
|
319
306
|
if (statementValidates) {
|
|
320
|
-
context.debug("...validated the '".concat(statementString, "' statement."));
|
|
307
|
+
context.debug("...validated the '".concat(assumptionString, "' assumption's '").concat(statementString, "' statement."));
|
|
321
308
|
}
|
|
322
309
|
}
|
|
323
310
|
return statementValidates;
|
|
324
311
|
}
|
|
325
312
|
},
|
|
326
313
|
{
|
|
327
|
-
key: "
|
|
328
|
-
value: function
|
|
329
|
-
var
|
|
330
|
-
var referenceString = this.reference.getString(), assumptionString = this.
|
|
331
|
-
context.trace("
|
|
332
|
-
|
|
333
|
-
if (
|
|
334
|
-
|
|
335
|
-
}
|
|
336
|
-
if (referenceVerifiesAsMetavariable) {
|
|
337
|
-
context.debug("...verified the '".concat(assumptionString, "' assumption's '").concat(referenceString, "' reference as a metavariable."));
|
|
314
|
+
key: "validateReferenceAsMetavariable",
|
|
315
|
+
value: function validateReferenceAsMetavariable(assignments, stated, context) {
|
|
316
|
+
var referenceValidatesAsMetavariable;
|
|
317
|
+
var referenceString = this.reference.getString(), assumptionString = this.getString(); ///
|
|
318
|
+
context.trace("Validating the '".concat(assumptionString, "' assumption's '").concat(referenceString, "' reference as s metavariable..."));
|
|
319
|
+
referenceValidatesAsMetavariable = this.reference.validateAsMetavariable(context);
|
|
320
|
+
if (referenceValidatesAsMetavariable) {
|
|
321
|
+
context.debug("...validated the '".concat(assumptionString, "' assumption's '").concat(referenceString, "' reference as a metavariable."));
|
|
338
322
|
}
|
|
339
|
-
return
|
|
323
|
+
return referenceValidatesAsMetavariable;
|
|
340
324
|
}
|
|
341
325
|
},
|
|
342
326
|
{
|
|
343
|
-
key: "
|
|
344
|
-
value: function
|
|
327
|
+
key: "validateWhenStated",
|
|
328
|
+
value: function validateWhenStated(assignments, context) {
|
|
345
329
|
var _this = this;
|
|
346
|
-
var
|
|
347
|
-
var assumptionString = this.
|
|
348
|
-
context.trace("
|
|
330
|
+
var validatesWhenStated;
|
|
331
|
+
var assumptionString = this.getString(); ///
|
|
332
|
+
context.trace("Validating the '".concat(assumptionString, "' stated assumption..."));
|
|
349
333
|
var metavariablePresent = context.isMetavariablePresentByReference(this.reference);
|
|
350
334
|
if (metavariablePresent) {
|
|
351
|
-
|
|
335
|
+
validatesWhenStated = true;
|
|
352
336
|
} else {
|
|
353
|
-
var
|
|
354
|
-
var
|
|
355
|
-
if (
|
|
337
|
+
var topLevelMetaAssertions = context.findTopLevelMetaAssertionsByReference(this.reference), topLevelMetaAssertionsUnify = topLevelMetaAssertions.every(function(topLevelMetaAssertion) {
|
|
338
|
+
var topLevelMetaAssertionUnifies = _this.unifyTopLevelMetaAssertion(topLevelMetaAssertion, context);
|
|
339
|
+
if (topLevelMetaAssertionUnifies) {
|
|
356
340
|
return true;
|
|
357
341
|
}
|
|
358
342
|
});
|
|
359
|
-
|
|
343
|
+
validatesWhenStated = topLevelMetaAssertionsUnify; ///
|
|
360
344
|
}
|
|
361
|
-
if (
|
|
362
|
-
context.debug("...
|
|
345
|
+
if (validatesWhenStated) {
|
|
346
|
+
context.debug("...validated the '".concat(assumptionString, "' stated assumption."));
|
|
363
347
|
}
|
|
364
|
-
return
|
|
348
|
+
return validatesWhenStated;
|
|
365
349
|
}
|
|
366
350
|
},
|
|
367
351
|
{
|
|
368
|
-
key: "
|
|
369
|
-
value: function
|
|
370
|
-
var
|
|
371
|
-
var assumptionString = this.
|
|
372
|
-
context.trace("
|
|
373
|
-
var
|
|
374
|
-
|
|
375
|
-
if (
|
|
376
|
-
context.debug("...
|
|
352
|
+
key: "validateWhenDerived",
|
|
353
|
+
value: function validateWhenDerived(context) {
|
|
354
|
+
var validatesWhenDerived;
|
|
355
|
+
var assumptionString = this.getString(); ///
|
|
356
|
+
context.trace("Validating the '".concat(assumptionString, "' derived assumption..."));
|
|
357
|
+
var topLevelMetaAssertionPresent = context.isTopLevelMetaAssertionPresentByReference(this.reference);
|
|
358
|
+
validatesWhenDerived = topLevelMetaAssertionPresent; ///
|
|
359
|
+
if (validatesWhenDerived) {
|
|
360
|
+
context.debug("...validated the '".concat(assumptionString, "' derived assumption."));
|
|
377
361
|
}
|
|
378
|
-
return
|
|
362
|
+
return validatesWhenDerived;
|
|
379
363
|
}
|
|
380
364
|
},
|
|
381
365
|
{
|
|
@@ -401,7 +385,7 @@ var _default = (0, _elements.define)((_Assumption = /*#__PURE__*/ function(Eleme
|
|
|
401
385
|
key: "unifyLabel",
|
|
402
386
|
value: function unifyLabel(label, substitutions, generalContext, specificContext) {
|
|
403
387
|
var labelUnifiesWithReference;
|
|
404
|
-
var context = generalContext, labelString = label.getString(), assumptionString = this.
|
|
388
|
+
var context = generalContext, labelString = label.getString(), assumptionString = this.getString(); //;/
|
|
405
389
|
context.trace("Unifying the '".concat(labelString, "' label with the '").concat(assumptionString, "' assumption..."));
|
|
406
390
|
var labelUnifies = this.reference.unifyLabel(label, substitutions, context);
|
|
407
391
|
labelUnifiesWithReference = labelUnifies; ///
|
|
@@ -412,28 +396,28 @@ var _default = (0, _elements.define)((_Assumption = /*#__PURE__*/ function(Eleme
|
|
|
412
396
|
}
|
|
413
397
|
},
|
|
414
398
|
{
|
|
415
|
-
key: "
|
|
416
|
-
value: function
|
|
417
|
-
var
|
|
418
|
-
var assumptionString = this.
|
|
419
|
-
context.trace("Unifying the '".concat(
|
|
399
|
+
key: "unifyTopLevelMetaAssertion",
|
|
400
|
+
value: function unifyTopLevelMetaAssertion(topLevelMetaAssertion, context) {
|
|
401
|
+
var topLevelMetaAssertionUnifies = false;
|
|
402
|
+
var assumptionString = this.getString(), topLevelMetaAssertionString = topLevelMetaAssertion.getString();
|
|
403
|
+
context.trace("Unifying the '".concat(topLevelMetaAssertionString, "' top level meta-assertion with the '").concat(assumptionString, "' assumption..."));
|
|
420
404
|
var generalContext = context; ///
|
|
421
|
-
context =
|
|
422
|
-
var Substitutions = _elements.default.Substitutions, specificContext = context, labelSubstitutions = Substitutions.fromNothing(), label =
|
|
405
|
+
context = topLevelMetaAssertion.getContext(); ///
|
|
406
|
+
var Substitutions = _elements.default.Substitutions, specificContext = context, labelSubstitutions = Substitutions.fromNothing(context), label = topLevelMetaAssertion.getLabel(), substitutions = labelSubstitutions, labelUnifies = this.unifyLabel(label, substitutions, generalContext, specificContext);
|
|
423
407
|
if (labelUnifies) {
|
|
424
|
-
var statementSubstitutions = Substitutions.fromNothing(), statement =
|
|
408
|
+
var statementSubstitutions = Substitutions.fromNothing(context), statement = topLevelMetaAssertion.getStatement(), substitutions1 = statementSubstitutions, statementUUnifies = this.unifyStatement(statement, substitutions1, generalContext, specificContext);
|
|
425
409
|
if (statementUUnifies) {
|
|
426
410
|
var labelSubstitutionsCorrelateStatementSubstitutions = labelSubstitutions.correlateSubstitutions(statementSubstitutions);
|
|
427
411
|
if (labelSubstitutionsCorrelateStatementSubstitutions) {
|
|
428
|
-
|
|
412
|
+
topLevelMetaAssertionUnifies = true; ///
|
|
429
413
|
}
|
|
430
414
|
}
|
|
431
415
|
}
|
|
432
|
-
if (
|
|
416
|
+
if (topLevelMetaAssertionUnifies) {
|
|
433
417
|
context = generalContext; ///
|
|
434
|
-
context.trace("...unified the '".concat(
|
|
418
|
+
context.trace("...unified the '".concat(topLevelMetaAssertionString, "' top level meta-assertion with the '").concat(assumptionString, "' assumption..."));
|
|
435
419
|
}
|
|
436
|
-
return
|
|
420
|
+
return topLevelMetaAssertionUnifies;
|
|
437
421
|
}
|
|
438
422
|
},
|
|
439
423
|
{
|
|
@@ -464,4 +448,4 @@ var _default = (0, _elements.define)((_Assumption = /*#__PURE__*/ function(Eleme
|
|
|
464
448
|
return Assumption;
|
|
465
449
|
}(_wrap_native_super(_element.default)), _define_property(_Assumption, "name", "Assumption"), _Assumption));
|
|
466
450
|
|
|
467
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Fzc3VtcHRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBFbGVtZW50IGZyb20gXCIuLi9lbGVtZW50XCI7XG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdW5pZnlTdGF0ZW1lbnRJbnRyaW5zaWNhbGx5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvdW5pZnlcIjtcbmltcG9ydCB7IHJlZmVyZW5jZUZyb21KU09OLCByZWZlcmVuY2VUb1JlZmVyZW5jZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEFzc3VtcHRpb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBzdGF0ZW1lbnQsIHJlZmVyZW5jZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkgeyByZXR1cm4gdGhpcy5yZWZlcmVuY2UuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBpc1NpbXBsZSgpIHtcbiAgICBjb25zdCBzaW1wbGUgPSAodGhpcy5zdGF0ZW1lbnQgPT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHNpbXBsZTtcbiAgfVxuXG4gIGNvbXBhcmVTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmVzVG9TdWJzdGl0dWlvbiA9IGZhbHNlO1xuXG4gICAgY29uc3QgYXNzdW1wdGlvblN0cmluZyA9IHRoaXMuc3RyaW5nLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbiB0byB0aGUgJyR7c3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBzaW1wbGUgPSB0aGlzLmlzU2ltcGxlKCk7XG5cbiAgICBpZiAoc2ltcGxlKSB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSB0aGlzLnJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICAgIGp1ZGdlbWVudCA9IGNvbnRleHQuZmluZEp1ZGdlbWVudEJ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSk7XG5cbiAgICAgIGlmIChqdWRnZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgYXNzdW1wdGlvbiA9IGp1ZGdlbWVudC5nZXREZWNsYXJhdGlvbigpLFxuICAgICAgICAgICAgICBhc3N1bXB0aW9uQ29tYXJlc1RvU3Vic3RpdHV0aW9uID0gYXNzdW1wdGlvbi5jb21wYXJlU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGFzc3VtcHRpb25Db21hcmVzVG9TdWJzdGl0dXRpb24pIHtcbiAgICAgICAgICBjb21wYXJlc1RvU3Vic3RpdHVpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHN1YnN0aXR1dGlvbi5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IHN1YnN0aXR1dGlvbi5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICAgIHN0YXRlbWVudEVxdWFsVG9TdGF0ZW1lbnQgPSB0aGlzLnN0YXRlbWVudC5pc0VxdWFsVG8oc3RhdGVtZW50KSxcbiAgICAgICAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUgPSB0aGlzLnJlZmVyZW5jZS5pc01ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKTtcblxuICAgICAgaWYgKHN0YXRlbWVudEVxdWFsVG9TdGF0ZW1lbnQgJiYgcmVmZXJlbmNlTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSkge1xuICAgICAgICBjb21wYXJlc1RvU3Vic3RpdHVpb24gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb21wYXJlc1RvU3Vic3RpdHVpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtzdWJzdGl0dXRpb25TdHJpbmd9JyBhc3N1bXB0aW9uIHRvIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvU3Vic3RpdHVpb247XG4gIH1cblxuICB2ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgYXNzdW1wdGlvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBhc3N1bXB0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBzaW1wbGUgPSB0aGlzLmlzU2ltcGxlKCk7XG5cbiAgICBpZiAoc2ltcGxlKSB7XG4gICAgICBjb25zdCByZWZlcmVuY2VWZXJpZmllc0FzTWV0YXZhcmlhYmxlID0gdGhpcy52ZXJpZnlSZWZlcmVuY2VBc01ldGF2YXJpYWJsZShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgdmVyaWZpZXMgPSByZWZlcmVuY2VWZXJpZmllc0FzTWV0YXZhcmlhYmxlOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVmZXJlbmNlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVJlZmVyZW5jZShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHJlZmVyZW5jZVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIGxldCB2ZXJpZmllc1doZW5TdGF0ZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgdmVyaWZpZXNXaGVuRGVyaXZlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHN0YXRlZCkge1xuICAgICAgICAgICAgdmVyaWZpZXNXaGVuU3RhdGVkID0gdGhpcy52ZXJpZnlXaGVuU3RhdGVkKGFzc2lnbm1lbnRzLCBjb250ZXh0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmVyaWZpZXNXaGVuRGVyaXZlZCA9IHRoaXMudmVyaWZ5V2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZlcmlmaWVzV2hlblN0YXRlZCB8fCB2ZXJpZmllc1doZW5EZXJpdmVkKSB7XG4gICAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24uYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5UmVmZXJlbmNlKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgcmVmZXJlbmNlVmVyaWZpZWQ7XG5cbiAgICBjb25zdCByZWZlcmVuY2VTdHJpbmcgPSB0aGlzLnJlZmVyZW5jZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBhc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbidzICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZS4uLmApO1xuXG4gICAgcmVmZXJlbmNlVmVyaWZpZWQgPSB0aGlzLnJlZmVyZW5jZS52ZXJpZnkoY29udGV4dCk7XG5cbiAgICBpZiAocmVmZXJlbmNlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbidzICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlVmVyaWZpZWQ7XG4gIH1cblxuICB2YWxpZGF0ZVN0YXRlbWVudChhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlcztcblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCA9PT0gbnVsbCkge1xuICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gdGhpcy5zdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmApO1xuXG4gICAgICBzdGF0ZWQgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGFzc2lnbm1lbnRzID0gbnVsbDsgLy8vXG5cbiAgICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRWYWxpZGF0ZXM7XG4gIH1cblxuICB2ZXJpZnlSZWZlcmVuY2VBc01ldGF2YXJpYWJsZShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHJlZmVyZW5jZVZlcmlmaWVzQXNNZXRhdmFyaWFibGUgPSBmYWxzZTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZVN0cmluZyA9IHRoaXMucmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICAgIGFzc3VtcHRpb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBhc3N1bXB0aW9uJ3MgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlIGFzIHMgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGUgPSB0aGlzLnJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlLmdldE5hbWUoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgcmVmZXJlbmNlVmVyaWZpZXNBc01ldGF2YXJpYWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHJlZmVyZW5jZVZlcmlmaWVzQXNNZXRhdmFyaWFibGUpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbidzICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSBhcyBhIG1ldGF2YXJpYWJsZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlVmVyaWZpZXNBc01ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIHZlcmlmeVdoZW5TdGF0ZWQoYXNzaWdubWVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXNXaGVuU3RhdGVkO1xuXG4gICAgY29uc3QgYXNzdW1wdGlvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBzdGF0ZWQgYXNzdW1wdGlvbi4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNNZXRhdmFyaWFibGVQcmVzZW50QnlSZWZlcmVuY2UodGhpcy5yZWZlcmVuY2UpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIHZlcmlmaWVzV2hlblN0YXRlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGFMZW1tYU1ldGF0aGVvcmVtcyA9IGNvbnRleHQuZmluZE1ldGFMZW1tYU1ldGF0aGVvcmVtc0J5UmVmZXJlbmNlKHRoaXMucmVmZXJlbmNlKSxcbiAgICAgICAgICAgIG1ldGFMZW1tYU1ldGF0aGVvcmVtc1VuaWZ5ID0gbWV0YUxlbW1hTWV0YXRoZW9yZW1zLmV2ZXJ5KChtZXRhTGVtbWFNZXRhdGhlb3JlbSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtZXRhTGVtbWFNZXRhdGhlb3JlbVVuaWZpZXMgPSB0aGlzLnVuaWZ5TWV0YUxlbW1hTWV0YXRoZW9yZW0obWV0YUxlbW1hTWV0YXRoZW9yZW0sIGNvbnRleHQpO1xuXG4gICAgICAgICAgICAgIGlmIChtZXRhTGVtbWFNZXRhdGhlb3JlbVVuaWZpZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIHZlcmlmaWVzV2hlblN0YXRlZCA9IG1ldGFMZW1tYU1ldGF0aGVvcmVtc1VuaWZ5OyAvLy9cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXNXaGVuU3RhdGVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIHN0YXRlZCBhc3N1bXB0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllc1doZW5TdGF0ZWQ7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVyaXZlZChjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzV2hlbkRlcml2ZWQ7XG5cbiAgICBjb25zdCBhc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGRlcml2ZWQgYXNzdW1wdGlvbi4uLmApO1xuXG4gICAgY29uc3QgbWV0YUxlbW1hTWV0YXRoZW9yZW1QcmVzZW50ID0gY29udGV4dC5pc01ldGFMZW1tYU1ldGF0aGVvcmVtUHJlc2VudEJ5UmVmZXJlbmNlKHRoaXMucmVmZXJlbmNlKTtcblxuICAgIHZlcmlmaWVzV2hlbkRlcml2ZWQgPSBtZXRhTGVtbWFNZXRhdGhlb3JlbVByZXNlbnQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVzV2hlbkRlcml2ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgZGVyaXZlZCBhc3N1bXB0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBzaW1wbGUgPSB0aGlzLmlzU2ltcGxlKCk7XG5cbiAgICBpZiAoc2ltcGxlKSB7XG4gICAgICBzdGF0ZW1lbnRVbmlmaWVzID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgICAgYXNzdW1wdGlvblN0YXRlbWVudFN0cmluZyA9IHRoaXMuc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2Fzc3VtcHRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgICAgY29uc3QgZ2VuZXJhbFN0YXRlbWVudCA9IHRoaXMuc3RhdGVtZW50LFxuICAgICAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudFVVbmlmaWVzSW50cmluc2ljYWxseSA9IHVuaWZ5U3RhdGVtZW50SW50cmluc2ljYWxseShnZW5lcmFsU3RhdGVtZW50LCBzcGVjaWZpY1N0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSBzdGF0ZW1lbnRVVW5pZmllc0ludHJpbnNpY2FsbHk7ICAvLy9cblxuICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2Fzc3VtcHRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUxhYmVsKGxhYmVsLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IGxhYmVsVW5pZmllc1dpdGhSZWZlcmVuY2U7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQsIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgYXNzdW1wdGlvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy87L1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2xhYmVsU3RyaW5nfScgbGFiZWwgd2l0aCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24uLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsVW5pZmllcyA9IHRoaXMucmVmZXJlbmNlLnVuaWZ5TGFiZWwobGFiZWwsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpO1xuXG4gICAgbGFiZWxVbmlmaWVzV2l0aFJlZmVyZW5jZSA9IGxhYmVsVW5pZmllczsgLy8vXG5cbiAgICBpZiAobGFiZWxVbmlmaWVzV2l0aFJlZmVyZW5jZSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCB3aXRoIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWxVbmlmaWVzV2l0aFJlZmVyZW5jZTtcbiAgfVxuXG4gIHVuaWZ5TWV0YUxlbW1hTWV0YXRoZW9yZW0obWV0YUxlbW1hTWV0YXRoZW9yZW0sIGNvbnRleHQpIHtcbiAgICBsZXQgbWV0YUxlbW1hTWV0YXRoZW9yZW1VbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBhc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmcsICAvLy9cbiAgICAgICAgICBtZXRhTGVtbWFNZXRhdGhlb3JlbVN0cmluZyA9IG1ldGFMZW1tYU1ldGF0aGVvcmVtLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke21ldGFMZW1tYU1ldGF0aGVvcmVtU3RyaW5nfScgbWV0YS1sZW1tYSBvciBtZXRhdGhlb3JlbSB3aXRoIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbi4uLmApO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICAgIGNvbnRleHQgPSBtZXRhTGVtbWFNZXRhdGhlb3JlbS5nZXRDb250ZXh0KCk7ICAvLy9cblxuICAgIGNvbnN0IHsgU3Vic3RpdHV0aW9ucyB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIGxhYmVsU3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBsYWJlbCA9IG1ldGFMZW1tYU1ldGF0aGVvcmVtLmdldExhYmVsKCksXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IGxhYmVsU3Vic3RpdHV0aW9ucywgLy8vXG4gICAgICAgICAgbGFiZWxVbmlmaWVzID0gdGhpcy51bmlmeUxhYmVsKGxhYmVsLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChsYWJlbFVuaWZpZXMpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgICBzdGF0ZW1lbnQgPSBtZXRhTGVtbWFNZXRhdGhlb3JlbS5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBzdGF0ZW1lbnRTdWJzdGl0dXRpb25zLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudFVVbmlmaWVzID0gdGhpcy51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VVVuaWZpZXMpIHtcbiAgICAgICAgY29uc3QgbGFiZWxTdWJzdGl0dXRpb25zQ29ycmVsYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9ucyA9IGxhYmVsU3Vic3RpdHV0aW9ucy5jb3JyZWxhdGVTdWJzdGl0dXRpb25zKHN0YXRlbWVudFN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIGlmIChsYWJlbFN1YnN0aXR1dGlvbnNDb3JyZWxhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb25zKSB7XG4gICAgICAgICAgbWV0YUxlbW1hTWV0YXRoZW9yZW1VbmlmaWVzID0gdHJ1ZTsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWV0YUxlbW1hTWV0YXRoZW9yZW1VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGAuLi51bmlmaWVkIHRoZSAnJHttZXRhTGVtbWFNZXRhdGhlb3JlbVN0cmluZ30nIG1ldGEtbGVtbWEgb3IgbWV0YXRoZW9yZW0gd2l0aCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24uLi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YUxlbW1hTWV0YXRoZW9yZW1VbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uID0gbnVsbDtcblxuICAgIGNvbnN0IHNpbXBsZSA9IHRoaXMuaXNTaW1wbGUoKTtcblxuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHRoaXMsIC8vL1xuICAgICAgICAgICAgcmVmZXJlbmNlSlNPTiA9IHJlZmVyZW5jZVRvUmVmZXJlbmNlSlNPTihyZWZlcmVuY2UpO1xuXG4gICAgICBqc29uID0gcmVmZXJlbmNlSlNPTjsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkFzc3VtcHRpb25cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBhc3N1bXB0aW9uID0gbnVsbDtcblxuICAgIGlmIChqc29uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdHJpbmcgPSBudWxsLFxuICAgICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgICBzdGF0ZW1lbnQgPSBudWxsLFxuICAgICAgICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlRnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICAgIGFzc3VtcHRpb24gPSBuZXcgQXNzdW1wdGlvbihzdHJpbmcsIG5vZGUsIHN0YXRlbWVudCwgcmVmZXJlbmNlKVxuICAgIH1cblxuICAgIHJldHVybiBhc3N1bXB0aW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJBc3N1bXB0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJzdGF0ZW1lbnQiLCJyZWZlcmVuY2UiLCJnZXRTdGF0ZW1lbnQiLCJnZXRSZWZlcmVuY2UiLCJnZXRNZXRhdmFyaWFibGUiLCJpc1NpbXBsZSIsInNpbXBsZSIsImNvbXBhcmVTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJjb21wYXJlc1RvU3Vic3RpdHVpb24iLCJhc3N1bXB0aW9uU3RyaW5nIiwic3Vic3RpdHV0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGUiLCJqdWRnZW1lbnQiLCJmaW5kSnVkZ2VtZW50QnlNZXRhdmFyaWFibGUiLCJhc3N1bXB0aW9uIiwiZ2V0RGVjbGFyYXRpb24iLCJhc3N1bXB0aW9uQ29tYXJlc1RvU3Vic3RpdHV0aW9uIiwic3RhdGVtZW50RXF1YWxUb1N0YXRlbWVudCIsImlzRXF1YWxUbyIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUiLCJpc01ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUiLCJkZWJ1ZyIsInZlcmlmeSIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwidmVyaWZpZXMiLCJyZWZlcmVuY2VWZXJpZmllc0FzTWV0YXZhcmlhYmxlIiwidmVyaWZ5UmVmZXJlbmNlQXNNZXRhdmFyaWFibGUiLCJyZWZlcmVuY2VWZXJpZmllZCIsInZlcmlmeVJlZmVyZW5jZSIsInN0YXRlbWVudFZhbGlkYXRlcyIsInZhbGlkYXRlU3RhdGVtZW50IiwidmVyaWZpZXNXaGVuU3RhdGVkIiwidmVyaWZpZXNXaGVuRGVyaXZlZCIsInZlcmlmeVdoZW5TdGF0ZWQiLCJ2ZXJpZnlXaGVuRGVyaXZlZCIsInJlZmVyZW5jZVN0cmluZyIsInN0YXRlbWVudFN0cmluZyIsInZhbGlkYXRlIiwibWV0YXZhcmlhYmxlTmFtZSIsImdldE5hbWUiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lIiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlSZWZlcmVuY2UiLCJtZXRhTGVtbWFNZXRhdGhlb3JlbXMiLCJmaW5kTWV0YUxlbW1hTWV0YXRoZW9yZW1zQnlSZWZlcmVuY2UiLCJtZXRhTGVtbWFNZXRhdGhlb3JlbXNVbmlmeSIsImV2ZXJ5IiwibWV0YUxlbW1hTWV0YXRoZW9yZW0iLCJtZXRhTGVtbWFNZXRhdGhlb3JlbVVuaWZpZXMiLCJ1bmlmeU1ldGFMZW1tYU1ldGF0aGVvcmVtIiwibWV0YUxlbW1hTWV0YXRoZW9yZW1QcmVzZW50IiwiaXNNZXRhTGVtbWFNZXRhdGhlb3JlbVByZXNlbnRCeVJlZmVyZW5jZSIsInVuaWZ5U3RhdGVtZW50Iiwic3Vic3RpdHV0aW9ucyIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0Iiwic3RhdGVtZW50VW5pZmllcyIsImFzc3VtcHRpb25TdGF0ZW1lbnRTdHJpbmciLCJnZW5lcmFsU3RhdGVtZW50Iiwic3BlY2lmaWNTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRVVW5pZmllc0ludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkiLCJ1bmlmeUxhYmVsIiwibGFiZWwiLCJsYWJlbFVuaWZpZXNXaXRoUmVmZXJlbmNlIiwibGFiZWxTdHJpbmciLCJsYWJlbFVuaWZpZXMiLCJtZXRhTGVtbWFNZXRhdGhlb3JlbVN0cmluZyIsImdldENvbnRleHQiLCJTdWJzdGl0dXRpb25zIiwiZWxlbWVudHMiLCJsYWJlbFN1YnN0aXR1dGlvbnMiLCJmcm9tTm90aGluZyIsImdldExhYmVsIiwic3RhdGVtZW50U3Vic3RpdHV0aW9ucyIsInN0YXRlbWVudFVVbmlmaWVzIiwibGFiZWxTdWJzdGl0dXRpb25zQ29ycmVsYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9ucyIsImNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMiLCJ0b0pTT04iLCJqc29uIiwicmVmZXJlbmNlSlNPTiIsInJlZmVyZW5jZVRvUmVmZXJlbmNlSlNPTiIsImZyb21KU09OIiwicmVmZXJlbmNlRnJvbUpTT04iLCJFbGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7OERBUG9CO2dFQUNDO3FCQUd1QjtvQkFDZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUU1RCxXQUFlQSxJQUFBQSxnQkFBTSwrQkFBQzs7YUFBTUMsV0FDZEMsT0FBTyxF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
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Fzc3VtcHRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBFbGVtZW50IGZyb20gXCIuLi9lbGVtZW50XCI7XG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdW5pZnlTdGF0ZW1lbnRJbnRyaW5zaWNhbGx5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvdW5pZnlcIjtcbmltcG9ydCB7IHJlZmVyZW5jZUZyb21KU09OLCByZWZlcmVuY2VUb1JlZmVyZW5jZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEFzc3VtcHRpb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBzdGF0ZW1lbnQsIHJlZmVyZW5jZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkgeyByZXR1cm4gdGhpcy5yZWZlcmVuY2UuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBpc1NpbXBsZSgpIHtcbiAgICBjb25zdCBzaW1wbGUgPSAodGhpcy5zdGF0ZW1lbnQgPT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHNpbXBsZTtcbiAgfVxuXG4gIGNvbXBhcmVTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmVzVG9TdWJzdGl0dWlvbiA9IGZhbHNlO1xuXG4gICAgY29uc3QgYXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksICAvLy9cbiAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBhc3N1bXB0aW9uIHRvIHRoZSAnJHtzdWJzdGl0dXRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHNpbXBsZSA9IHRoaXMuaXNTaW1wbGUoKTtcblxuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHRoaXMucmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgICAganVkZ2VtZW50ID0gY29udGV4dC5maW5kSnVkZ2VtZW50QnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKTtcblxuICAgICAgaWYgKGp1ZGdlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBhc3N1bXB0aW9uID0ganVkZ2VtZW50LmdldERlY2xhcmF0aW9uKCksXG4gICAgICAgICAgICAgIGFzc3VtcHRpb25Db21hcmVzVG9TdWJzdGl0dXRpb24gPSBhc3N1bXB0aW9uLmNvbXBhcmVTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoYXNzdW1wdGlvbkNvbWFyZXNUb1N1YnN0aXR1dGlvbikge1xuICAgICAgICAgIGNvbXBhcmVzVG9TdWJzdGl0dWlvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhdGVtZW50ID0gc3Vic3RpdHV0aW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlID0gc3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgICAgc3RhdGVtZW50RXF1YWxUb1N0YXRlbWVudCA9IHRoaXMuc3RhdGVtZW50LmlzRXF1YWxUbyhzdGF0ZW1lbnQpLFxuICAgICAgICAgICAgcmVmZXJlbmNlTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSA9IHRoaXMucmVmZXJlbmNlLmlzTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50RXF1YWxUb1N0YXRlbWVudCAmJiByZWZlcmVuY2VNZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlKSB7XG4gICAgICAgIGNvbXBhcmVzVG9TdWJzdGl0dWlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbXBhcmVzVG9TdWJzdGl0dWlvbikge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3N1YnN0aXR1dGlvblN0cmluZ30nIGFzc3VtcHRpb24gdG8gdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9TdWJzdGl0dWlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBhc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24uLi5gKTtcblxuICAgIGNvbnN0IHNpbXBsZSA9IHRoaXMuaXNTaW1wbGUoKTtcblxuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZVZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlID0gdGhpcy52YWxpZGF0ZVJlZmVyZW5jZUFzTWV0YXZhcmlhYmxlKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICBpZiAocmVmZXJlbmNlVmFsaWRhdGVzQXNNZXRhdmFyaWFibGUpIHtcbiAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVmZXJlbmNlVmFsaWRhdGVzID0gdGhpcy5yZWZlcmVuY2UudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWZlcmVuY2VWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50VmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZVN0YXRlbWVudChhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgICAgbGV0IHZhbGlkYXRlc1doZW5TdGF0ZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgdmFsaWRhdGVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChzdGF0ZWQpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0aGlzLnZhbGlkYXRlV2hlblN0YXRlZChhc3NpZ25tZW50cywgY29udGV4dCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbGlkYXRlc1doZW5EZXJpdmVkID0gdGhpcy52YWxpZGF0ZVdoZW5EZXJpdmVkKGNvbnRleHQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2YWxpZGF0ZXNXaGVuU3RhdGVkIHx8IHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24uYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlU3RhdGVtZW50KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTsgIC8vL1xuXG4gICAgaWYgKHRoaXMuc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBhc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHN0YXRlbWVudFN0cmluZyA9IHRoaXMuc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbidzICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmApO1xuXG4gICAgICBzdGF0ZWQgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGFzc2lnbm1lbnRzID0gbnVsbDsgLy8vXG5cbiAgICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24ncyAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlUmVmZXJlbmNlQXNNZXRhdmFyaWFibGUoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICAgIGxldCByZWZlcmVuY2VWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZVN0cmluZyA9IHRoaXMucmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICAgIGFzc3VtcHRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBhc3N1bXB0aW9uJ3MgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlIGFzIHMgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgICByZWZlcmVuY2VWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSA9IHRoaXMucmVmZXJlbmNlLnZhbGlkYXRlQXNNZXRhdmFyaWFibGUoY29udGV4dCk7XG5cbiAgICBpZiAocmVmZXJlbmNlVmFsaWRhdGVzQXNNZXRhdmFyaWFibGUpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIGFzc3VtcHRpb24ncyAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2UgYXMgYSBtZXRhdmFyaWFibGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZVZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgdmFsaWRhdGVXaGVuU3RhdGVkKGFzc2lnbm1lbnRzLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhbGlkYXRlc1doZW5TdGF0ZWQ7XG5cbiAgICBjb25zdCBhc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7YXNzdW1wdGlvblN0cmluZ30nIHN0YXRlZCBhc3N1bXB0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeVJlZmVyZW5jZSh0aGlzLnJlZmVyZW5jZSk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgdmFsaWRhdGVzV2hlblN0YXRlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvcExldmVsTWV0YUFzc2VydGlvbnMgPSBjb250ZXh0LmZpbmRUb3BMZXZlbE1ldGFBc3NlcnRpb25zQnlSZWZlcmVuY2UodGhpcy5yZWZlcmVuY2UpLFxuICAgICAgICAgICAgdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uc1VuaWZ5ID0gdG9wTGV2ZWxNZXRhQXNzZXJ0aW9ucy5ldmVyeSgodG9wTGV2ZWxNZXRhQXNzZXJ0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHRvcExldmVsTWV0YUFzc2VydGlvblVuaWZpZXMgPSB0aGlzLnVuaWZ5VG9wTGV2ZWxNZXRhQXNzZXJ0aW9uKHRvcExldmVsTWV0YUFzc2VydGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgaWYgKHRvcExldmVsTWV0YUFzc2VydGlvblVuaWZpZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIHZhbGlkYXRlc1doZW5TdGF0ZWQgPSB0b3BMZXZlbE1ldGFBc3NlcnRpb25zVW5pZnk7IC8vL1xuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXNXaGVuU3RhdGVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBzdGF0ZWQgYXNzdW1wdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVzV2hlblN0YXRlZDtcbiAgfVxuXG4gIHZhbGlkYXRlV2hlbkRlcml2ZWQoY29udGV4dCkge1xuICAgIGxldCB2YWxpZGF0ZXNXaGVuRGVyaXZlZDtcblxuICAgIGNvbnN0IGFzc3VtcHRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgZGVyaXZlZCBhc3N1bXB0aW9uLi4uYCk7XG5cbiAgICBjb25zdCB0b3BMZXZlbE1ldGFBc3NlcnRpb25QcmVzZW50ID0gY29udGV4dC5pc1RvcExldmVsTWV0YUFzc2VydGlvblByZXNlbnRCeVJlZmVyZW5jZSh0aGlzLnJlZmVyZW5jZSk7XG5cbiAgICB2YWxpZGF0ZXNXaGVuRGVyaXZlZCA9IHRvcExldmVsTWV0YUFzc2VydGlvblByZXNlbnQ7IC8vL1xuXG4gICAgaWYgKHZhbGlkYXRlc1doZW5EZXJpdmVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBkZXJpdmVkIGFzc3VtcHRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBzaW1wbGUgPSB0aGlzLmlzU2ltcGxlKCk7XG5cbiAgICBpZiAoc2ltcGxlKSB7XG4gICAgICBzdGF0ZW1lbnRVbmlmaWVzID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgICAgYXNzdW1wdGlvblN0YXRlbWVudFN0cmluZyA9IHRoaXMuc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2Fzc3VtcHRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgICAgY29uc3QgZ2VuZXJhbFN0YXRlbWVudCA9IHRoaXMuc3RhdGVtZW50LFxuICAgICAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudFVVbmlmaWVzSW50cmluc2ljYWxseSA9IHVuaWZ5U3RhdGVtZW50SW50cmluc2ljYWxseShnZW5lcmFsU3RhdGVtZW50LCBzcGVjaWZpY1N0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSBzdGF0ZW1lbnRVVW5pZmllc0ludHJpbnNpY2FsbHk7ICAvLy9cblxuICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2Fzc3VtcHRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB1bmlmeUxhYmVsKGxhYmVsLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IGxhYmVsVW5pZmllc1dpdGhSZWZlcmVuY2U7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQsIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgYXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLzsvXG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCB3aXRoIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbi4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxVbmlmaWVzID0gdGhpcy5yZWZlcmVuY2UudW5pZnlMYWJlbChsYWJlbCwgc3Vic3RpdHV0aW9ucywgY29udGV4dCk7XG5cbiAgICBsYWJlbFVuaWZpZXNXaXRoUmVmZXJlbmNlID0gbGFiZWxVbmlmaWVzOyAvLy9cblxuICAgIGlmIChsYWJlbFVuaWZpZXNXaXRoUmVmZXJlbmNlKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsIHdpdGggdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBhc3N1bXB0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbFVuaWZpZXNXaXRoUmVmZXJlbmNlO1xuICB9XG5cbiAgdW5pZnlUb3BMZXZlbE1ldGFBc3NlcnRpb24odG9wTGV2ZWxNZXRhQXNzZXJ0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IHRvcExldmVsTWV0YUFzc2VydGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGFzc3VtcHRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAgLy8vXG4gICAgICAgICAgdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uU3RyaW5nID0gdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3RvcExldmVsTWV0YUFzc2VydGlvblN0cmluZ30nIHRvcCBsZXZlbCBtZXRhLWFzc2VydGlvbiB3aXRoIHRoZSAnJHthc3N1bXB0aW9uU3RyaW5nfScgYXNzdW1wdGlvbi4uLmApO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICAgIGNvbnRleHQgPSB0b3BMZXZlbE1ldGFBc3NlcnRpb24uZ2V0Q29udGV4dCgpOyAgLy8vXG5cbiAgICBjb25zdCB7IFN1YnN0aXR1dGlvbnMgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQsICAvLy9cbiAgICAgICAgICBsYWJlbFN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKGNvbnRleHQpLFxuICAgICAgICAgIGxhYmVsID0gdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uLmdldExhYmVsKCksXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IGxhYmVsU3Vic3RpdHV0aW9ucywgLy8vXG4gICAgICAgICAgbGFiZWxVbmlmaWVzID0gdGhpcy51bmlmeUxhYmVsKGxhYmVsLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChsYWJlbFVuaWZpZXMpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKGNvbnRleHQpLFxuICAgICAgICAgICAgc3RhdGVtZW50ID0gdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IHN0YXRlbWVudFN1YnN0aXR1dGlvbnMsIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50VVVuaWZpZXMgPSB0aGlzLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRVVW5pZmllcykge1xuICAgICAgICBjb25zdCBsYWJlbFN1YnN0aXR1dGlvbnNDb3JyZWxhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb25zID0gbGFiZWxTdWJzdGl0dXRpb25zLmNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMoc3RhdGVtZW50U3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgaWYgKGxhYmVsU3Vic3RpdHV0aW9uc0NvcnJlbGF0ZVN0YXRlbWVudFN1YnN0aXR1dGlvbnMpIHtcbiAgICAgICAgICB0b3BMZXZlbE1ldGFBc3NlcnRpb25VbmlmaWVzID0gdHJ1ZTsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodG9wTGV2ZWxNZXRhQXNzZXJ0aW9uVW5pZmllcykge1xuICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgY29udGV4dC50cmFjZShgLi4udW5pZmllZCB0aGUgJyR7dG9wTGV2ZWxNZXRhQXNzZXJ0aW9uU3RyaW5nfScgdG9wIGxldmVsIG1ldGEtYXNzZXJ0aW9uIHdpdGggdGhlICcke2Fzc3VtcHRpb25TdHJpbmd9JyBhc3N1bXB0aW9uLi4uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvcExldmVsTWV0YUFzc2VydGlvblVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb24gPSBudWxsO1xuXG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKHNpbXBsZSkge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gdGhpcywgLy8vXG4gICAgICAgICAgICByZWZlcmVuY2VKU09OID0gcmVmZXJlbmNlVG9SZWZlcmVuY2VKU09OKHJlZmVyZW5jZSk7XG5cbiAgICAgIGpzb24gPSByZWZlcmVuY2VKU09OOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQXNzdW1wdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGFzc3VtcHRpb24gPSBudWxsO1xuXG4gICAgaWYgKGpzb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IG51bGwsXG4gICAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICAgIHN0YXRlbWVudCA9IG51bGwsXG4gICAgICAgICAgICByZWZlcmVuY2UgPSByZWZlcmVuY2VGcm9tSlNPTihqc29uLCBjb250ZXh0KTtcblxuICAgICAgYXNzdW1wdGlvbiA9IG5ldyBBc3N1bXB0aW9uKHN0cmluZywgbm9kZSwgc3RhdGVtZW50LCByZWZlcmVuY2UpXG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc3VtcHRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkFzc3VtcHRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsInN0YXRlbWVudCIsInJlZmVyZW5jZSIsImdldFN0YXRlbWVudCIsImdldFJlZmVyZW5jZSIsImdldE1ldGF2YXJpYWJsZSIsImlzU2ltcGxlIiwic2ltcGxlIiwiY29tcGFyZVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsImNvbXBhcmVzVG9TdWJzdGl0dWlvbiIsImFzc3VtcHRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJzdWJzdGl0dXRpb25TdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZSIsImp1ZGdlbWVudCIsImZpbmRKdWRnZW1lbnRCeU1ldGF2YXJpYWJsZSIsImFzc3VtcHRpb24iLCJnZXREZWNsYXJhdGlvbiIsImFzc3VtcHRpb25Db21hcmVzVG9TdWJzdGl0dXRpb24iLCJzdGF0ZW1lbnRFcXVhbFRvU3RhdGVtZW50IiwiaXNFcXVhbFRvIiwicmVmZXJlbmNlTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSIsImlzTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSIsImRlYnVnIiwidmFsaWRhdGUiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsInZhbGlkYXRlcyIsInJlZmVyZW5jZVZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlIiwidmFsaWRhdGVSZWZlcmVuY2VBc01ldGF2YXJpYWJsZSIsInJlZmVyZW5jZVZhbGlkYXRlcyIsInN0YXRlbWVudFZhbGlkYXRlcyIsInZhbGlkYXRlU3RhdGVtZW50IiwidmFsaWRhdGVzV2hlblN0YXRlZCIsInZhbGlkYXRlc1doZW5EZXJpdmVkIiwidmFsaWRhdGVXaGVuU3RhdGVkIiwidmFsaWRhdGVXaGVuRGVyaXZlZCIsInN0YXRlbWVudFN0cmluZyIsInJlZmVyZW5jZVN0cmluZyIsInZhbGlkYXRlQXNNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlSZWZlcmVuY2UiLCJ0b3BMZXZlbE1ldGFBc3NlcnRpb25zIiwiZmluZFRvcExldmVsTWV0YUFzc2VydGlvbnNCeVJlZmVyZW5jZSIsInRvcExldmVsTWV0YUFzc2VydGlvbnNVbmlmeSIsImV2ZXJ5IiwidG9wTGV2ZWxNZXRhQXNzZXJ0aW9uIiwidG9wTGV2ZWxNZXRhQXNzZXJ0aW9uVW5pZmllcyIsInVuaWZ5VG9wTGV2ZWxNZXRhQXNzZXJ0aW9uIiwidG9wTGV2ZWxNZXRhQXNzZXJ0aW9uUHJlc2VudCIsImlzVG9wTGV2ZWxNZXRhQXNzZXJ0aW9uUHJlc2VudEJ5UmVmZXJlbmNlIiwidW5pZnlTdGF0ZW1lbnQiLCJzdWJzdGl0dXRpb25zIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJzdGF0ZW1lbnRVbmlmaWVzIiwiYXNzdW1wdGlvblN0YXRlbWVudFN0cmluZyIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsInN0YXRlbWVudFVVbmlmaWVzSW50cmluc2ljYWxseSIsInVuaWZ5U3RhdGVtZW50SW50cmluc2ljYWxseSIsInVuaWZ5TGFiZWwiLCJsYWJlbCIsImxhYmVsVW5pZmllc1dpdGhSZWZlcmVuY2UiLCJsYWJlbFN0cmluZyIsImxhYmVsVW5pZmllcyIsInRvcExldmVsTWV0YUFzc2VydGlvblN0cmluZyIsImdldENvbnRleHQiLCJTdWJzdGl0dXRpb25zIiwiZWxlbWVudHMiLCJsYWJlbFN1YnN0aXR1dGlvbnMiLCJmcm9tTm90aGluZyIsImdldExhYmVsIiwic3RhdGVtZW50U3Vic3RpdHV0aW9ucyIsInN0YXRlbWVudFVVbmlmaWVzIiwibGFiZWxTdWJzdGl0dXRpb25zQ29ycmVsYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9ucyIsImNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMiLCJ0b0pTT04iLCJqc29uIiwicmVmZXJlbmNlSlNPTiIsInJlZmVyZW5jZVRvUmVmZXJlbmNlSlNPTiIsImZyb21KU09OIiwicmVmZXJlbmNlRnJvbUpTT04iLCJFbGVtZW50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
|
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _combinator = /*#__PURE__*/ _interop_require_default(require("../combinator"));
|
|
12
12
|
var _elements = require("../../elements");
|
|
13
|
-
var _instance = require("../../utilities/instance");
|
|
14
13
|
function _assert_this_initialized(self) {
|
|
15
14
|
if (self === void 0) {
|
|
16
15
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -146,16 +145,8 @@ var _default = (0, _elements.define)((_BracketedCombinator = /*#__PURE__*/ funct
|
|
|
146
145
|
return statementUnifies;
|
|
147
146
|
}
|
|
148
147
|
}
|
|
149
|
-
], [
|
|
150
|
-
{
|
|
151
|
-
key: "fromNothing",
|
|
152
|
-
value: function fromNothing() {
|
|
153
|
-
var bracketedCombinator = (0, _instance.bracketedCombinatorFromNothing)();
|
|
154
|
-
return bracketedCombinator;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
148
|
]);
|
|
158
149
|
return BracketedCombinator;
|
|
159
150
|
}(_combinator.default), _define_property(_BracketedCombinator, "name", "BracketedCombinator"), _BracketedCombinator));
|
|
160
151
|
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2NvbWJpbmF0b3IvYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJyYWNrZXRlZENvbWJpbmF0b3IgZXh0ZW5kcyBDb21iaW5hdG9yIHtcbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGJyYWNrZXRlZCBjb21iaW5hdG9yLi4uYCk7XG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVzID0gc3VwZXIudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgYnJhY2tldGVkIGNvbWJpbmF0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQnJhY2tldGVkQ29tYmluYXRvclwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQnJhY2tldGVkQ29tYmluYXRvciIsInVuaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJjb250ZXh0Iiwic3RhdGVtZW50VW5pZmllcyIsInN0YXRlbWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiZGVidWciLCJDb21iaW5hdG9yIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7aUVBSnVCO3dCQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUV2QixXQUFlQSxJQUFBQSxnQkFBTSx3Q0FBQzs7YUFBTUM7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7Ozs7WUFDMUJDLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxPQUFPO2dCQUNwRCxJQUFJQztnQkFFSixJQUFNQyxrQkFBa0JMLFVBQVVNLFNBQVM7Z0JBRTNDSCxRQUFRSSxLQUFLLENBQUMsQUFBQyxpQkFBZ0MsT0FBaEJGLGlCQUFnQjtnQkFFL0NELG1CQUFtQix1QkFSS04sZ0NBUUNDLGtCQUFOLElBQUssYUFBZ0JDLFdBQVdDLGFBQWFDLFFBQVFDO2dCQUV4RSxJQUFJQyxrQkFBa0I7b0JBQ3BCRCxRQUFRSyxLQUFLLENBQUMsQUFBQyxtQkFBa0MsT0FBaEJILGlCQUFnQjtnQkFDbkQ7Z0JBRUEsT0FBT0Q7WUFDVDs7OztFQWZzREssbUJBQVUsR0FpQmhFLHVDQUFPQyxRQUFPIn0=
|
|
@@ -9,8 +9,8 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _element = /*#__PURE__*/ _interop_require_default(require("../element"));
|
|
12
|
-
var _temporary = /*#__PURE__*/ _interop_require_default(require("../context/temporary"));
|
|
13
12
|
var _elements = require("../elements");
|
|
13
|
+
var _context = require("../utilities/context");
|
|
14
14
|
var _json = require("../utilities/json");
|
|
15
15
|
function _assert_this_initialized(self) {
|
|
16
16
|
if (self === void 0) {
|
|
@@ -173,21 +173,22 @@ var _default = (0, _elements.define)((_Conclusion = /*#__PURE__*/ function(Eleme
|
|
|
173
173
|
{
|
|
174
174
|
key: "verify",
|
|
175
175
|
value: function verify(context) {
|
|
176
|
+
var _this = this;
|
|
176
177
|
var verifies = false;
|
|
177
|
-
var temporaryContext = _temporary.default.fromNothing(context);
|
|
178
|
-
context = temporaryContext; ///
|
|
179
178
|
var node = this.getNode(), conclusionString = this.getString(); ///
|
|
180
179
|
context.trace("Verifying the '".concat(conclusionString, "' conclusion..."), node);
|
|
181
|
-
if (this.statement
|
|
182
|
-
|
|
180
|
+
if (this.statement !== null) {
|
|
181
|
+
(0, _context.attempt)(function(context) {
|
|
182
|
+
var stated = true, assignments = null, statementValidates = _this.statement.validate(assignments, stated, context);
|
|
183
|
+
if (statementValidates) {
|
|
184
|
+
_this.setContext(context);
|
|
185
|
+
verifies = true;
|
|
186
|
+
}
|
|
187
|
+
}, context);
|
|
183
188
|
} else {
|
|
184
|
-
|
|
185
|
-
if (statementValidates) {
|
|
186
|
-
verifies = true;
|
|
187
|
-
}
|
|
189
|
+
context.debug("Unable to verify the '".concat(conclusionString, "' conclusion because it is nonsense."), node);
|
|
188
190
|
}
|
|
189
191
|
if (verifies) {
|
|
190
|
-
this.setContext(context);
|
|
191
192
|
context.debug("...verified the '".concat(conclusionString, "' conclusion."), node);
|
|
192
193
|
}
|
|
193
194
|
return verifies;
|
|
@@ -197,9 +198,12 @@ var _default = (0, _elements.define)((_Conclusion = /*#__PURE__*/ function(Eleme
|
|
|
197
198
|
key: "unifyStatement",
|
|
198
199
|
value: function unifyStatement(statement, substitutions, context) {
|
|
199
200
|
var statementUnifies;
|
|
200
|
-
var
|
|
201
|
+
var statementString = statement.getString(), conclusionString = this.getString(); ///
|
|
201
202
|
context.trace("Unifying the '".concat(statementString, "' statement with the '").concat(conclusionString, "' conclusion..."));
|
|
202
|
-
var
|
|
203
|
+
var specificContext = context; ///
|
|
204
|
+
context = this.getContext();
|
|
205
|
+
var generalContext = context; ///
|
|
206
|
+
context = specificContext; ///
|
|
203
207
|
statementUnifies = this.statement.unifyStatement(statement, substitutions, generalContext, specificContext);
|
|
204
208
|
if (statementUnifies) {
|
|
205
209
|
context.debug("...unified the '".concat(statementString, "' statement with the '").concat(conclusionString, "' conclusion."));
|
|
@@ -228,8 +232,8 @@ var _default = (0, _elements.define)((_Conclusion = /*#__PURE__*/ function(Eleme
|
|
|
228
232
|
{
|
|
229
233
|
key: "fromJSON",
|
|
230
234
|
value: function fromJSON(json, context) {
|
|
231
|
-
var terms = (0, _json.termsFromJSON)(json, context), frames = (0, _json.framesFromJSON)(json, context), statement = (0, _json.statementFromJSON)(json, context), node = null, string = statement.getString()
|
|
232
|
-
context =
|
|
235
|
+
var terms = (0, _json.termsFromJSON)(json, context), frames = (0, _json.framesFromJSON)(json, context), statement = (0, _json.statementFromJSON)(json, context), node = null, string = statement.getString();
|
|
236
|
+
context = ephemeralContext; ///
|
|
233
237
|
var conclusion = new Conclusion(context, string, node, statement);
|
|
234
238
|
return conclusion;
|
|
235
239
|
}
|
|
@@ -238,4 +242,4 @@ var _default = (0, _elements.define)((_Conclusion = /*#__PURE__*/ function(Eleme
|
|
|
238
242
|
return Conclusion;
|
|
239
243
|
}(_wrap_native_super(_element.default)), _define_property(_Conclusion, "name", "Conclusion"), _Conclusion));
|
|
240
244
|
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbmNsdXNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBFbGVtZW50IGZyb20gXCIuLi9lbGVtZW50XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgYXR0ZW1wdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgdGVybXNGcm9tSlNPTiwgZnJhbWVzRnJvbUpTT04sIHN0YXRlbWVudEZyb21KU09OLCB0ZXJtc1RvVGVybXNKU09OLCBmcmFtZXNUb0ZyYW1lc0pTT04sIHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgIGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbmNsdXNpb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBzdGF0ZW1lbnQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy5zdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50O1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb25jbHVzaW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb25jbHVzaW9uU3RyaW5nfScgY29uY2x1c2lvbi4uLmAsIG5vZGUpO1xuXG4gICAgaWYgKHRoaXMuc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gbnVsbCxcbiAgICAgICAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdGhpcy5zdGF0ZW1lbnQudmFsaWRhdGUoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIHRoaXMuc2V0Q29udGV4dChjb250ZXh0KTtcblxuICAgICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke2NvbmNsdXNpb25TdHJpbmd9JyBjb25jbHVzaW9uIGJlY2F1c2UgaXQgaXMgbm9uc2Vuc2UuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29uY2x1c2lvblN0cmluZ30nIGNvbmNsdXNpb24uYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZXM7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgY29uY2x1c2lvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29uY2x1c2lvblN0cmluZ30nIGNvbmNsdXNpb24uLi5gKTtcblxuICAgIGNvbnN0IHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQ7ICAvLy9cblxuICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnN0IGdlbmVyYWxDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMuc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2NvbmNsdXNpb25TdHJpbmd9JyBjb25jbHVzaW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBmcmFtZXMsXG4gICAgICAgIHRlcm1zO1xuXG4gICAgZnJhbWVzID0gdGhpcy5jb250ZXh0LmdldEZyYW1lcygpO1xuXG4gICAgdGVybXMgPSB0aGlzLmNvbnRleHQuZ2V0VGVybXMoKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudEpTT04gPSBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04odGhpcy5zdGF0ZW1lbnQpLFxuICAgICAgICAgIGZyYW1lc0pTT04gPSBmcmFtZXNUb0ZyYW1lc0pTT04oZnJhbWVzKSxcbiAgICAgICAgICB0ZXJtc0pTT04gPSB0ZXJtc1RvVGVybXNKU09OKHRlcm1zKTtcblxuICAgIGZyYW1lcyA9IGZyYW1lc0pTT047ICAvLy9cblxuICAgIHRlcm1zID0gdGVybXNKU09OOyAgLy8vXG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0YXRlbWVudCxcbiAgICAgICAgICAgIGZyYW1lcyxcbiAgICAgICAgICAgIHRlcm1zXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbmNsdXNpb25cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1zID0gdGVybXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBmcmFtZXMgPSBmcmFtZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0ID0gZXBoZW1lcmFsQ29udGV4dDsgLy8vXG5cbiAgICBjb25zdCBjb25jbHVzaW9uID0gbmV3IENvbmNsdXNpb24oY29udGV4dCwgc3RyaW5nLCBub2RlLCBzdGF0ZW1lbnQpO1xuXG4gICAgcmV0dXJuIGNvbmNsdXNpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkNvbmNsdXNpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsInZlcmlmeSIsInZlcmlmaWVzIiwiZ2V0Tm9kZSIsImNvbmNsdXNpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImF0dGVtcHQiLCJzdGF0ZWQiLCJhc3NpZ25tZW50cyIsInN0YXRlbWVudFZhbGlkYXRlcyIsInZhbGlkYXRlIiwic2V0Q29udGV4dCIsImRlYnVnIiwidW5pZnlTdGF0ZW1lbnQiLCJzdWJzdGl0dXRpb25zIiwic3RhdGVtZW50VW5pZmllcyIsInN0YXRlbWVudFN0cmluZyIsInNwZWNpZmljQ29udGV4dCIsImdldENvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInRvSlNPTiIsImZyYW1lcyIsInRlcm1zIiwiZ2V0RnJhbWVzIiwiZ2V0VGVybXMiLCJzdGF0ZW1lbnRKU09OIiwic3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OIiwiZnJhbWVzSlNPTiIsImZyYW1lc1RvRnJhbWVzSlNPTiIsInRlcm1zSlNPTiIsInRlcm1zVG9UZXJtc0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ0ZXJtc0Zyb21KU09OIiwiZnJhbWVzRnJvbUpTT04iLCJzdGF0ZW1lbnRGcm9tSlNPTiIsImVwaGVtZXJhbENvbnRleHQiLCJjb25jbHVzaW9uIiwiRWxlbWVudCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7OzhEQU5vQjt3QkFFRzt1QkFDQztvQkFDeUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFakksV0FBZ0JBLElBQUFBLGdCQUFNLCtCQUFDOzthQUFNQyxXQUNmQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxTQUFTO2dDQURqQko7O2dCQUV6QixrQkFGeUJBO1lBRW5CQztZQUFTQztZQUFRQzs7UUFFdkIsTUFBS0MsU0FBUyxHQUFHQTs7Ozs7WUFHbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0QsU0FBUztZQUN2Qjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPTCxPQUFPOztnQkFDWixJQUFJTSxXQUFXO2dCQUVmLElBQU1KLE9BQU8sSUFBSSxDQUFDSyxPQUFPLElBQ25CQyxtQkFBbUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztnQkFFL0NULFFBQVFVLEtBQUssQ0FBQyxBQUFDLGtCQUFrQyxPQUFqQkYsa0JBQWlCLG9CQUFrQk47Z0JBRW5FLElBQUksSUFBSSxDQUFDQyxTQUFTLEtBQUssTUFB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
|
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
|
|
12
12
|
var _constructor = /*#__PURE__*/ _interop_require_default(require("../constructor"));
|
|
13
|
-
var _instance = require("../../utilities/instance");
|
|
14
13
|
function _assert_this_initialized(self) {
|
|
15
14
|
if (self === void 0) {
|
|
16
15
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -203,16 +202,8 @@ var _default = (0, _elements.define)((_BracketedConstructor = /*#__PURE__*/ func
|
|
|
203
202
|
return termUnifies;
|
|
204
203
|
}
|
|
205
204
|
}
|
|
206
|
-
], [
|
|
207
|
-
{
|
|
208
|
-
key: "fromNothing",
|
|
209
|
-
value: function fromNothing() {
|
|
210
|
-
var bracketedConstructor = (0, _instance.bracketedConstructorFromNothing)();
|
|
211
|
-
return bracketedConstructor;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
205
|
]);
|
|
215
206
|
return BracketedConstructor;
|
|
216
207
|
}(_constructor.default), _define_property(_BracketedConstructor, "name", "BracketedConstructor"), _BracketedConstructor));
|
|
217
208
|
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2NvbnN0cnVjdG9yL2JyYWNrZXRlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IENvbnN0cnVjdG9yIGZyb20gXCIuLi9jb25zdHJ1Y3RvclwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJyYWNrZXRlZENvbnN0cnVjdG9yIGV4dGVuZHMgQ29uc3RydWN0b3Ige1xuICB1bmlmeVRlcm0odGVybSwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdGVybVVuaWZpZXM7XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSBicmFja2V0ZWQgY29uc3RydWN0b3IuLi5gKTtcblxuICAgIHRlcm1VbmlmaWVzID0gc3VwZXIudW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsICgpID0+IHtcbiAgICAgIGxldCB2ZXJpZmllc0FoZWFkID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IHsgVGVybSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICBicmFja2V0ZWRUZXJtID0gdGVybSwgLy8vXG4gICAgICAgICAgICBicmFja2V0ZWRUZXJtTm9kZSA9IGJyYWNrZXRlZFRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgc2luZ3VsYXJUZXJtTm9kZSA9IGJyYWNrZXRlZFRlcm1Ob2RlLmdldFNpbmd1bGFyVGVybU5vZGUoKTtcblxuICAgICAgaWYgKHNpbmd1bGFyVGVybU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdGVybU5vZGUgPSBzaW5ndWxhclRlcm1Ob2RlOyAgLy8vXG5cbiAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb25zdCB0ZXJtVlZlcmlmaWVzID0gdGVybS52ZXJpZnkoY29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgIGxldCB2ZXJpZmllc0FoZWFkO1xuXG4gICAgICAgICAgY29uc3QgdHlwZSA9IHRlcm0uZ2V0VHlwZSgpO1xuXG4gICAgICAgICAgYnJhY2tldGVkVGVybS5zZXRUeXBlKHR5cGUpO1xuXG4gICAgICAgICAgdmVyaWZpZXNBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZXNBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmVyaWZpZXNBaGVhZCA9IHRlcm1WVmVyaWZpZXM7ICAvLy9cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZlcmlmaWVzQWhlYWQ7XG4gICAgfSk7XG5cbiAgICBpZiAodGVybVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlIGJyYWNrZXRlZCBjb25zdHJ1Y3Rvci5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQnJhY2tldGVkQ29uc3RydWN0b3JcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkJyYWNrZXRlZENvbnN0cnVjdG9yIiwidW5pZnlUZXJtIiwidGVybSIsImNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInRlcm1VbmlmaWVzIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZpZXNBaGVhZCIsIlRlcm0iLCJlbGVtZW50cyIsImJyYWNrZXRlZFRlcm0iLCJicmFja2V0ZWRUZXJtTm9kZSIsImdldE5vZGUiLCJzaW5ndWxhclRlcm1Ob2RlIiwiZ2V0U2luZ3VsYXJUZXJtTm9kZSIsInRlcm1Ob2RlIiwiZnJvbVRlcm1Ob2RlIiwidGVybVZWZXJpZmllcyIsInZlcmlmeSIsInR5cGUiLCJnZXRUeXBlIiwic2V0VHlwZSIsImRlYnVnIiwiQ29uc3RydWN0b3IiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQUE7OztnRUFMcUI7a0VBQ0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFJeEIsV0FBZUEsSUFBQUEsZ0JBQU0seUNBQUM7O2FBQU1DO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOzs7O1lBQzFCQyxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFdBQVc7Z0JBQ2xDLElBQUlDO2dCQUVKLElBQU1DLGFBQWFKLEtBQUtLLFNBQVM7Z0JBRWpDSixRQUFRSyxLQUFLLENBQUMsQUFBQyxpQkFBMkIsT0FBWEYsWUFBVztnQkFFMUNELGNBQWMsdUJBUlVMLGlDQVFKQyxhQUFOLElBQUssYUFBV0MsTUFBTUMsU0FBUztvQkFDM0MsSUFBSU0sZ0JBQWdCO29CQUVwQixJQUFNLEFBQUVDLE9BQVNDLGlCQUFRLENBQWpCRCxNQUNGRSxnQkFBZ0JWLE1BQ2hCVyxvQkFBb0JELGNBQWNFLE9BQU8sSUFDekNDLG1CQUFtQkYsa0JBQWtCRyxtQkFBbUI7b0JBRTlELElBQUlELHFCQUFxQixNQUFNO3dCQUM3QixJQUFNRSxXQUFXRixrQkFBbUIsR0FBRzt3QkFFdkNiLE9BQU9RLEtBQUtRLFlBQVksQ0FBQ0QsVUFBVWQ7d0JBRW5DLElBQU1nQixnQkFBZ0JqQixLQUFLa0IsTUFBTSxDQUFDakIsU0FBUzs0QkFDekMsSUFBSU07NEJBRUosSUFBTVksT0FBT25CLEtBQUtvQixPQUFPOzRCQUV6QlYsY0FBY1csT0FBTyxDQUFDRjs0QkFFdEJaLGdCQUFnQkw7NEJBRWhCLE9BQU9LO3dCQUNUO3dCQUVBQSxnQkFBZ0JVLGVBQWdCLEdBQUc7b0JBQ3JDO29CQUVBLE9BQU9WO2dCQUNUO2dCQUVBLElBQUlKLGFBQWE7b0JBQ2ZGLFFBQVFxQixLQUFLLENBQUMsQUFBQyxtQkFBNkIsT0FBWGxCLFlBQVc7Z0JBQzlDO2dCQUVBLE9BQU9EO1lBQ1Q7Ozs7RUE1Q3VEb0Isb0JBQVcsR0E4Q2xFLHdDQUFPQyxRQUFPIn0=
|
|
@@ -192,7 +192,7 @@ var _default = (0, _elements.define)((_Constructor = /*#__PURE__*/ function(Elem
|
|
|
192
192
|
key: "unifyTerm",
|
|
193
193
|
value: function unifyTerm(term, context, verifyAhead) {
|
|
194
194
|
var termUnifies = false;
|
|
195
|
-
var termString = term.getString(), constructorString = this.getString();
|
|
195
|
+
var termString = term.getString(), constructorString = this.getString(); ///
|
|
196
196
|
context.trace("Unifying the '".concat(termString, "' term with the '").concat(constructorString, "' constructor..."));
|
|
197
197
|
var constructor = this, termUnifiesWithConstructor = (0, _unify.unifyTermWithConstructor)(term, constructor, context);
|
|
198
198
|
if (termUnifiesWithConstructor) {
|
|
@@ -229,4 +229,4 @@ var _default = (0, _elements.define)((_Constructor = /*#__PURE__*/ function(Elem
|
|
|
229
229
|
return Constructor;
|
|
230
230
|
}(_wrap_native_super(_element.default)), _define_property(_Constructor, "name", "Constructor"), _Constructor));
|
|
231
231
|
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbnN0cnVjdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi9wcm9jZXNzL3VuaWZ5XCI7XG5pbXBvcnQgeyB0ZXJtRnJvbUpTT04sIHRlcm1Ub1Rlcm1KU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBDb25zdHJ1Y3RvciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHRlcm0pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGlzUHJvdmlzaW9uYWwoKSB7IHJldHVybiB0aGlzLnRlcm0uaXNQcm92aXNpb25hbCgpOyB9XG5cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMudGVybS5nZXRUeXBlKCk7IH1cblxuICBzZXRUeXBlKHR5cGUpIHsgdGhpcy50ZXJtLnNldFR5cGUodHlwZSk7IH1cblxuICB1bmlmeVRlcm0odGVybSwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdGVybVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci4uLmApO1xuXG4gICAgY29uc3QgY29uc3RydWN0b3IgPSB0aGlzLCAvLy9cbiAgICAgICAgICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IpIHtcbiAgICAgIGxldCB2ZXJpZmllc0FoZWFkO1xuXG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCk7XG5cbiAgICAgIHRlcm0uc2V0VHlwZSh0eXBlKTtcblxuICAgICAgdmVyaWZpZXNBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgIHRlcm1VbmlmaWVzID0gdmVyaWZpZXNBaGVhZDsgIC8vL1xuICAgIH1cblxuICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdGVybUpTT04gPSB0ZXJtVG9UZXJtSlNPTih0aGlzLnRlcm0pLFxuICAgICAgICAgIHRlcm0gPSB0ZXJtSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0ZXJtXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnN0cnVjdG9yXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtID0gdGVybUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yID0gbmV3IENvbnN0cnVjdG9yKHRlcm0pO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJDb25zdHJ1Y3RvciIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwidGVybSIsImdldFRlcm0iLCJpc1Byb3Zpc2lvbmFsIiwiZ2V0VHlwZSIsInNldFR5cGUiLCJ0eXBlIiwidW5pZnlUZXJtIiwidmVyaWZ5QWhlYWQiLCJ0ZXJtVW5pZmllcyIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJjb25zdHJ1Y3RvclN0cmluZyIsInRyYWNlIiwiY29uc3RydWN0b3IiLCJ0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciIsInZlcmlmaWVzQWhlYWQiLCJkZWJ1ZyIsInRvSlNPTiIsInRlcm1KU09OIiwidGVybVRvVGVybUpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ0ZXJtRnJvbUpTT04iLCJFbGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7OERBTm9CO3dCQUVHO3FCQUNrQjtvQkFDSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUU3QyxXQUFlQSxJQUFBQSxnQkFBTSxnQ0FBQzs7YUFBTUMsWUFDZEMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSTtnQ0FEYko7O2dCQUV4QixrQkFGd0JBO1lBRWxCQztZQUFTQztZQUFRQzs7UUFFdkIsTUFBS0MsSUFBSSxHQUFHQTs7Ozs7WUFHZEMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxJQUFJO1lBQ2xCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFrQixPQUFPLElBQUksQ0FBQ0YsSUFBSSxDQUFDRSxhQUFhO1lBQUk7OztZQUVwREMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFZLE9BQU8sSUFBSSxDQUFDSCxJQUFJLENBQUNHLE9BQU87WUFBSTs7O1lBRXhDQyxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUUMsSUFBSTtnQkFBSSxJQUFJLENBQUNMLElBQUksQ0FBQ0ksT0FBTyxDQUFDQztZQUFPOzs7WUFFekNDLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVTixJQUFJLEVBQUVILE9BQU8sRUFBRVUsV0FBVztnQkFDbEMsSUFBSUMsY0FBYztnQkFFbEIsSUFBTUMsYUFBYVQsS0FBS1UsU0FBUyxJQUMzQkMsb0JBQW9CLElBQUksQ0FBQ0QsU0FBUyxJQUFJLEdBQUc7Z0JBRS9DYixRQUFRZSxLQUFLLENBQUMsQUFBQyxpQkFBOENELE9BQTlCRixZQUFXLHFCQUFxQyxPQUFsQkUsbUJBQWtCO2dCQUUvRSxJQUFNRSxjQUFjLElBQUksRUFDbEJDLDZCQUE2QkMsSUFBQUEsK0JBQXdCLEVBQUNmLE1BQU1hLGFBQWFoQjtnQkFFL0UsSUFBSWlCLDRCQUE0QjtvQkFDOUIsSUFBSUU7b0JBRUosSUFBTVgsT0FBTyxJQUFJLENBQUNGLE9BQU87b0JBRXpCSCxLQUFLSSxPQUFPLENBQUNDO29CQUViVyxnQkFBZ0JUO29CQUVoQkMsY0FBY1EsZUFBZ0IsR0FBRztnQkFDbkM7Z0JBRUEsSUFBSVIsYUFBYTtvQkFDZlgsUUFBUW9CLEtBQUssQ0FBQyxBQUFDLG1CQUFnRE4sT0FBOUJGLFlBQVcscUJBQXFDLE9BQWxCRSxtQkFBa0I7Z0JBQ25GO2dCQUVBLE9BQU9IO1lBQ1Q7OztZQUVBVSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsV0FBV0MsSUFBQUEsb0JBQWMsRUFBQyxJQUFJLENBQUNwQixJQUFJLEdBQ25DQSxPQUFPbUIsVUFDUEUsT0FBTztvQkFDTHJCLE1BQUFBO2dCQUNGO2dCQUVOLE9BQU9xQjtZQUNUOzs7O1lBSU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRXhCLE9BQU87Z0JBQzNCLElBQU1HLE9BQU91QixJQUFBQSxrQkFBWSxFQUFDRixNQUFNeEIsVUFDMUJnQixjQUFjLElBQUlqQixZQUFZSTtnQkFFcEMsT0FBT2E7WUFDVDs7OztxQkFoRThDVyxnQkFBTyxJQXlEckQsK0JBQU9DLFFBQU8ifQ==
|