occam-grammars 1.0.703 → 1.0.705
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/example.js +2 -2
- package/lib/florence/bnf.js +2 -2
- package/package.json +1 -1
- package/src/florence/bnf.js +137 -119
package/lib/florence/bnf.js
CHANGED
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var bnf = 'document ::= ( topLevelDeclaration | verticalSpace | error )+ ;\n\n\n\ntopLevelDeclaration ::= typeDeclaration \n \n | variableDeclaration \n \n | combinatorDeclaration \n \n | constructorDeclaration \n \n | disjointTypeDeclaration \n \n | metavariableDeclaration \n \n | dependentTypeDeclaration \n \n | rule \n\n | axiom \n\n | lemma \n\n | theorem \n\n | conjecture \n\n | metaLemma \n\n | metatheorem \n\n ;\n\n\n\nverticalSpace ::= <END_OF_LINE>+ ;\n\n\n\nerror. ::= . ;\n\n\n\ntypeDeclaration ::= "Type" type ( ":" type )? <END_OF_LINE> ;\n \nvariableDeclaration ::= "Variable" variable ( ":" type )? <END_OF_LINE> ;\n \ncombinatorDeclaration ::= "Combinator" statement... <END_OF_LINE> ;\n \nconstructorDeclaration ::= "Constructor" term... ( ":" type )? <END_OF_LINE> ;\n \nmetavariableDeclaration ::= "Metavariable" metavariable ":" metaType <END_OF_LINE> ;\n \n\n \nrule ::= "Rule" "(" label ( "," label )* ")" <END_OF_LINE> \n\n ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )?\n \n "Conclusion" <END_OF_LINE> conclusion \n \n ruleProof? ; \n\naxiom ::= "Axiom" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n ) ;\n\nlemma ::= "Lemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n )\n \n proof ;\n\ntheorem ::= "Theorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n )\n \n proof ;\n\nconjecture ::= "Conjecture" "(" label ( "," label )* ")" <END_OF_LINE>\n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n )\n \n proof? ;\n\nmetaLemma ::= "MetaLemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n ( \n \n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )\n \n | \n \n metaConsequent\n \n ) \n \n metaproof ;\n\nmetatheorem ::= "Metatheorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n ( \n \n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )\n \n | \n \n metaConsequent\n \n ) \n \n metaproof ;\n\n\n\nruleProof ::= "Proof" <END_OF_LINE> ruleDerivation ;\n \nproof ::= "Proof" <END_OF_LINE> derivation ;\n \nmetaproof ::= "Proof" <END_OF_LINE> metaDerivation ; \n\n\n\nruleSubproof ::= ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )\n \n ruleSubDerivation ; \n\nsubproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;\n\nmetaSubproof ::= "Suppose" <END_OF_LINE> metaSupposition+ metaSubDerivation ;\n\n\n\nruleDerivation ::= (\n\n ( ruleSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n\n "Therefore" <END_OF_LINE> \n \n )? \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\nderivation ::= (\n\n ( subproof | qualifiedStatement | unqualifiedStatement )+ \n\n "Therefore" <END_OF_LINE>\n \n )? \n \n ( qualifiedStatement | unqualifiedStatement ) ;\n\nmetaDerivation ::= (\n\n ( metaSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n\n "Therefore" <END_OF_LINE> \n \n )? \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\n\n\nruleSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ( ruleSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\nsubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ( subproof | qualifiedStatement | unqualifiedStatement )+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n ( qualifiedStatement | unqualifiedStatement ) ; \n\nmetaSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ( metaSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\n\n\npremise ::= unqualifiedMetastatement ;\n\nconclusion ::= unqualifiedMetastatement ;\n\nsupposition ::= unqualifiedStatement ;\n\nconsequent ::= unqualifiedStatement ;\n\nmetaSupposition ::= unqualifiedMetastatement ;\n\nmetaConsequent ::= unqualifiedMetastatement ;\n\n\n\nunqualifiedMetastatement.. ::= metastatement... <END_OF_LINE> \n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedMetastatement.. ::= metastatement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ; \n\nunqualifiedStatement.. ::= statement... <END_OF_LINE>\n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedStatement.. ::= statement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ;\n\n\n\nnonsense. ::= ( [type] | [symbol] | [operator] | [special] | [secondary-keyword] | [meta-type] | [name] | [unassigned] )+ ;\n\n\n\nreference. ::= metavariable ;\n\nlabel. ::= metavariable ;\n\n\n\nmetaArgument ::= statement ( ) \n\n | metaType ( ) \n \n ;\n\nargument ::= term ( ) \n\n | type ( )\n \n ;\n\n\n\nmetavariable ::= [name] ( <NO_WHITESPACE>"(" argument... ")" )? ;\n\nvariable ::= [name] ;\n\n\n\nmetaType ::= [meta-type] ;\n\ntype ::= [type] ;';
|
|
11
|
+
var bnf = 'document ::= ( topLevelDeclaration | verticalSpace | error )+ ;\n\n\n\ntopLevelDeclaration ::= typeDeclaration \n \n | variableDeclaration \n \n | combinatorDeclaration \n \n | constructorDeclaration \n \n | disjointTypeDeclaration \n \n | metavariableDeclaration \n \n | dependentTypeDeclaration \n \n | rule \n\n | axiom \n\n | lemma \n\n | theorem \n\n | conjecture \n\n | metaLemma \n\n | metatheorem \n\n ;\n\n\n\nverticalSpace ::= <END_OF_LINE>+ ;\n\n\n\nerror. ::= . ;\n\n\n\ntypeDeclaration ::= "Type" type ( ":" type )? <END_OF_LINE> ;\n \nvariableDeclaration ::= "Variable" variable ( ":" type )? <END_OF_LINE> ;\n \ncombinatorDeclaration ::= "Combinator" statement... <END_OF_LINE> ;\n \nconstructorDeclaration ::= "Constructor" term... ( ":" type )? <END_OF_LINE> ;\n \nmetavariableDeclaration ::= "Metavariable" metavariable ":" metaType <END_OF_LINE> ;\n \n\n \nrule ::= "Rule" "(" label ( "," label )* ")" <END_OF_LINE> \n\n ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )?\n \n "Conclusion" <END_OF_LINE> conclusion \n \n ruleProof? ; \n\nmetaLemma ::= "MetaLemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )?\n \n metaConsequent\n \n metaproof ;\n\nmetatheorem ::= "Metatheorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )?\n \n metaConsequent\n \n metaproof ;\n\naxiom ::= "Axiom" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent ;\n\nlemma ::= "Lemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent\n \n proof ;\n\ntheorem ::= "Theorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent\n \n proof ;\n\nconjecture ::= "Conjecture" "(" label ( "," label )* ")" <END_OF_LINE>\n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent\n \n proof? ;\n\n\n\nruleProof ::= "Proof" <END_OF_LINE> ruleDerivation ;\n \nmetaproof ::= "Proof" <END_OF_LINE> metaDerivation ;\n \nproof ::= "Proof" <END_OF_LINE> derivation ;\n \n\n\nruleSubproof ::= ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )\n \n ruleSubDerivation ; \n\nmetaSubproof ::= "Suppose" <END_OF_LINE> metaSupposition+ metaSubDerivation ;\n\nsubproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;\n\n\n\nruleDerivation ::= ( \n\n ruleProofStep+ \n \n "Therefore" <END_OF_LINE> \n \n )? \n \n lastRuleProofStep ; \n\nmetaDerivation ::= ( \n\n metaProofStep+ \n \n "Therefore" <END_OF_LINE> \n \n )? \n \n lastMetaProofStep ; \n\nderivation ::= ( \n\n proofStep+ \n \n "Therefore" <END_OF_LINE> \n \n )? \n \n lastProofStep ; \n\n\n\nruleSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ruleProofStep+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n lastRuleProofStep ; \n\nmetaSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n metaProofStep+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n lastMetaProofStep ; \n\nsubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n proofStep+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n lastProofStep ; \n\n\n\npremise.. ::= unqualifiedMetastatement ;\n\nconclusion.. ::= unqualifiedMetastatement ;\n\nmetaSupposition.. ::= unqualifiedMetastatement ;\n\nmetaConsequent.. ::= unqualifiedMetastatement ;\n\nsupposition.. ::= unqualifiedStatement ;\n\nconsequent.. ::= unqualifiedStatement ;\n\n\n\nruleProofStep.. ::= ruleSubproof \n\n | qualifiedMetastatement \n \n | unqualifiedMetastatement \n\n | qualifiedStatement \n \n | unqualifiedStatement \n \n ; \n\nmetaProofStep.. ::= metaSubproof \n\n | qualifiedMetastatement \n \n | unqualifiedMetastatement \n\n | qualifiedStatement \n \n | unqualifiedStatement \n \n ; \n\nproofStep.. ::= subproof \n\n | qualifiedStatement \n \n | unqualifiedStatement \n \n ; \n\n\n\nlastRuleProofStep.. ::= qualifiedMetastatement \n\n | unqualifiedMetastatement \n \n ;\n\nlastMetaProofStep.. ::= qualifiedMetastatement \n\n | unqualifiedMetastatement \n \n ;\n\nlastProofStep.. ::= qualifiedStatement \n\n | unqualifiedStatement \n \n ;\n\n\n\nunqualifiedMetastatement ::= metastatement... <END_OF_LINE> \n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedMetastatement ::= metastatement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ; \n\nunqualifiedStatement ::= statement... <END_OF_LINE>\n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedStatement ::= statement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ;\n\n\n\nnonsense. ::= ( [type] | [symbol] | [operator] | [special] | [secondary-keyword] | [meta-type] | [name] | [unassigned] )+ ;\n\n\n\nreference. ::= metavariable ;\n\nlabel. ::= metavariable ;\n\n\n\nmetaArgument ::= statement ( ) \n\n | metaType ( ) \n \n ;\n\nargument ::= term ( ) \n\n | type ( )\n \n ;\n\n\n\nmetavariable ::= [name] ( <NO_WHITESPACE>"(" argument... ")" )? ;\n\nvariable ::= [name] ;\n\n\n\nmetaType ::= [meta-type] ;\n\ntype ::= [type] ;';
|
|
12
12
|
var _default = bnf;
|
|
13
13
|
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbG9yZW5jZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBkb2N1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIHRvcExldmVsRGVjbGFyYXRpb24gfCB2ZXJ0aWNhbFNwYWNlIHwgZXJyb3IgKSsgO1xuXG5cblxudG9wTGV2ZWxEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgdHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBkaXNqb2ludFR5cGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZGVwZW5kZW50VHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcnVsZSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYXhpb20gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxlbW1hIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBjb25qZWN0dXJlIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBtZXRhTGVtbWEgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG52ZXJ0aWNhbFNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICA8RU5EX09GX0xJTkU+KyA7XG5cblxuXG5lcnJvci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuXG5cbnR5cGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiVHlwZVwiIHR5cGUgKCBcIjpcIiB0eXBlICk/IDxFTkRfT0ZfTElORT4gO1xuIFxudmFyaWFibGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgXCJWYXJpYWJsZVwiIHZhcmlhYmxlICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbWJpbmF0b3JEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICA6Oj0gIFwiQ29tYmluYXRvclwiIHN0YXRlbWVudC4uLiA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbnN0cnVjdG9yRGVjbGFyYXRpb24gICAgICAgICAgICAgICA6Oj0gIFwiQ29uc3RydWN0b3JcIiB0ZXJtLi4uICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uICAgICAgICAgICAgICA6Oj0gIFwiTWV0YXZhcmlhYmxlXCIgbWV0YXZhcmlhYmxlIFwiOlwiIG1ldGFUeXBlIDxFTkRfT0ZfTElORT4gO1xuIFxuXG4gIFxucnVsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJSdWxlXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlc1wiIDxFTkRfT0ZfTElORT4gcHJlbWlzZSBwcmVtaXNlKyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIlByZW1pc2VcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb25jbHVzaW9uXCIgPEVORF9PRl9MSU5FPiBjb25jbHVzaW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVByb29mPyAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbmF4aW9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiQXhpb21cIiBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgO1xuXG5sZW1tYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIkxlbW1hXCIgKCBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiICk/IDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlcXVlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2YgO1xuXG50aGVvcmVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIlRoZW9yZW1cIiBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb29mIDtcblxuY29uamVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJDb25qZWN0dXJlXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb29mPyA7XG5cbm1ldGFMZW1tYSAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiTWV0YUxlbW1hXCIgKCBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiICk/IDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gbWV0YVN1cHBvc2l0aW9uKyBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlblwiIDxFTkRfT0ZfTElORT4gbWV0YUNvbnNlcXVlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNvbnNlcXVlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhcHJvb2YgO1xuXG5tZXRhdGhlb3JlbSAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIk1ldGF0aGVvcmVtXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IG1ldGFTdXBwb3NpdGlvbisgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YXByb29mIDtcblxuXG5cbnJ1bGVQcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiUHJvb2ZcIiA8RU5EX09GX0xJTkU+IHJ1bGVEZXJpdmF0aW9uIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxucHJvb2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJQcm9vZlwiIDxFTkRfT0ZfTElORT4gZGVyaXZhdGlvbiA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxubWV0YXByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJQcm9vZlwiIDxFTkRfT0ZfTElORT4gbWV0YURlcml2YXRpb24gOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG5cblxucnVsZVN1YnByb29mICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFwiUHJlbWlzZXNcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgcHJlbWlzZSsgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlXCIgPEVORF9PRl9MSU5FPiBwcmVtaXNlICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlU3ViRGVyaXZhdGlvbiA7IFxuXG5zdWJwcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IHN1cHBvc2l0aW9uKyBzdWJEZXJpdmF0aW9uIDtcblxubWV0YVN1YnByb29mICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJTdXBwb3NlXCIgPEVORF9PRl9MSU5FPiBtZXRhU3VwcG9zaXRpb24rIG1ldGFTdWJEZXJpdmF0aW9uIDtcblxuXG5cbnJ1bGVEZXJpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHJ1bGVTdWJwcm9vZiB8IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgfCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgKSsgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmVmb3JlXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IHwgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICkgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuZGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3VicHJvb2YgfCBxdWFsaWZpZWRTdGF0ZW1lbnQgfCB1bnF1YWxpZmllZFN0YXRlbWVudCApKyBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZXJlZm9yZVwiIDxFTkRfT0ZfTElORT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHF1YWxpZmllZFN0YXRlbWVudCB8IHVucXVhbGlmaWVkU3RhdGVtZW50ICkgO1xuXG5tZXRhRGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBtZXRhU3VicHJvb2YgfCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IHwgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICkrICBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZXJlZm9yZVwiIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggcXVhbGlmaWVkTWV0YXN0YXRlbWVudCB8IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCApIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cblxuXG5ydWxlU3ViRGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgOjo9ICAoXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJIZW5jZVwiIDxFTkRfT0ZfTElORT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHJ1bGVTdWJwcm9vZiB8IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgfCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgKSsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggcXVhbGlmaWVkTWV0YXN0YXRlbWVudCB8IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCApIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbnN1YkRlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkhlbmNlXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3VicHJvb2YgfCBxdWFsaWZpZWRTdGF0ZW1lbnQgfCB1bnF1YWxpZmllZFN0YXRlbWVudCApKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBxdWFsaWZpZWRTdGF0ZW1lbnQgfCB1bnF1YWxpZmllZFN0YXRlbWVudCApIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbm1ldGFTdWJEZXJpdmF0aW9uICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkhlbmNlXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbWV0YVN1YnByb29mIHwgcXVhbGlmaWVkTWV0YXN0YXRlbWVudCB8IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCApKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IHwgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICkgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuXG5cbnByZW1pc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbmNvbmNsdXNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbnN1cHBvc2l0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkU3RhdGVtZW50IDtcblxuY29uc2VxdWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgO1xuXG5tZXRhU3VwcG9zaXRpb24gICAgICAgICAgICAgICAgICAgICAgOjo9ICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgO1xuXG5tZXRhQ29uc2VxdWVudCAgICAgICAgICAgICAgICAgICAgICAgOjo9ICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgO1xuXG5cblxudW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Li4gICAgICAgICAgIDo6PSAgbWV0YXN0YXRlbWVudC4uLiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQuLiAgICAgICAgICAgICA6Oj0gIG1ldGFzdGF0ZW1lbnQuLi4gKCBcImJ5XCIgfCBcImZyb21cIiApIHJlZmVyZW5jZSA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiAoIFwiYnlcIiB8IFwiZnJvbVwiICkgcmVmZXJlbmNlIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG51bnF1YWxpZmllZFN0YXRlbWVudC4uICAgICAgICAgICAgICAgOjo9ICBzdGF0ZW1lbnQuLi4gPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cbnF1YWxpZmllZFN0YXRlbWVudC4uICAgICAgICAgICAgICAgICA6Oj0gIHN0YXRlbWVudC4uLiAoIFwiYnlcIiB8IFwiZnJvbVwiICkgcmVmZXJlbmNlIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vbnNlbnNlLi4uICggXCJieVwiIHwgXCJmcm9tXCIgKSByZWZlcmVuY2UgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxubm9uc2Vuc2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBbdHlwZV0gfCBbc3ltYm9sXSB8IFtvcGVyYXRvcl0gfCBbc3BlY2lhbF0gfCBbc2Vjb25kYXJ5LWtleXdvcmRdIHwgW21ldGEtdHlwZV0gfCBbbmFtZV0gfCBbdW5hc3NpZ25lZF0gKSsgO1xuXG5cblxucmVmZXJlbmNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgbWV0YXZhcmlhYmxlIDtcblxubGFiZWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgbWV0YXZhcmlhYmxlIDtcblxuXG5cbm1ldGFBcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHN0YXRlbWVudCAoICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGFUeXBlICggKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5hcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICB0ZXJtICggKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdHlwZSAoIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxubWV0YXZhcmlhYmxlICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW25hbWVdICggPE5PX1dISVRFU1BBQ0U+XCIoXCIgYXJndW1lbnQuLi4gXCIpXCIgKT8gO1xuXG52YXJpYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG5cblxubWV0YVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW21ldGEtdHlwZV0gO1xuXG50eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBbdHlwZV0gO2A7XG5cbmV4cG9ydCBkZWZhdWx0IGJuZjtcbiJdLCJuYW1lcyI6WyJibmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTRXQTs7O2VBQUE7OztBQTFXQSxJQUFNQSxNQUFPO0lBMFdiLFdBQWVBIn0=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbG9yZW5jZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBkb2N1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIHRvcExldmVsRGVjbGFyYXRpb24gfCB2ZXJ0aWNhbFNwYWNlIHwgZXJyb3IgKSsgO1xuXG5cblxudG9wTGV2ZWxEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgdHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBkaXNqb2ludFR5cGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZGVwZW5kZW50VHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcnVsZSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYXhpb20gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxlbW1hIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBjb25qZWN0dXJlIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBtZXRhTGVtbWEgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG52ZXJ0aWNhbFNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICA8RU5EX09GX0xJTkU+KyA7XG5cblxuXG5lcnJvci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuXG5cbnR5cGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiVHlwZVwiIHR5cGUgKCBcIjpcIiB0eXBlICk/IDxFTkRfT0ZfTElORT4gO1xuIFxudmFyaWFibGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgXCJWYXJpYWJsZVwiIHZhcmlhYmxlICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbWJpbmF0b3JEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICA6Oj0gIFwiQ29tYmluYXRvclwiIHN0YXRlbWVudC4uLiA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbnN0cnVjdG9yRGVjbGFyYXRpb24gICAgICAgICAgICAgICA6Oj0gIFwiQ29uc3RydWN0b3JcIiB0ZXJtLi4uICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uICAgICAgICAgICAgICA6Oj0gIFwiTWV0YXZhcmlhYmxlXCIgbWV0YXZhcmlhYmxlIFwiOlwiIG1ldGFUeXBlIDxFTkRfT0ZfTElORT4gO1xuIFxuXG4gIFxucnVsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJSdWxlXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlc1wiIDxFTkRfT0ZfTElORT4gcHJlbWlzZSBwcmVtaXNlKyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIlByZW1pc2VcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb25jbHVzaW9uXCIgPEVORF9PRl9MSU5FPiBjb25jbHVzaW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVByb29mPyA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxubWV0YUxlbW1hICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJNZXRhTGVtbWFcIiAoIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgKT8gPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IG1ldGFTdXBwb3NpdGlvbisgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBtZXRhQ29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YXByb29mIDtcblxubWV0YXRoZW9yZW0gICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJNZXRhdGhlb3JlbVwiIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IG1ldGFTdXBwb3NpdGlvbisgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBtZXRhQ29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhcHJvb2YgO1xuXG5heGlvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIkF4aW9tXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VxdWVudCA7XG5cbmxlbW1hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiTGVtbWFcIiAoIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgKT8gPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IHN1cHBvc2l0aW9uK1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlblwiIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2YgO1xuXG50aGVvcmVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIlRoZW9yZW1cIiBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdXBwb3NlXCIgPEVORF9PRl9MSU5FPiBzdXBwb3NpdGlvbitcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vZiA7XG5cbmNvbmplY3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiQ29uamVjdHVyZVwiIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2Y/IDtcblxuXG5cbnJ1bGVQcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiUHJvb2ZcIiA8RU5EX09GX0xJTkU+IHJ1bGVEZXJpdmF0aW9uIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxubWV0YXByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJQcm9vZlwiIDxFTkRfT0ZfTElORT4gbWV0YURlcml2YXRpb24gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbnByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiUHJvb2ZcIiA8RU5EX09GX0xJTkU+IGRlcml2YXRpb24gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuXG5ydWxlU3VicHJvb2YgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlc1wiIDxFTkRfT0ZfTElORT4gcHJlbWlzZSBwcmVtaXNlKyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIlByZW1pc2VcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVTdWJEZXJpdmF0aW9uIDsgXG5cbm1ldGFTdWJwcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gbWV0YVN1cHBvc2l0aW9uKyBtZXRhU3ViRGVyaXZhdGlvbiA7XG5cbnN1YnByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rIHN1YkRlcml2YXRpb24gO1xuXG5cblxucnVsZURlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlUHJvb2ZTdGVwKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmVmb3JlXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFJ1bGVQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxubWV0YURlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUHJvb2ZTdGVwKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmVmb3JlXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1ldGFQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuZGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vZlN0ZXArIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVyZWZvcmVcIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UHJvb2ZTdGVwIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cblxuXG5ydWxlU3ViRGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgOjo9ICAoXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJIZW5jZVwiIDxFTkRfT0ZfTElORT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlUHJvb2ZTdGVwKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFJ1bGVQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxubWV0YVN1YkRlcml2YXRpb24gICAgICAgICAgICAgICAgICAgIDo6PSAgKFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVuY2VcIiA8RU5EX09GX0xJTkU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVByb29mU3RlcCsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RNZXRhUHJvb2ZTdGVwIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbnN1YkRlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkhlbmNlXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb29mU3RlcCsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuXG5cbnByZW1pc2UuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbmNvbmNsdXNpb24uLiAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbm1ldGFTdXBwb3NpdGlvbi4uICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbm1ldGFDb25zZXF1ZW50Li4gICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbnN1cHBvc2l0aW9uLi4gICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkU3RhdGVtZW50IDtcblxuY29uc2VxdWVudC4uICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgO1xuXG5cblxucnVsZVByb29mU3RlcC4uICAgICAgICAgICAgICAgICAgICAgIDo6PSAgcnVsZVN1YnByb29mIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcXVhbGlmaWVkU3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHVucXVhbGlmaWVkU3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgIFxuXG5tZXRhUHJvb2ZTdGVwLi4gICAgICAgICAgICAgICAgICAgICAgOjo9ICBtZXRhU3VicHJvb2YgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBxdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgXG5cbnByb29mU3RlcC4uICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHN1YnByb29mIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBxdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgXG5cblxuXG5sYXN0UnVsZVByb29mU3RlcC4uICAgICAgICAgICAgICAgICAgOjo9ICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxubGFzdE1ldGFQcm9vZlN0ZXAuLiAgICAgICAgICAgICAgICAgIDo6PSAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cbmxhc3RQcm9vZlN0ZXAuLiAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHF1YWxpZmllZFN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbnVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCAgICAgICAgICAgICA6Oj0gIG1ldGFzdGF0ZW1lbnQuLi4gPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9uc2Vuc2UuLi4gPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICAgICAgICAgICAgICAgOjo9ICBtZXRhc3RhdGVtZW50Li4uICggXCJieVwiIHwgXCJmcm9tXCIgKSByZWZlcmVuY2UgPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9uc2Vuc2UuLi4gKCBcImJ5XCIgfCBcImZyb21cIiApIHJlZmVyZW5jZSA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxudW5xdWFsaWZpZWRTdGF0ZW1lbnQgICAgICAgICAgICAgICAgIDo6PSAgc3RhdGVtZW50Li4uIDxFTkRfT0ZfTElORT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9uc2Vuc2UuLi4gPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5xdWFsaWZpZWRTdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgOjo9ICBzdGF0ZW1lbnQuLi4gKCBcImJ5XCIgfCBcImZyb21cIiApIHJlZmVyZW5jZSA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiAoIFwiYnlcIiB8IFwiZnJvbVwiICkgcmVmZXJlbmNlIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbm5vbnNlbnNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gICggW3R5cGVdIHwgW3N5bWJvbF0gfCBbb3BlcmF0b3JdIHwgW3NwZWNpYWxdIHwgW3NlY29uZGFyeS1rZXl3b3JkXSB8IFttZXRhLXR5cGVdIHwgW25hbWVdIHwgW3VuYXNzaWduZWRdICkrIDtcblxuXG5cbnJlZmVyZW5jZS4gICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIG1ldGF2YXJpYWJsZSA7XG5cbmxhYmVsLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIG1ldGF2YXJpYWJsZSA7XG5cblxuXG5tZXRhQXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBzdGF0ZW1lbnQgKCApIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBtZXRhVHlwZSAoICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuYXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdGVybSAoICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHR5cGUgKCApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbm1ldGF2YXJpYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSAoIDxOT19XSElURVNQQUNFPlwiKFwiIGFyZ3VtZW50Li4uIFwiKVwiICk/IDtcblxudmFyaWFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcblxuXG5cbm1ldGFUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFttZXRhLXR5cGVdIDtcblxudHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW3R5cGVdIDtgO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE4WEE7OztlQUFBOzs7QUE1WEEsSUFBTUEsTUFBTztJQTRYYixXQUFlQSJ9
|
package/package.json
CHANGED
package/src/florence/bnf.js
CHANGED
|
@@ -70,134 +70,98 @@ rule ::= "Rule" "(" label ( "," label )* ")" <E
|
|
|
70
70
|
|
|
71
71
|
"Conclusion" <END_OF_LINE> conclusion
|
|
72
72
|
|
|
73
|
-
ruleProof?
|
|
73
|
+
ruleProof? ;
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
metaLemma ::= "MetaLemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE>
|
|
76
76
|
|
|
77
77
|
(
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
"Suppose" <END_OF_LINE> supposition+
|
|
79
|
+
"Suppose" <END_OF_LINE> metaSupposition+
|
|
82
80
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
)
|
|
81
|
+
"Then" <END_OF_LINE> metaConsequent
|
|
86
82
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
83
|
+
)?
|
|
84
|
+
|
|
85
|
+
metaConsequent
|
|
86
|
+
|
|
87
|
+
metaproof ;
|
|
92
88
|
|
|
93
|
-
|
|
89
|
+
metatheorem ::= "Metatheorem" "(" label ( "," label )* ")" <END_OF_LINE>
|
|
94
90
|
|
|
95
91
|
(
|
|
96
92
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"Suppose" <END_OF_LINE> supposition+
|
|
93
|
+
"Suppose" <END_OF_LINE> metaSupposition+
|
|
100
94
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
)
|
|
95
|
+
"Then" <END_OF_LINE> metaConsequent
|
|
104
96
|
|
|
105
|
-
|
|
97
|
+
)?
|
|
106
98
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
)
|
|
99
|
+
metaConsequent
|
|
110
100
|
|
|
111
|
-
|
|
101
|
+
metaproof ;
|
|
112
102
|
|
|
113
|
-
|
|
103
|
+
axiom ::= "Axiom" "(" label ( "," label )* ")" <END_OF_LINE>
|
|
114
104
|
|
|
115
105
|
(
|
|
116
106
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
"Suppose" <END_OF_LINE> supposition+
|
|
107
|
+
"Suppose" <END_OF_LINE> supposition+
|
|
120
108
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
)
|
|
109
|
+
"Then" <END_OF_LINE>
|
|
124
110
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
consequent
|
|
111
|
+
)?
|
|
128
112
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
proof ;
|
|
113
|
+
consequent ;
|
|
132
114
|
|
|
133
|
-
|
|
115
|
+
lemma ::= "Lemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE>
|
|
134
116
|
|
|
135
117
|
(
|
|
136
118
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"Suppose" <END_OF_LINE> supposition+
|
|
119
|
+
"Suppose" <END_OF_LINE> supposition+
|
|
140
120
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
)
|
|
121
|
+
"Then" <END_OF_LINE>
|
|
144
122
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
)
|
|
123
|
+
)?
|
|
124
|
+
|
|
125
|
+
consequent
|
|
150
126
|
|
|
151
|
-
proof
|
|
127
|
+
proof ;
|
|
152
128
|
|
|
153
|
-
|
|
129
|
+
theorem ::= "Theorem" "(" label ( "," label )* ")" <END_OF_LINE>
|
|
154
130
|
|
|
155
|
-
(
|
|
131
|
+
(
|
|
156
132
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
"Suppose" <END_OF_LINE> metaSupposition+
|
|
133
|
+
"Suppose" <END_OF_LINE> supposition+
|
|
160
134
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
)
|
|
164
|
-
|
|
165
|
-
|
|
|
135
|
+
"Then" <END_OF_LINE>
|
|
166
136
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
137
|
+
)?
|
|
138
|
+
|
|
139
|
+
consequent
|
|
170
140
|
|
|
171
|
-
|
|
141
|
+
proof ;
|
|
172
142
|
|
|
173
|
-
|
|
143
|
+
conjecture ::= "Conjecture" "(" label ( "," label )* ")" <END_OF_LINE>
|
|
174
144
|
|
|
175
|
-
(
|
|
145
|
+
(
|
|
176
146
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
"Suppose" <END_OF_LINE> metaSupposition+
|
|
147
|
+
"Suppose" <END_OF_LINE> supposition+
|
|
180
148
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
|
149
|
+
"Then" <END_OF_LINE>
|
|
150
|
+
|
|
151
|
+
)?
|
|
186
152
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
)
|
|
153
|
+
consequent
|
|
190
154
|
|
|
191
|
-
|
|
155
|
+
proof? ;
|
|
192
156
|
|
|
193
157
|
|
|
194
158
|
|
|
195
159
|
ruleProof ::= "Proof" <END_OF_LINE> ruleDerivation ;
|
|
196
160
|
|
|
161
|
+
metaproof ::= "Proof" <END_OF_LINE> metaDerivation ;
|
|
162
|
+
|
|
197
163
|
proof ::= "Proof" <END_OF_LINE> derivation ;
|
|
198
164
|
|
|
199
|
-
metaproof ::= "Proof" <END_OF_LINE> metaDerivation ;
|
|
200
|
-
|
|
201
165
|
|
|
202
166
|
|
|
203
167
|
ruleSubproof ::= (
|
|
@@ -212,41 +176,41 @@ ruleSubproof ::= (
|
|
|
212
176
|
|
|
213
177
|
ruleSubDerivation ;
|
|
214
178
|
|
|
215
|
-
subproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;
|
|
216
|
-
|
|
217
179
|
metaSubproof ::= "Suppose" <END_OF_LINE> metaSupposition+ metaSubDerivation ;
|
|
218
180
|
|
|
181
|
+
subproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;
|
|
219
182
|
|
|
220
183
|
|
|
221
|
-
ruleDerivation ::= (
|
|
222
184
|
|
|
223
|
-
|
|
185
|
+
ruleDerivation ::= (
|
|
224
186
|
|
|
187
|
+
ruleProofStep+
|
|
188
|
+
|
|
225
189
|
"Therefore" <END_OF_LINE>
|
|
226
|
-
|
|
190
|
+
|
|
227
191
|
)?
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
derivation ::= (
|
|
192
|
+
|
|
193
|
+
lastRuleProofStep ;
|
|
232
194
|
|
|
233
|
-
|
|
195
|
+
metaDerivation ::= (
|
|
234
196
|
|
|
235
|
-
|
|
236
|
-
|
|
197
|
+
metaProofStep+
|
|
198
|
+
|
|
199
|
+
"Therefore" <END_OF_LINE>
|
|
200
|
+
|
|
237
201
|
)?
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
metaDerivation ::= (
|
|
202
|
+
|
|
203
|
+
lastMetaProofStep ;
|
|
242
204
|
|
|
243
|
-
|
|
205
|
+
derivation ::= (
|
|
244
206
|
|
|
207
|
+
proofStep+
|
|
208
|
+
|
|
245
209
|
"Therefore" <END_OF_LINE>
|
|
246
|
-
|
|
210
|
+
|
|
247
211
|
)?
|
|
248
|
-
|
|
249
|
-
|
|
212
|
+
|
|
213
|
+
lastProofStep ;
|
|
250
214
|
|
|
251
215
|
|
|
252
216
|
|
|
@@ -254,73 +218,127 @@ ruleSubDerivation ::= (
|
|
|
254
218
|
|
|
255
219
|
"Hence" <END_OF_LINE>
|
|
256
220
|
|
|
257
|
-
|
|
221
|
+
ruleProofStep+
|
|
258
222
|
|
|
259
223
|
)?
|
|
260
224
|
|
|
261
225
|
"Then" <END_OF_LINE>
|
|
262
226
|
|
|
263
|
-
|
|
227
|
+
lastRuleProofStep ;
|
|
264
228
|
|
|
265
|
-
|
|
229
|
+
metaSubDerivation ::= (
|
|
266
230
|
|
|
267
231
|
"Hence" <END_OF_LINE>
|
|
268
232
|
|
|
269
|
-
|
|
233
|
+
metaProofStep+
|
|
270
234
|
|
|
271
235
|
)?
|
|
272
236
|
|
|
273
237
|
"Then" <END_OF_LINE>
|
|
274
238
|
|
|
275
|
-
|
|
239
|
+
lastMetaProofStep ;
|
|
276
240
|
|
|
277
|
-
|
|
241
|
+
subDerivation ::= (
|
|
278
242
|
|
|
279
243
|
"Hence" <END_OF_LINE>
|
|
280
244
|
|
|
281
|
-
|
|
245
|
+
proofStep+
|
|
282
246
|
|
|
283
247
|
)?
|
|
284
248
|
|
|
285
249
|
"Then" <END_OF_LINE>
|
|
286
250
|
|
|
287
|
-
|
|
251
|
+
lastProofStep ;
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
premise.. ::= unqualifiedMetastatement ;
|
|
256
|
+
|
|
257
|
+
conclusion.. ::= unqualifiedMetastatement ;
|
|
258
|
+
|
|
259
|
+
metaSupposition.. ::= unqualifiedMetastatement ;
|
|
260
|
+
|
|
261
|
+
metaConsequent.. ::= unqualifiedMetastatement ;
|
|
262
|
+
|
|
263
|
+
supposition.. ::= unqualifiedStatement ;
|
|
264
|
+
|
|
265
|
+
consequent.. ::= unqualifiedStatement ;
|
|
266
|
+
|
|
267
|
+
|
|
288
268
|
|
|
269
|
+
ruleProofStep.. ::= ruleSubproof
|
|
289
270
|
|
|
271
|
+
| qualifiedMetastatement
|
|
272
|
+
|
|
273
|
+
| unqualifiedMetastatement
|
|
290
274
|
|
|
291
|
-
|
|
275
|
+
| qualifiedStatement
|
|
276
|
+
|
|
277
|
+
| unqualifiedStatement
|
|
278
|
+
|
|
279
|
+
;
|
|
292
280
|
|
|
293
|
-
|
|
281
|
+
metaProofStep.. ::= metaSubproof
|
|
294
282
|
|
|
295
|
-
|
|
283
|
+
| qualifiedMetastatement
|
|
284
|
+
|
|
285
|
+
| unqualifiedMetastatement
|
|
296
286
|
|
|
297
|
-
|
|
287
|
+
| qualifiedStatement
|
|
288
|
+
|
|
289
|
+
| unqualifiedStatement
|
|
290
|
+
|
|
291
|
+
;
|
|
298
292
|
|
|
299
|
-
|
|
293
|
+
proofStep.. ::= subproof
|
|
300
294
|
|
|
301
|
-
|
|
295
|
+
| qualifiedStatement
|
|
296
|
+
|
|
297
|
+
| unqualifiedStatement
|
|
298
|
+
|
|
299
|
+
;
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
lastRuleProofStep.. ::= qualifiedMetastatement
|
|
304
|
+
|
|
305
|
+
| unqualifiedMetastatement
|
|
306
|
+
|
|
307
|
+
;
|
|
308
|
+
|
|
309
|
+
lastMetaProofStep.. ::= qualifiedMetastatement
|
|
310
|
+
|
|
311
|
+
| unqualifiedMetastatement
|
|
312
|
+
|
|
313
|
+
;
|
|
314
|
+
|
|
315
|
+
lastProofStep.. ::= qualifiedStatement
|
|
316
|
+
|
|
317
|
+
| unqualifiedStatement
|
|
318
|
+
|
|
319
|
+
;
|
|
302
320
|
|
|
303
321
|
|
|
304
322
|
|
|
305
|
-
unqualifiedMetastatement
|
|
323
|
+
unqualifiedMetastatement ::= metastatement... <END_OF_LINE>
|
|
306
324
|
|
|
307
325
|
| nonsense... <END_OF_LINE>
|
|
308
326
|
|
|
309
327
|
;
|
|
310
328
|
|
|
311
|
-
qualifiedMetastatement
|
|
329
|
+
qualifiedMetastatement ::= metastatement... ( "by" | "from" ) reference <END_OF_LINE>
|
|
312
330
|
|
|
313
331
|
| nonsense... ( "by" | "from" ) reference <END_OF_LINE>
|
|
314
332
|
|
|
315
333
|
;
|
|
316
334
|
|
|
317
|
-
unqualifiedStatement
|
|
335
|
+
unqualifiedStatement ::= statement... <END_OF_LINE>
|
|
318
336
|
|
|
319
337
|
| nonsense... <END_OF_LINE>
|
|
320
338
|
|
|
321
339
|
;
|
|
322
340
|
|
|
323
|
-
qualifiedStatement
|
|
341
|
+
qualifiedStatement ::= statement... ( "by" | "from" ) reference <END_OF_LINE>
|
|
324
342
|
|
|
325
343
|
| nonsense... ( "by" | "from" ) reference <END_OF_LINE>
|
|
326
344
|
|