occam-verify-cli 0.0.901 → 0.0.903
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/axiomLemmaTheoremConjecture.js +18 -34
- package/lib/constants.js +1 -9
- package/lib/metaLemmaMetatheorem.js +22 -40
- package/lib/rule.js +45 -83
- package/lib/ruleNames.js +1 -21
- package/lib/utilities/array.js +49 -42
- package/lib/utilities/verifier.js +4 -10
- package/lib/verifier/node/statementAsCombinator.js +7 -2
- package/lib/verifier/nodes/metaLevel.js +13 -3
- package/lib/verify/containedAssertion.js +2 -2
- package/lib/verify/premise.js +1 -3
- package/lib/verify/statement/qualified.js +4 -7
- package/lib/verify/statement/unqualified.js +2 -5
- package/lib/verify/statement.js +30 -18
- package/package.json +2 -2
- package/src/axiomLemmaTheoremConjecture.js +27 -47
- package/src/constants.js +0 -2
- package/src/metaLemmaMetatheorem.js +33 -54
- package/src/rule.js +58 -101
- package/src/ruleNames.js +0 -5
- package/src/utilities/array.js +22 -42
- package/src/utilities/verifier.js +3 -11
- package/src/verifier/node/statementAsCombinator.js +11 -4
- package/src/verifier/nodes/metaLevel.js +19 -4
- package/src/verify/containedAssertion.js +1 -1
- package/src/verify/premise.js +0 -2
- package/src/verify/statement/qualified.js +3 -7
- package/src/verify/statement/unqualified.js +1 -5
- package/src/verify/statement.js +33 -17
- package/lib/permutationsMatrix.js +0 -466136
- package/lib/utilities/permutations.js +0 -114
- package/src/permutationsMatrix.js +0 -6
- package/src/utilities/permutations.js +0 -148
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
var _necessary = require("necessary");
|
|
6
|
-
var _array = require("../utilities/array");
|
|
7
|
-
var _constants = require("../constants");
|
|
8
|
-
function _array_like_to_array(arr, len) {
|
|
9
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
10
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
11
|
-
return arr2;
|
|
12
|
-
}
|
|
13
|
-
function _array_without_holes(arr) {
|
|
14
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
15
|
-
}
|
|
16
|
-
function _iterable_to_array(iter) {
|
|
17
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
18
|
-
}
|
|
19
|
-
function _non_iterable_spread() {
|
|
20
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
21
|
-
}
|
|
22
|
-
function _to_consumable_array(arr) {
|
|
23
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
24
|
-
}
|
|
25
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
26
|
-
if (!o) return;
|
|
27
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
28
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
29
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
30
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
31
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
32
|
-
}
|
|
33
|
-
var writeFile = _necessary.fileSystemUtilities.writeFile;
|
|
34
|
-
writePermutationsMatrixFile();
|
|
35
|
-
function permutationsMatrixFromNothing() {
|
|
36
|
-
var permutationsMatrix = [];
|
|
37
|
-
for(var indexesLength = 0; indexesLength <= _constants.MAXIMUM_INDEXES_LENGTH; indexesLength++){
|
|
38
|
-
var permutationsArray = [];
|
|
39
|
-
for(var permutationLength = 0; permutationLength <= _constants.MAXIMUM_PERMUTATION_LENGTH; permutationLength++){
|
|
40
|
-
var permutations = permutationLength === 0 || permutationLength > indexesLength ? null : permutationsFromIndexesLengthAndPermutationLength(indexesLength, permutationLength);
|
|
41
|
-
permutationsArray.push(permutations);
|
|
42
|
-
}
|
|
43
|
-
permutationsMatrix.push(permutationsArray);
|
|
44
|
-
}
|
|
45
|
-
return permutationsMatrix;
|
|
46
|
-
}
|
|
47
|
-
function writePermutationsMatrixFile() {
|
|
48
|
-
var permutationsMatrix = permutationsMatrixFromNothing(), permutationsMatrixJSON = JSON.stringify(permutationsMatrix), permutationsMatrixFileName = "./bin/permutationsMatrix.js", permutationsMatrixFileContent = '"use strict";\n \nconst permutationsMatrix = '.concat(permutationsMatrixJSON, ";\n \nexport default permutationsMatrix; \n ");
|
|
49
|
-
writeFile(permutationsMatrixFileName, permutationsMatrixFileContent);
|
|
50
|
-
}
|
|
51
|
-
function permutationsFromChoice(choice) {
|
|
52
|
-
var permutations = [], choiceLength = choice.length;
|
|
53
|
-
if (choiceLength === 1) {
|
|
54
|
-
var permutation = choice.slice();
|
|
55
|
-
permutations.push(permutation);
|
|
56
|
-
} else {
|
|
57
|
-
var innerChoice = choice.slice(0), start = 0, deleteCount = 1, indexes = innerChoice.splice(start, deleteCount), firstIndex = (0, _array.first)(indexes), innerPermutations = permutationsFromChoice(innerChoice);
|
|
58
|
-
innerPermutations.forEach(function(innerPermutation) {
|
|
59
|
-
for(var position = 0; position < choiceLength; position++){
|
|
60
|
-
var permutation = innerPermutation.slice(0), start = position, deleteCount = 0;
|
|
61
|
-
permutation.splice(start, deleteCount, firstIndex);
|
|
62
|
-
permutations.push(permutation);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
return permutations;
|
|
67
|
-
}
|
|
68
|
-
function permutationsFromChoices(choices) {
|
|
69
|
-
var permutations = [];
|
|
70
|
-
choices.forEach(function(choice) {
|
|
71
|
-
var choicePermutations = permutationsFromChoice(choice);
|
|
72
|
-
(0, _array.push)(permutations, choicePermutations);
|
|
73
|
-
});
|
|
74
|
-
return permutations;
|
|
75
|
-
}
|
|
76
|
-
function indexesFromIndexesLength(indexesLength) {
|
|
77
|
-
var indexes = [];
|
|
78
|
-
for(var index = 0; index < indexesLength; index++){
|
|
79
|
-
indexes.push(index);
|
|
80
|
-
}
|
|
81
|
-
return indexes;
|
|
82
|
-
}
|
|
83
|
-
function choicesFromIndexesAndChoiceLength(indexes, choiceLength) {
|
|
84
|
-
var choices = [], indexesLength = indexes.length;
|
|
85
|
-
if (choiceLength === 0) {
|
|
86
|
-
///
|
|
87
|
-
} else if (choiceLength === 1) {
|
|
88
|
-
for(var position = 0; position < indexesLength; position++){
|
|
89
|
-
var index = indexes[position], choice = [
|
|
90
|
-
index
|
|
91
|
-
];
|
|
92
|
-
choices.push(choice);
|
|
93
|
-
}
|
|
94
|
-
} else {
|
|
95
|
-
var _loop = function(position1) {
|
|
96
|
-
var innerIndexes = indexes.slice(0), start = 0, deleteCount = position1 + 1, deletedIndexes = innerIndexes.splice(start, deleteCount), lastDeletedIndex = (0, _array.last)(deletedIndexes), index = lastDeletedIndex, innerChoices = choicesFromIndexesAndChoiceLength(innerIndexes, innerChoiceLength);
|
|
97
|
-
innerChoices.forEach(function(innerChoice) {
|
|
98
|
-
var choice = [
|
|
99
|
-
index
|
|
100
|
-
].concat(_to_consumable_array(innerChoice));
|
|
101
|
-
choices.push(choice);
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
var innerChoiceLength = choiceLength - 1;
|
|
105
|
-
for(var position1 = 0; position1 < indexesLength; position1++)_loop(position1);
|
|
106
|
-
}
|
|
107
|
-
return choices;
|
|
108
|
-
}
|
|
109
|
-
function permutationsFromIndexesLengthAndPermutationLength(indexesLength, permutationLength) {
|
|
110
|
-
var choiceLength = permutationLength, indexes = indexesFromIndexesLength(indexesLength), choices = choicesFromIndexesAndChoiceLength(indexes, choiceLength), permutations = permutationsFromChoices(choices);
|
|
111
|
-
return permutations;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGVybXV0YXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBwdXNoLCBsYXN0LCBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IE1BWElNVU1fSU5ERVhFU19MRU5HVEgsIE1BWElNVU1fUEVSTVVUQVRJT05fTEVOR1RIIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHdyaXRlRmlsZSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxud3JpdGVQZXJtdXRhdGlvbnNNYXRyaXhGaWxlKCk7XG5cbmZ1bmN0aW9uIHBlcm11dGF0aW9uc01hdHJpeEZyb21Ob3RoaW5nKCkge1xuICBjb25zdCBwZXJtdXRhdGlvbnNNYXRyaXggPSBbXTtcblxuICBmb3IgKGxldCBpbmRleGVzTGVuZ3RoID0gMDsgaW5kZXhlc0xlbmd0aCA8PSBNQVhJTVVNX0lOREVYRVNfTEVOR1RIOyBpbmRleGVzTGVuZ3RoKyspIHtcbiAgICBjb25zdCBwZXJtdXRhdGlvbnNBcnJheSA9IFtdO1xuXG4gICAgZm9yIChsZXQgcGVybXV0YXRpb25MZW5ndGggPSAwOyBwZXJtdXRhdGlvbkxlbmd0aCA8PSBNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSDsgcGVybXV0YXRpb25MZW5ndGgrKykge1xuICAgICAgY29uc3QgcGVybXV0YXRpb25zID0gKChwZXJtdXRhdGlvbkxlbmd0aCA9PT0gMCkgfHwgKHBlcm11dGF0aW9uTGVuZ3RoID4gaW5kZXhlc0xlbmd0aCkpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybXV0YXRpb25zRnJvbUluZGV4ZXNMZW5ndGhBbmRQZXJtdXRhdGlvbkxlbmd0aChpbmRleGVzTGVuZ3RoLCBwZXJtdXRhdGlvbkxlbmd0aCk7XG5cbiAgICAgIHBlcm11dGF0aW9uc0FycmF5LnB1c2gocGVybXV0YXRpb25zKTtcbiAgICB9XG5cbiAgICBwZXJtdXRhdGlvbnNNYXRyaXgucHVzaChwZXJtdXRhdGlvbnNBcnJheSk7XG4gIH1cblxuICByZXR1cm4gcGVybXV0YXRpb25zTWF0cml4O1xufVxuXG5mdW5jdGlvbiB3cml0ZVBlcm11dGF0aW9uc01hdHJpeEZpbGUoKSB7XG4gIGNvbnN0IHBlcm11dGF0aW9uc01hdHJpeCA9IHBlcm11dGF0aW9uc01hdHJpeEZyb21Ob3RoaW5nKCksXG4gICAgICAgIHBlcm11dGF0aW9uc01hdHJpeEpTT04gPSBKU09OLnN0cmluZ2lmeShwZXJtdXRhdGlvbnNNYXRyaXgpLFxuICAgICAgICBwZXJtdXRhdGlvbnNNYXRyaXhGaWxlTmFtZSA9IFwiLi9iaW4vcGVybXV0YXRpb25zTWF0cml4LmpzXCIsXG4gICAgICAgIHBlcm11dGF0aW9uc01hdHJpeEZpbGVDb250ZW50ID0gYFwidXNlIHN0cmljdFwiO1xuICAgICAgICBcbmNvbnN0IHBlcm11dGF0aW9uc01hdHJpeCA9ICR7cGVybXV0YXRpb25zTWF0cml4SlNPTn07XG4gIFxuZXhwb3J0IGRlZmF1bHQgcGVybXV0YXRpb25zTWF0cml4OyAgICAgIFxuICBgO1xuXG4gIHdyaXRlRmlsZShwZXJtdXRhdGlvbnNNYXRyaXhGaWxlTmFtZSwgcGVybXV0YXRpb25zTWF0cml4RmlsZUNvbnRlbnQpXG59XG5cbmZ1bmN0aW9uIHBlcm11dGF0aW9uc0Zyb21DaG9pY2UoY2hvaWNlKSB7XG4gIGNvbnN0IHBlcm11dGF0aW9ucyA9IFtdLFxuICAgICAgICBjaG9pY2VMZW5ndGggPSBjaG9pY2UubGVuZ3RoO1xuXG4gIGlmIChjaG9pY2VMZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBwZXJtdXRhdGlvbiA9IGNob2ljZS5zbGljZSgpO1xuXG4gICAgcGVybXV0YXRpb25zLnB1c2gocGVybXV0YXRpb24pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlubmVyQ2hvaWNlID0gY2hvaWNlLnNsaWNlKDApLFxuICAgICAgICAgIHN0YXJ0ID0gMCxcbiAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgaW5kZXhlcyA9IGlubmVyQ2hvaWNlLnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgIGZpcnN0SW5kZXggPSBmaXJzdChpbmRleGVzKSxcbiAgICAgICAgICBpbm5lclBlcm11dGF0aW9ucyA9IHBlcm11dGF0aW9uc0Zyb21DaG9pY2UoaW5uZXJDaG9pY2UpO1xuXG4gICAgaW5uZXJQZXJtdXRhdGlvbnMuZm9yRWFjaCgoaW5uZXJQZXJtdXRhdGlvbikgPT4ge1xuICAgICAgZm9yIChsZXQgcG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IGNob2ljZUxlbmd0aDsgcG9zaXRpb24rKykge1xuICAgICAgICBjb25zdCBwZXJtdXRhdGlvbiA9IGlubmVyUGVybXV0YXRpb24uc2xpY2UoMCksXG4gICAgICAgICAgICAgIHN0YXJ0ID0gcG9zaXRpb24sIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDA7XG5cbiAgICAgICAgcGVybXV0YXRpb24uc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCwgZmlyc3RJbmRleCk7XG5cbiAgICAgICAgcGVybXV0YXRpb25zLnB1c2gocGVybXV0YXRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBlcm11dGF0aW9ucztcbn1cblxuZnVuY3Rpb24gcGVybXV0YXRpb25zRnJvbUNob2ljZXMoY2hvaWNlcykge1xuICBjb25zdCBwZXJtdXRhdGlvbnMgPSBbXTtcblxuICBjaG9pY2VzLmZvckVhY2goKGNob2ljZSkgPT4ge1xuICAgIGNvbnN0IGNob2ljZVBlcm11dGF0aW9ucyA9IHBlcm11dGF0aW9uc0Zyb21DaG9pY2UoY2hvaWNlKTtcblxuICAgIHB1c2gocGVybXV0YXRpb25zLCBjaG9pY2VQZXJtdXRhdGlvbnMpO1xuICB9KTtcblxuICByZXR1cm4gcGVybXV0YXRpb25zO1xufVxuXG5mdW5jdGlvbiBpbmRleGVzRnJvbUluZGV4ZXNMZW5ndGgoaW5kZXhlc0xlbmd0aCkge1xuICBjb25zdCBpbmRleGVzID0gW107XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGluZGV4ZXNMZW5ndGg7IGluZGV4KyspIHtcbiAgICBpbmRleGVzLnB1c2goaW5kZXgpO1xuICB9XG5cbiAgcmV0dXJuIGluZGV4ZXM7XG59XG5cbmZ1bmN0aW9uIGNob2ljZXNGcm9tSW5kZXhlc0FuZENob2ljZUxlbmd0aChpbmRleGVzLCBjaG9pY2VMZW5ndGgpIHtcbiAgY29uc3QgY2hvaWNlcyA9IFtdLFxuICAgICAgICBpbmRleGVzTGVuZ3RoID0gaW5kZXhlcy5sZW5ndGg7XG5cbiAgaWYgKGNob2ljZUxlbmd0aCA9PT0gMCkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKGNob2ljZUxlbmd0aCA9PT0gMSkge1xuICAgIGZvciAobGV0IHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBpbmRleGVzTGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGluZGV4ZXNbcG9zaXRpb25dLFxuICAgICAgICAgICAgY2hvaWNlID0gW1xuICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgXTtcblxuICAgICAgY2hvaWNlcy5wdXNoKGNob2ljZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlubmVyQ2hvaWNlTGVuZ3RoID0gY2hvaWNlTGVuZ3RoIC0gMTtcblxuICAgIGZvciAobGV0IHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBpbmRleGVzTGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgICBjb25zdCBpbm5lckluZGV4ZXMgPSBpbmRleGVzLnNsaWNlKDApLFxuICAgICAgICAgICAgc3RhcnQgPSAwLCAvLy9cbiAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gcG9zaXRpb24gKyAxLFxuICAgICAgICAgICAgZGVsZXRlZEluZGV4ZXMgPSBpbm5lckluZGV4ZXMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCksXG4gICAgICAgICAgICBsYXN0RGVsZXRlZEluZGV4ID0gbGFzdChkZWxldGVkSW5kZXhlcyksXG4gICAgICAgICAgICBpbmRleCA9IGxhc3REZWxldGVkSW5kZXgsIC8vL1xuICAgICAgICAgICAgaW5uZXJDaG9pY2VzID0gY2hvaWNlc0Zyb21JbmRleGVzQW5kQ2hvaWNlTGVuZ3RoKGlubmVySW5kZXhlcywgaW5uZXJDaG9pY2VMZW5ndGgpO1xuXG4gICAgICBpbm5lckNob2ljZXMuZm9yRWFjaCgoaW5uZXJDaG9pY2UpID0+IHtcbiAgICAgICAgY29uc3QgY2hvaWNlID0gW1xuICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIC4uLmlubmVyQ2hvaWNlXG4gICAgICAgIF07XG5cbiAgICAgICAgY2hvaWNlcy5wdXNoKGNob2ljZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hvaWNlcztcbn1cblxuZnVuY3Rpb24gcGVybXV0YXRpb25zRnJvbUluZGV4ZXNMZW5ndGhBbmRQZXJtdXRhdGlvbkxlbmd0aChpbmRleGVzTGVuZ3RoLCBwZXJtdXRhdGlvbkxlbmd0aCkge1xuICBjb25zdCBjaG9pY2VMZW5ndGggPSBwZXJtdXRhdGlvbkxlbmd0aCwgLy8vXG4gICAgICAgIGluZGV4ZXMgPSBpbmRleGVzRnJvbUluZGV4ZXNMZW5ndGgoaW5kZXhlc0xlbmd0aCksXG4gICAgICAgIGNob2ljZXMgPSBjaG9pY2VzRnJvbUluZGV4ZXNBbmRDaG9pY2VMZW5ndGgoaW5kZXhlcywgY2hvaWNlTGVuZ3RoKSxcbiAgICAgICAgcGVybXV0YXRpb25zID0gcGVybXV0YXRpb25zRnJvbUNob2ljZXMoY2hvaWNlcyk7XG5cbiAgcmV0dXJuIHBlcm11dGF0aW9ucztcbn1cbiJdLCJuYW1lcyI6WyJ3cml0ZUZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVQZXJtdXRhdGlvbnNNYXRyaXhGaWxlIiwicGVybXV0YXRpb25zTWF0cml4RnJvbU5vdGhpbmciLCJwZXJtdXRhdGlvbnNNYXRyaXgiLCJpbmRleGVzTGVuZ3RoIiwiTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCIsInBlcm11dGF0aW9uc0FycmF5IiwicGVybXV0YXRpb25MZW5ndGgiLCJNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCIsInBlcm11dGF0aW9ucyIsInBlcm11dGF0aW9uc0Zyb21JbmRleGVzTGVuZ3RoQW5kUGVybXV0YXRpb25MZW5ndGgiLCJwdXNoIiwicGVybXV0YXRpb25zTWF0cml4SlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJwZXJtdXRhdGlvbnNNYXRyaXhGaWxlTmFtZSIsInBlcm11dGF0aW9uc01hdHJpeEZpbGVDb250ZW50IiwicGVybXV0YXRpb25zRnJvbUNob2ljZSIsImNob2ljZSIsImNob2ljZUxlbmd0aCIsImxlbmd0aCIsInBlcm11dGF0aW9uIiwic2xpY2UiLCJpbm5lckNob2ljZSIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJpbmRleGVzIiwic3BsaWNlIiwiZmlyc3RJbmRleCIsImZpcnN0IiwiaW5uZXJQZXJtdXRhdGlvbnMiLCJmb3JFYWNoIiwiaW5uZXJQZXJtdXRhdGlvbiIsInBvc2l0aW9uIiwicGVybXV0YXRpb25zRnJvbUNob2ljZXMiLCJjaG9pY2VzIiwiY2hvaWNlUGVybXV0YXRpb25zIiwiaW5kZXhlc0Zyb21JbmRleGVzTGVuZ3RoIiwiaW5kZXgiLCJjaG9pY2VzRnJvbUluZGV4ZXNBbmRDaG9pY2VMZW5ndGgiLCJpbm5lckluZGV4ZXMiLCJkZWxldGVkSW5kZXhlcyIsImxhc3REZWxldGVkSW5kZXgiLCJsYXN0IiwiaW5uZXJDaG9pY2VzIiwiaW5uZXJDaG9pY2VMZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7O3lCQUVvQztxQkFFRjt5QkFDaUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5FLElBQU0sQUFBRUEsWUFBY0Ms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
|