| Server IP : 217.160.0.135 / Your IP : 216.73.217.37 Web Server : Apache System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64 User : sws1074145052 ( 1074145052) PHP Version : 8.3.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/nodejs/handlebars/dist/cjs/handlebars/compiler/ |
Upload File : |
/*istanbul ignore next*/
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
// File ignored in coverage tests via setting in .istanbul.yml
/* parser generated by jison 0.4.17 */
/*
Returns a Parser object of the following structure:
Parser: {
yy: {}
}
Parser.prototype: {
yy: {},
trace: function(),
symbols_: {associative list: name ==> number},
terminals_: {associative list: number ==> name},
productions_: [...],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
table: [...],
defaultActions: {...},
parseError: function(str, hash),
parse: function(input),
lexer: {
EOF: 1,
parseError: function(str, hash),
setInput: function(input),
input: function(),
unput: function(str),
more: function(),
less: function(n),
pastInput: function(),
upcomingInput: function(),
showPosition: function(),
test_match: function(regex_match_array, rule_index),
next: function(),
lex: function(),
begin: function(condition),
popState: function(),
_currentRules: function(),
topState: function(),
pushState: function(condition),
options: {
ranges: boolean (optional: true ==> token location info will include a .range[] member)
flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
},
performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
rules: [...],
conditions: {associative list: name ==> set},
}
}
token location info (@$, _$, etc.): {
first_line: n,
last_line: n,
first_column: n,
last_column: n,
range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
}
the parseError function receives a 'hash' object with these members for lexer and parser errors: {
text: (matched text)
token: (the produced terminal token, if any)
line: (yylineno)
}
while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
loc: (yylloc)
expected: (string describing the set of expected tokens)
recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
}
*/
var handlebars = function () {
var o = function
/*istanbul ignore next*/
o(k, v, _o, l) {
for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v)
/*istanbul ignore next*/
{
;
}
return _o;
},
$V0 = [2, 46],
$V1 = [1, 20],
$V2 = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60],
$V3 = [1, 35],
$V4 = [1, 28],
$V5 = [1, 29],
$V6 = [1, 30],
$V7 = [1, 31],
$V8 = [1, 32],
$V9 = [1, 34],
$Va = [14, 15, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60],
$Vb = [14, 15, 19, 29, 34, 44, 47, 48, 51, 55, 60],
$Vc = [15, 18],
$Vd = [1, 43],
$Ve = [14, 15, 19, 29, 34, 47, 48, 51, 55, 60],
$Vf = [33, 65, 72, 80, 81, 82, 83, 84, 85],
$Vg = [23, 33, 54, 65, 68, 72, 75, 80, 81, 82, 83, 84, 85],
$Vh = [1, 50],
$Vi = [23, 33, 54, 65, 68, 72, 75, 80, 81, 82, 83, 84, 85, 87],
$Vj = [2, 45],
$Vk = [54, 65, 72, 80, 81, 82, 83, 84, 85],
$Vl = [1, 57],
$Vm = [1, 58],
$Vn = [1, 66],
$Vo = [33, 65, 72, 75, 80, 81, 82, 83, 84, 85],
$Vp = [23, 65, 72, 80, 81, 82, 83, 84, 85],
$Vq = [1, 78],
$Vr = [65, 68, 72, 80, 81, 82, 83, 84, 85],
$Vs = [33, 75],
$Vt = [23, 33, 54, 68, 72, 75],
$Vu = [1, 108],
$Vv = [1, 120],
$Vw = [72, 77];
var parser = {
trace: function trace() {},
yy: {},
symbols_: {
"error": 2,
"root": 3,
"program": 4,
"EOF": 5,
"program_repetition0": 6,
"statement": 7,
"mustache": 8,
"block": 9,
"rawBlock": 10,
"partial": 11,
"partialBlock": 12,
"content": 13,
"COMMENT": 14,
"CONTENT": 15,
"openRawBlock": 16,
"rawBlock_repetition0": 17,
"END_RAW_BLOCK": 18,
"OPEN_RAW_BLOCK": 19,
"helperName": 20,
"openRawBlock_repetition0": 21,
"openRawBlock_option0": 22,
"CLOSE_RAW_BLOCK": 23,
"openBlock": 24,
"block_option0": 25,
"closeBlock": 26,
"openInverse": 27,
"block_option1": 28,
"OPEN_BLOCK": 29,
"openBlock_repetition0": 30,
"openBlock_option0": 31,
"openBlock_option1": 32,
"CLOSE": 33,
"OPEN_INVERSE": 34,
"openInverse_repetition0": 35,
"openInverse_option0": 36,
"openInverse_option1": 37,
"openInverseChain": 38,
"OPEN_INVERSE_CHAIN": 39,
"openInverseChain_repetition0": 40,
"openInverseChain_option0": 41,
"openInverseChain_option1": 42,
"inverseAndProgram": 43,
"INVERSE": 44,
"inverseChain": 45,
"inverseChain_option0": 46,
"OPEN_ENDBLOCK": 47,
"OPEN": 48,
"mustache_repetition0": 49,
"mustache_option0": 50,
"OPEN_UNESCAPED": 51,
"mustache_repetition1": 52,
"mustache_option1": 53,
"CLOSE_UNESCAPED": 54,
"OPEN_PARTIAL": 55,
"partialName": 56,
"partial_repetition0": 57,
"partial_option0": 58,
"openPartialBlock": 59,
"OPEN_PARTIAL_BLOCK": 60,
"openPartialBlock_repetition0": 61,
"openPartialBlock_option0": 62,
"param": 63,
"sexpr": 64,
"OPEN_SEXPR": 65,
"sexpr_repetition0": 66,
"sexpr_option0": 67,
"CLOSE_SEXPR": 68,
"hash": 69,
"hash_repetition_plus0": 70,
"hashSegment": 71,
"ID": 72,
"EQUALS": 73,
"blockParams": 74,
"OPEN_BLOCK_PARAMS": 75,
"blockParams_repetition_plus0": 76,
"CLOSE_BLOCK_PARAMS": 77,
"path": 78,
"dataName": 79,
"STRING": 80,
"NUMBER": 81,
"BOOLEAN": 82,
"UNDEFINED": 83,
"NULL": 84,
"DATA": 85,
"pathSegments": 86,
"SEP": 87,
"$accept": 0,
"$end": 1
},
terminals_: {
2: "error",
5: "EOF",
14: "COMMENT",
15: "CONTENT",
18: "END_RAW_BLOCK",
19: "OPEN_RAW_BLOCK",
23: "CLOSE_RAW_BLOCK",
29: "OPEN_BLOCK",
33: "CLOSE",
34: "OPEN_INVERSE",
39: "OPEN_INVERSE_CHAIN",
44: "INVERSE",
47: "OPEN_ENDBLOCK",
48: "OPEN",
51: "OPEN_UNESCAPED",
54: "CLOSE_UNESCAPED",
55: "OPEN_PARTIAL",
60: "OPEN_PARTIAL_BLOCK",
65: "OPEN_SEXPR",
68: "CLOSE_SEXPR",
72: "ID",
73: "EQUALS",
75: "OPEN_BLOCK_PARAMS",
77: "CLOSE_BLOCK_PARAMS",
80: "STRING",
81: "NUMBER",
82: "BOOLEAN",
83: "UNDEFINED",
84: "NULL",
85: "DATA",
87: "SEP"
},
productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate
/* action[1] */
, $$
/* vstack */
, _$
/* lstack */
) {
/* this == yyval */
var $0 = $$.length - 1;
switch (yystate) {
case 1:
return $$[$0 - 1];
break;
case 2:
this.$ = yy.prepareProgram($$[$0]);
break;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 20:
case 27:
case 28:
case 33:
case 34:
case 40:
case 41:
this.$ = $$[$0];
break;
case 9:
this.$ = {
type: 'CommentStatement',
value: yy.stripComment($$[$0]),
strip: yy.stripFlags($$[$0], $$[$0]),
loc: yy.locInfo(this._$)
};
break;
case 10:
this.$ = {
type: 'ContentStatement',
original: $$[$0],
value: $$[$0],
loc: yy.locInfo(this._$)
};
break;
case 11:
this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
break;
case 12:
this.$ = {
path: $$[$0 - 3],
params: $$[$0 - 2],
hash: $$[$0 - 1]
};
break;
case 13:
this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);
break;
case 14:
this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);
break;
case 15:
this.$ = {
open: $$[$0 - 5],
path: $$[$0 - 4],
params: $$[$0 - 3],
hash: $$[$0 - 2],
blockParams: $$[$0 - 1],
strip: yy.stripFlags($$[$0 - 5], $$[$0])
};
break;
case 16:
case 17:
this.$ = {
path: $$[$0 - 4],
params: $$[$0 - 3],
hash: $$[$0 - 2],
blockParams: $$[$0 - 1],
strip: yy.stripFlags($$[$0 - 5], $$[$0])
};
break;
case 18:
this.$ = {
strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]),
program: $$[$0]
};
break;
case 19:
var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),
program = yy.prepareProgram([inverse], $$[$0 - 1].loc);
program.chained = true;
this.$ = {
strip: $$[$0 - 2].strip,
program: program,
chain: true
};
break;
case 21:
this.$ = {
path: $$[$0 - 1],
strip: yy.stripFlags($$[$0 - 2], $$[$0])
};
break;
case 22:
case 23:
this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
break;
case 24:
this.$ = {
type: 'PartialStatement',
name: $$[$0 - 3],
params: $$[$0 - 2],
hash: $$[$0 - 1],
indent: '',
strip: yy.stripFlags($$[$0 - 4], $$[$0]),
loc: yy.locInfo(this._$)
};
break;
case 25:
this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
break;
case 26:
this.$ = {
path: $$[$0 - 3],
params: $$[$0 - 2],
hash: $$[$0 - 1],
strip: yy.stripFlags($$[$0 - 4], $$[$0])
};
break;
case 29:
this.$ = {
type: 'SubExpression',
path: $$[$0 - 3],
params: $$[$0 - 2],
hash: $$[$0 - 1],
loc: yy.locInfo(this._$)
};
break;
case 30:
this.$ = {
type: 'Hash',
pairs: $$[$0],
loc: yy.locInfo(this._$)
};
break;
case 31:
this.$ = {
type: 'HashPair',
key: yy.id($$[$0 - 2]),
value: $$[$0],
loc: yy.locInfo(this._$)
};
break;
case 32:
this.$ = yy.id($$[$0 - 1]);
break;
case 35:
this.$ = {
type: 'StringLiteral',
value: $$[$0],
original: $$[$0],
loc: yy.locInfo(this._$)
};
break;
case 36:
this.$ = {
type: 'NumberLiteral',
value: Number($$[$0]),
original: Number($$[$0]),
loc: yy.locInfo(this._$)
};
break;
case 37:
this.$ = {
type: 'BooleanLiteral',
value: $$[$0] === 'true',
original: $$[$0] === 'true',
loc: yy.locInfo(this._$)
};
break;
case 38:
this.$ = {
type: 'UndefinedLiteral',
original: undefined,
value: undefined,
loc: yy.locInfo(this._$)
};
break;
case 39:
this.$ = {
type: 'NullLiteral',
original: null,
value: null,
loc: yy.locInfo(this._$)
};
break;
case 42:
this.$ = yy.preparePath(true, $$[$0], this._$);
break;
case 43:
this.$ = yy.preparePath(false, $$[$0], this._$);
break;
case 44:
$$[$0 - 2].push({
part: yy.id($$[$0]),
original: $$[$0],
separator: $$[$0 - 1]
});
this.$ = $$[$0 - 2];
break;
case 45:
this.$ = [{
part: yy.id($$[$0]),
original: $$[$0]
}];
break;
case 46:
case 48:
case 50:
case 58:
case 64:
case 70:
case 78:
case 82:
case 86:
case 90:
case 94:
this.$ = [];
break;
case 47:
case 49:
case 51:
case 59:
case 65:
case 71:
case 79:
case 83:
case 87:
case 91:
case 95:
case 99:
case 101:
$$[$0 - 1].push($$[$0]);
break;
case 98:
case 100:
this.$ = [$$[$0]];
break;
}
},
table: [o([5, 14, 15, 19, 29, 34, 48, 51, 55, 60], $V0, {
3: 1,
4: 2,
6: 3
}), {
1: [3]
}, {
5: [1, 4]
}, o([5, 39, 44, 47], [2, 2], {
7: 5,
8: 6,
9: 7,
10: 8,
11: 9,
12: 10,
13: 11,
24: 15,
27: 16,
16: 17,
59: 19,
14: [1, 12],
15: $V1,
19: [1, 23],
29: [1, 21],
34: [1, 22],
48: [1, 13],
51: [1, 14],
55: [1, 18],
60: [1, 24]
}), {
1: [2, 1]
}, o($V2, [2, 47]), o($V2, [2, 3]), o($V2, [2, 4]), o($V2, [2, 5]), o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 8]), o($V2, [2, 9]), {
20: 25,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
20: 36,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, o($Va, $V0, {
6: 3,
4: 37
}), o($Vb, $V0, {
6: 3,
4: 38
}), o($Vc, [2, 48], {
17: 39
}), {
20: 41,
56: 40,
64: 42,
65: $Vd,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, o($Ve, $V0, {
6: 3,
4: 44
}), o([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60], [2, 10]), {
20: 45,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
20: 46,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
20: 47,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
20: 41,
56: 48,
64: 42,
65: $Vd,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, o($Vf, [2, 78], {
49: 49
}), o($Vg, [2, 33]), o($Vg, [2, 34]), o($Vg, [2, 35]), o($Vg, [2, 36]), o($Vg, [2, 37]), o($Vg, [2, 38]), o($Vg, [2, 39]), o($Vg, [2, 43], {
87: $Vh
}), {
72: $V3,
86: 51
}, o($Vi, $Vj), o($Vk, [2, 82], {
52: 52
}), {
25: 53,
38: 55,
39: $Vl,
43: 56,
44: $Vm,
45: 54,
47: [2, 54]
}, {
28: 59,
43: 60,
44: $Vm,
47: [2, 56]
}, {
13: 62,
15: $V1,
18: [1, 61]
}, o($Vf, [2, 86], {
57: 63
}), o($Vf, [2, 40]), o($Vf, [2, 41]), {
20: 64,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
26: 65,
47: $Vn
}, o($Vo, [2, 58], {
30: 67
}), o($Vo, [2, 64], {
35: 68
}), o($Vp, [2, 50], {
21: 69
}), o($Vf, [2, 90], {
61: 70
}), {
20: 74,
33: [2, 80],
50: 71,
63: 72,
64: 75,
65: $Vd,
69: 73,
70: 76,
71: 77,
72: $Vq,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
72: [1, 79]
}, o($Vg, [2, 42], {
87: $Vh
}), {
20: 74,
53: 80,
54: [2, 84],
63: 81,
64: 75,
65: $Vd,
69: 82,
70: 76,
71: 77,
72: $Vq,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
26: 83,
47: $Vn
}, {
47: [2, 55]
}, o($Va, $V0, {
6: 3,
4: 84
}), {
47: [2, 20]
}, {
20: 85,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, o($Ve, $V0, {
6: 3,
4: 86
}), {
26: 87,
47: $Vn
}, {
47: [2, 57]
}, o($V2, [2, 11]), o($Vc, [2, 49]), {
20: 74,
33: [2, 88],
58: 88,
63: 89,
64: 75,
65: $Vd,
69: 90,
70: 76,
71: 77,
72: $Vq,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, o($Vr, [2, 94], {
66: 91
}), o($V2, [2, 25]), {
20: 92,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, o($Vs, [2, 60], {
78: 26,
79: 27,
86: 33,
20: 74,
64: 75,
70: 76,
71: 77,
31: 93,
63: 94,
69: 95,
65: $Vd,
72: $Vq,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9
}), o($Vs, [2, 66], {
78: 26,
79: 27,
86: 33,
20: 74,
64: 75,
70: 76,
71: 77,
36: 96,
63: 97,
69: 98,
65: $Vd,
72: $Vq,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9
}), {
20: 74,
22: 99,
23: [2, 52],
63: 100,
64: 75,
65: $Vd,
69: 101,
70: 76,
71: 77,
72: $Vq,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
20: 74,
33: [2, 92],
62: 102,
63: 103,
64: 75,
65: $Vd,
69: 104,
70: 76,
71: 77,
72: $Vq,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
33: [1, 105]
}, o($Vf, [2, 79]), {
33: [2, 81]
}, o($Vg, [2, 27]), o($Vg, [2, 28]), o([23, 33, 54, 68, 75], [2, 30], {
71: 106,
72: [1, 107]
}), o($Vt, [2, 98]), o($Vi, $Vj, {
73: $Vu
}), o($Vi, [2, 44]), {
54: [1, 109]
}, o($Vk, [2, 83]), {
54: [2, 85]
}, o($V2, [2, 13]), {
38: 55,
39: $Vl,
43: 56,
44: $Vm,
45: 111,
46: 110,
47: [2, 76]
}, o($Vo, [2, 70], {
40: 112
}), {
47: [2, 18]
}, o($V2, [2, 14]), {
33: [1, 113]
}, o($Vf, [2, 87]), {
33: [2, 89]
}, {
20: 74,
63: 115,
64: 75,
65: $Vd,
67: 114,
68: [2, 96],
69: 116,
70: 76,
71: 77,
72: $Vq,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, {
33: [1, 117]
}, {
32: 118,
33: [2, 62],
74: 119,
75: $Vv
}, o($Vo, [2, 59]), o($Vs, [2, 61]), {
33: [2, 68],
37: 121,
74: 122,
75: $Vv
}, o($Vo, [2, 65]), o($Vs, [2, 67]), {
23: [1, 123]
}, o($Vp, [2, 51]), {
23: [2, 53]
}, {
33: [1, 124]
}, o($Vf, [2, 91]), {
33: [2, 93]
}, o($V2, [2, 22]), o($Vt, [2, 99]), {
73: $Vu
}, {
20: 74,
63: 125,
64: 75,
65: $Vd,
72: $V3,
78: 26,
79: 27,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9,
86: 33
}, o($V2, [2, 23]), {
47: [2, 19]
}, {
47: [2, 77]
}, o($Vs, [2, 72], {
78: 26,
79: 27,
86: 33,
20: 74,
64: 75,
70: 76,
71: 77,
41: 126,
63: 127,
69: 128,
65: $Vd,
72: $Vq,
80: $V4,
81: $V5,
82: $V6,
83: $V7,
84: $V8,
85: $V9
}), o($V2, [2, 24]), {
68: [1, 129]
}, o($Vr, [2, 95]), {
68: [2, 97]
}, o($V2, [2, 21]), {
33: [1, 130]
}, {
33: [2, 63]
}, {
72: [1, 132],
76: 131
}, {
33: [1, 133]
}, {
33: [2, 69]
}, o($Vc, [2, 12]), o($Ve, [2, 26]), o($Vt, [2, 31]), {
33: [2, 74],
42: 134,
74: 135,
75: $Vv
}, o($Vo, [2, 71]), o($Vs, [2, 73]), o($Vg, [2, 29]), o($Va, [2, 15]), {
72: [1, 137],
77: [1, 136]
}, o($Vw, [2, 100]), o($Vb, [2, 16]), {
33: [1, 138]
}, {
33: [2, 75]
}, {
33: [2, 32]
}, o($Vw, [2, 101]), o($Va, [2, 17])],
defaultActions: {
4: [2, 1],
54: [2, 55],
56: [2, 20],
60: [2, 57],
73: [2, 81],
82: [2, 85],
86: [2, 18],
90: [2, 89],
101: [2, 53],
104: [2, 93],
110: [2, 19],
111: [2, 77],
116: [2, 97],
119: [2, 63],
122: [2, 69],
135: [2, 75],
136: [2, 32]
},
parseError: function parseError(str, hash) {
if (hash.recoverable) {
this.trace(str);
} else {
/*istanbul ignore next*/
var _parseError = function _parseError(msg, hash) {
this.message = msg;
this.hash = hash;
};
_parseError.prototype = Error;
throw new _parseError(str, hash);
}
},
parse: function parse(input) {
var self = this,
stack = [0],
tstack = [],
vstack = [null],
lstack = [],
table = this.table,
yytext = '',
yylineno = 0,
yyleng = 0,
recovering = 0,
TERROR = 2,
EOF = 1;
var args = lstack.slice.call(arguments, 1);
var lexer = Object.create(this.lexer);
var sharedState = {
yy: {}
};
for (var k in this.yy) {
if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
sharedState.yy[k] = this.yy[k];
}
}
lexer.setInput(input, sharedState.yy);
sharedState.yy.lexer = lexer;
sharedState.yy.parser = this;
if (typeof lexer.yylloc == 'undefined') {
lexer.yylloc = {};
}
var yyloc = lexer.yylloc;
lstack.push(yyloc);
var ranges = lexer.options && lexer.options.ranges;
if (typeof sharedState.yy.parseError === 'function') {
this.parseError = sharedState.yy.parseError;
} else {
this.parseError = Object.getPrototypeOf(this).parseError;
}
function popStack(n) {
stack.length = stack.length - 2 * n;
vstack.length = vstack.length - n;
lstack.length = lstack.length - n;
}
_token_stack: var lex = function lex() {
var token;
token = lexer.lex() || EOF;
if (typeof token !== 'number') {
token = self.symbols_[token] || token;
}
return token;
};
var symbol,
preErrorSymbol,
state,
action,
a,
r,
yyval = {},
p,
len,
newState,
expected;
while (true) {
state = stack[stack.length - 1];
if (this.defaultActions[state]) {
action = this.defaultActions[state];
} else {
if (symbol === null || typeof symbol == 'undefined') {
symbol = lex();
}
action = table[state] && table[state][symbol];
}
if (typeof action === 'undefined' || !action.length || !action[0]) {
var errStr = '';
expected = [];
for (p in table[state]) {
if (this.terminals_[p] && p > TERROR) {
expected.push('\'' + this.terminals_[p] + '\'');
}
}
if (lexer.showPosition) {
errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
} else {
errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
}
this.parseError(errStr, {
text: lexer.match,
token: this.terminals_[symbol] || symbol,
line: lexer.yylineno,
loc: yyloc,
expected: expected
});
}
if (action[0] instanceof Array && action.length > 1) {
throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
}
switch (action[0]) {
case 1:
stack.push(symbol);
vstack.push(lexer.yytext);
lstack.push(lexer.yylloc);
stack.push(action[1]);
symbol = null;
if (!preErrorSymbol) {
yyleng = lexer.yyleng;
yytext = lexer.yytext;
yylineno = lexer.yylineno;
yyloc = lexer.yylloc;
if (recovering > 0) {
recovering--;
}
} else {
symbol = preErrorSymbol;
preErrorSymbol = null;
}
break;
case 2:
len = this.productions_[action[1]][1];
yyval.$ = vstack[vstack.length - len];
yyval._$ = {
first_line: lstack[lstack.length - (len || 1)].first_line,
last_line: lstack[lstack.length - 1].last_line,
first_column: lstack[lstack.length - (len || 1)].first_column,
last_column: lstack[lstack.length - 1].last_column
};
if (ranges) {
yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
}
r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
if (typeof r !== 'undefined') {
return r;
}
if (len) {
stack = stack.slice(0, -1 * len * 2);
vstack = vstack.slice(0, -1 * len);
lstack = lstack.slice(0, -1 * len);
}
stack.push(this.productions_[action[1]][0]);
vstack.push(yyval.$);
lstack.push(yyval._$);
newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
stack.push(newState);
break;
case 3:
return true;
}
}
return true;
}
};
/* generated by jison-lex 0.3.4 */
var lexer = function () {
var lexer = {
EOF: 1,
parseError: function parseError(str, hash) {
if (this.yy.parser) {
this.yy.parser.parseError(str, hash);
} else {
throw new Error(str);
}
},
// resets the lexer, sets new input
setInput: function
/*istanbul ignore next*/
setInput(input, yy) {
this.yy = yy || this.yy || {};
this._input = input;
this._more = this._backtrack = this.done = false;
this.yylineno = this.yyleng = 0;
this.yytext = this.matched = this.match = '';
this.conditionStack = ['INITIAL'];
this.yylloc = {
first_line: 1,
first_column: 0,
last_line: 1,
last_column: 0
};
if (this.options.ranges) {
this.yylloc.range = [0, 0];
}
this.offset = 0;
return this;
},
// consumes and returns one char from the input
input: function
/*istanbul ignore next*/
input() {
var ch = this._input[0];
this.yytext += ch;
this.yyleng++;
this.offset++;
this.match += ch;
this.matched += ch;
var lines = ch.match(/(?:\r\n?|\n).*/g);
if (lines) {
this.yylineno++;
this.yylloc.last_line++;
} else {
this.yylloc.last_column++;
}
if (this.options.ranges) {
this.yylloc.range[1]++;
}
this._input = this._input.slice(1);
return ch;
},
// unshifts one char (or a string) into the input
unput: function
/*istanbul ignore next*/
unput(ch) {
var len = ch.length;
var lines = ch.split(/(?:\r\n?|\n)/g);
this._input = ch + this._input;
this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len;
this.offset -= len;
var oldLines = this.match.split(/(?:\r\n?|\n)/g);
this.match = this.match.substr(0, this.match.length - 1);
this.matched = this.matched.substr(0, this.matched.length - 1);
if (lines.length - 1) {
this.yylineno -= lines.length - 1;
}
var r = this.yylloc.range;
this.yylloc = {
first_line: this.yylloc.first_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.first_column,
last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
};
if (this.options.ranges) {
this.yylloc.range = [r[0], r[0] + this.yyleng - len];
}
this.yyleng = this.yytext.length;
return this;
},
// When called from action, caches matched text and appends it on next action
more: function
/*istanbul ignore next*/
more() {
this._more = true;
return this;
},
// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
reject: function
/*istanbul ignore next*/
reject() {
if (this.options.backtrack_lexer) {
this._backtrack = true;
} else {
return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
});
}
return this;
},
// retain first n characters of the match
less: function
/*istanbul ignore next*/
less(n) {
this.unput(this.match.slice(n));
},
// displays already matched input, i.e. for error messages
pastInput: function
/*istanbul ignore next*/
pastInput() {
var past = this.matched.substr(0, this.matched.length - this.match.length);
return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
},
// displays upcoming input, i.e. for error messages
upcomingInput: function
/*istanbul ignore next*/
upcomingInput() {
var next = this.match;
if (next.length < 20) {
next += this._input.substr(0, 20 - next.length);
}
return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
},
// displays the character position where the lexing error occurred, i.e. for error messages
showPosition: function
/*istanbul ignore next*/
showPosition() {
var pre = this.pastInput();
var c = new Array(pre.length + 1).join("-");
return pre + this.upcomingInput() + "\n" + c + "^";
},
// test the lexed token: return FALSE when not a match, otherwise return token
test_match: function
/*istanbul ignore next*/
test_match(match, indexed_rule) {
var token, lines, backup;
if (this.options.backtrack_lexer) {
// save context
backup = {
yylineno: this.yylineno,
yylloc: {
first_line: this.yylloc.first_line,
last_line: this.last_line,
first_column: this.yylloc.first_column,
last_column: this.yylloc.last_column
},
yytext: this.yytext,
match: this.match,
matches: this.matches,
matched: this.matched,
yyleng: this.yyleng,
offset: this.offset,
_more: this._more,
_input: this._input,
yy: this.yy,
conditionStack: this.conditionStack.slice(0),
done: this.done
};
if (this.options.ranges) {
backup.yylloc.range = this.yylloc.range.slice(0);
}
}
lines = match[0].match(/(?:\r\n?|\n).*/g);
if (lines) {
this.yylineno += lines.length;
}
this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
};
this.yytext += match[0];
this.match += match[0];
this.matches = match;
this.yyleng = this.yytext.length;
if (this.options.ranges) {
this.yylloc.range = [this.offset, this.offset += this.yyleng];
}
this._more = false;
this._backtrack = false;
this._input = this._input.slice(match[0].length);
this.matched += match[0];
token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
if (this.done && this._input) {
this.done = false;
}
if (token) {
return token;
} else if (this._backtrack) {
// recover context
for (var k in backup) {
this[k] = backup[k];
}
return false; // rule action called reject() implying the next rule should be tested instead.
}
return false;
},
// return next match in input
next: function
/*istanbul ignore next*/
next() {
if (this.done) {
return this.EOF;
}
if (!this._input) {
this.done = true;
}
var token, match, tempMatch, index;
if (!this._more) {
this.yytext = '';
this.match = '';
}
var rules = this._currentRules();
for (var i = 0; i < rules.length; i++) {
tempMatch = this._input.match(this.rules[rules[i]]);
if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
match = tempMatch;
index = i;
if (this.options.backtrack_lexer) {
token = this.test_match(tempMatch, rules[i]);
if (token !== false) {
return token;
} else if (this._backtrack) {
match = false;
continue; // rule action called reject() implying a rule MISmatch.
} else {
// else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
} else if (!this.options.flex) {
break;
}
}
}
if (match) {
token = this.test_match(match, rules[index]);
if (token !== false) {
return token;
} // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
if (this._input === "") {
return this.EOF;
} else {
return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
});
}
},
// return next match that has a token
lex: function lex() {
var r = this.next();
if (r) {
return r;
} else {
return this.lex();
}
},
// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
begin: function begin(condition) {
this.conditionStack.push(condition);
},
// pop the previously active lexer condition state off the condition stack
popState: function popState() {
var n = this.conditionStack.length - 1;
if (n > 0) {
return this.conditionStack.pop();
} else {
return this.conditionStack[0];
}
},
// produce the lexer rule set which is active for the currently active lexer condition state
_currentRules: function _currentRules() {
if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
} else {
return this.conditions["INITIAL"].rules;
}
},
// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
topState: function topState(n) {
n = this.conditionStack.length - 1 - Math.abs(n || 0);
if (n >= 0) {
return this.conditionStack[n];
} else {
return "INITIAL";
}
},
// alias for begin(condition)
pushState: function pushState(condition) {
this.begin(condition);
},
// return the number of states currently on the stack
stateStackSize: function stateStackSize() {
return this.conditionStack.length;
},
options: {},
performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
function strip(start, end) {
return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start);
}
var YYSTATE = YY_START;
switch ($avoiding_name_collisions) {
case 0:
if (yy_.yytext.slice(-2) === "\\\\") {
strip(0, 1);
this.begin("mu");
} else if (yy_.yytext.slice(-1) === "\\") {
strip(0, 1);
this.begin("emu");
} else {
this.begin("mu");
}
if (yy_.yytext) return 15;
break;
case 1:
return 15;
break;
case 2:
this.popState();
return 15;
break;
case 3:
this.begin('raw');
return 15;
break;
case 4:
this.popState(); // Should be using `this.topState()` below, but it currently
// returns the second top instead of the first top. Opened an
// issue about it at https://github.com/zaach/jison/issues/291
if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {
return 15;
} else {
strip(5, 9);
return 18;
}
break;
case 5:
return 15;
break;
case 6:
this.popState();
return 14;
break;
case 7:
return 65;
break;
case 8:
return 68;
break;
case 9:
return 19;
break;
case 10:
this.popState();
this.begin('raw');
return 23;
break;
case 11:
return 55;
break;
case 12:
return 60;
break;
case 13:
return 29;
break;
case 14:
return 47;
break;
case 15:
this.popState();
return 44;
break;
case 16:
this.popState();
return 44;
break;
case 17:
return 34;
break;
case 18:
return 39;
break;
case 19:
return 51;
break;
case 20:
return 48;
break;
case 21:
this.unput(yy_.yytext);
this.popState();
this.begin('com');
break;
case 22:
this.popState();
return 14;
break;
case 23:
return 48;
break;
case 24:
return 73;
break;
case 25:
return 72;
break;
case 26:
return 72;
break;
case 27:
return 87;
break;
case 28:
// ignore whitespace
break;
case 29:
this.popState();
return 54;
break;
case 30:
this.popState();
return 33;
break;
case 31:
yy_.yytext = strip(1, 2).replace(/\\"/g, '"');
return 80;
break;
case 32:
yy_.yytext = strip(1, 2).replace(/\\'/g, "'");
return 80;
break;
case 33:
return 85;
break;
case 34:
return 82;
break;
case 35:
return 82;
break;
case 36:
return 83;
break;
case 37:
return 84;
break;
case 38:
return 81;
break;
case 39:
return 75;
break;
case 40:
return 77;
break;
case 41:
return 72;
break;
case 42:
yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');
return 72;
break;
case 43:
return 'INVALID';
break;
case 44:
return 5;
break;
}
},
rules: [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]+?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/],
conditions: {
"mu": {
"rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44],
"inclusive": false
},
"emu": {
"rules": [2],
"inclusive": false
},
"com": {
"rules": [6],
"inclusive": false
},
"raw": {
"rules": [3, 4, 5],
"inclusive": false
},
"INITIAL": {
"rules": [0, 1, 44],
"inclusive": true
}
}
};
return lexer;
}();
parser.lexer = lexer;
function Parser() {
this.yy = {};
}
Parser.prototype = parser;
parser.Parser = Parser;
return new Parser();
}();
/*istanbul ignore next*/
var _default = handlebars;
/*istanbul ignore next*/
exports["default"] = _default;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL3BhcnNlci5qcyJdLCJuYW1lcyI6WyJoYW5kbGViYXJzIiwibyIsImsiLCJ2IiwibCIsImxlbmd0aCIsIiRWMCIsIiRWMSIsIiRWMiIsIiRWMyIsIiRWNCIsIiRWNSIsIiRWNiIsIiRWNyIsIiRWOCIsIiRWOSIsIiRWYSIsIiRWYiIsIiRWYyIsIiRWZCIsIiRWZSIsIiRWZiIsIiRWZyIsIiRWaCIsIiRWaSIsIiRWaiIsIiRWayIsIiRWbCIsIiRWbSIsIiRWbiIsIiRWbyIsIiRWcCIsIiRWcSIsIiRWciIsIiRWcyIsIiRWdCIsIiRWdSIsIiRWdiIsIiRWdyIsInBhcnNlciIsInRyYWNlIiwieXkiLCJzeW1ib2xzXyIsInRlcm1pbmFsc18iLCJwcm9kdWN0aW9uc18iLCJwZXJmb3JtQWN0aW9uIiwiYW5vbnltb3VzIiwieXl0ZXh0IiwieXlsZW5nIiwieXlsaW5lbm8iLCJ5eXN0YXRlIiwiJCQiLCJfJCIsIiQwIiwiJCIsInByZXBhcmVQcm9ncmFtIiwidHlwZSIsInZhbHVlIiwic3RyaXBDb21tZW50Iiwic3RyaXAiLCJzdHJpcEZsYWdzIiwibG9jIiwibG9jSW5mbyIsIm9yaWdpbmFsIiwicHJlcGFyZVJhd0Jsb2NrIiwicGF0aCIsInBhcmFtcyIsImhhc2giLCJwcmVwYXJlQmxvY2siLCJvcGVuIiwiYmxvY2tQYXJhbXMiLCJwcm9ncmFtIiwiaW52ZXJzZSIsImNoYWluZWQiLCJjaGFpbiIsInByZXBhcmVNdXN0YWNoZSIsIm5hbWUiLCJpbmRlbnQiLCJwcmVwYXJlUGFydGlhbEJsb2NrIiwicGFpcnMiLCJrZXkiLCJpZCIsIk51bWJlciIsInVuZGVmaW5lZCIsInByZXBhcmVQYXRoIiwicHVzaCIsInBhcnQiLCJzZXBhcmF0b3IiLCJ0YWJsZSIsImRlZmF1bHRBY3Rpb25zIiwicGFyc2VFcnJvciIsInN0ciIsInJlY292ZXJhYmxlIiwiX3BhcnNlRXJyb3IiLCJtc2ciLCJtZXNzYWdlIiwicHJvdG90eXBlIiwiRXJyb3IiLCJwYXJzZSIsImlucHV0Iiwic2VsZiIsInN0YWNrIiwidHN0YWNrIiwidnN0YWNrIiwibHN0YWNrIiwicmVjb3ZlcmluZyIsIlRFUlJPUiIsIkVPRiIsImFyZ3MiLCJzbGljZSIsImNhbGwiLCJhcmd1bWVudHMiLCJsZXhlciIsIk9iamVjdCIsImNyZWF0ZSIsInNoYXJlZFN0YXRlIiwiaGFzT3duUHJvcGVydHkiLCJzZXRJbnB1dCIsInl5bGxvYyIsInl5bG9jIiwicmFuZ2VzIiwib3B0aW9ucyIsImdldFByb3RvdHlwZU9mIiwicG9wU3RhY2siLCJuIiwiX3Rva2VuX3N0YWNrIiwibGV4IiwidG9rZW4iLCJzeW1ib2wiLCJwcmVFcnJvclN5bWJvbCIsInN0YXRlIiwiYWN0aW9uIiwiYSIsInIiLCJ5eXZhbCIsInAiLCJsZW4iLCJuZXdTdGF0ZSIsImV4cGVjdGVkIiwiZXJyU3RyIiwic2hvd1Bvc2l0aW9uIiwiam9pbiIsInRleHQiLCJtYXRjaCIsImxpbmUiLCJBcnJheSIsImZpcnN0X2xpbmUiLCJsYXN0X2xpbmUiLCJmaXJzdF9jb2x1bW4iLCJsYXN0X2NvbHVtbiIsInJhbmdlIiwiYXBwbHkiLCJjb25jYXQiLCJfaW5wdXQiLCJfbW9yZSIsIl9iYWNrdHJhY2siLCJkb25lIiwibWF0Y2hlZCIsImNvbmRpdGlvblN0YWNrIiwib2Zmc2V0IiwiY2giLCJsaW5lcyIsInVucHV0Iiwic3BsaXQiLCJzdWJzdHIiLCJvbGRMaW5lcyIsIm1vcmUiLCJyZWplY3QiLCJiYWNrdHJhY2tfbGV4ZXIiLCJsZXNzIiwicGFzdElucHV0IiwicGFzdCIsInJlcGxhY2UiLCJ1cGNvbWluZ0lucHV0IiwibmV4dCIsInByZSIsImMiLCJ0ZXN0X21hdGNoIiwiaW5kZXhlZF9ydWxlIiwiYmFja3VwIiwibWF0Y2hlcyIsInRlbXBNYXRjaCIsImluZGV4IiwicnVsZXMiLCJfY3VycmVudFJ1bGVzIiwiaSIsImZsZXgiLCJiZWdpbiIsImNvbmRpdGlvbiIsInBvcFN0YXRlIiwicG9wIiwiY29uZGl0aW9ucyIsInRvcFN0YXRlIiwiTWF0aCIsImFicyIsInB1c2hTdGF0ZSIsInN0YXRlU3RhY2tTaXplIiwieXlfIiwiJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucyIsIllZX1NUQVJUIiwic3RhcnQiLCJlbmQiLCJzdWJzdHJpbmciLCJZWVNUQVRFIiwiUGFyc2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLFVBQVUsR0FBSSxZQUFVO0FBQzVCLE1BQUlDLENBQUMsR0FBQztBQUFBO0FBQUEsSUFBU0MsQ0FBVCxFQUFXQyxDQUFYLEVBQWFGLEVBQWIsRUFBZUcsQ0FBZixFQUFpQjtBQUFDLFNBQUlILEVBQUMsR0FBQ0EsRUFBQyxJQUFFLEVBQUwsRUFBUUcsQ0FBQyxHQUFDRixDQUFDLENBQUNHLE1BQWhCLEVBQXVCRCxDQUFDLEVBQXhCLEVBQTJCSCxFQUFDLENBQUNDLENBQUMsQ0FBQ0UsQ0FBRCxDQUFGLENBQUQsR0FBUUQsQ0FBbkM7QUFBQTtBQUFBO0FBQXFDO0FBQXJDOztBQUFzQyxXQUFPRixFQUFQO0FBQVMsR0FBdkU7QUFBQSxNQUF3RUssR0FBRyxHQUFDLENBQUMsQ0FBRCxFQUFHLEVBQUgsQ0FBNUU7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RUFBOUYsRUFBaUcsRUFBakcsRUFBb0csRUFBcEcsRUFBdUcsRUFBdkcsRUFBMEcsRUFBMUcsRUFBNkcsRUFBN0csQ0FBVDtBQUEwSCx1QkFBWTtBQUF0SSxTQUFOO0FBQW1KLGVBQU07QUFBQyxtQkFBUSxDQUFDLENBQUQsQ0FBVDtBQUFhLHVCQUFZO0FBQXpCLFNBQXpKO0FBQXlMLGVBQU07QUFBQyxtQkFBUSxDQUFDLENBQUQsQ0FBVDtBQUFhLHVCQUFZO0FBQXpCLFNBQS9MO0FBQStOLGVBQU07QUFBQyxtQkFBUSxDQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTCxDQUFUO0FBQWlCLHVCQUFZO0FBQTdCLFNBQXJPO0FBQXlRLG1CQUFVO0FBQUMsbUJBQVEsQ0FBQyxDQUFELEVBQUcsQ0FBSCxFQUFLLEVBQUwsQ0FBVDtBQUFrQix1QkFBWTtBQUE5QjtBQUFuUjtBQWhkQyxLQUFiO0FBa2RBLFdBQU8vRSxLQUFQO0FBQ0MsR0FwZFcsRUFBWjs7QUFxZEF6RSxFQUFBQSxNQUFNLENBQUN5RSxLQUFQLEdBQWVBLEtBQWY7O0FBQ0EsV0FBUzRGLE1BQVQsR0FBbUI7QUFDakIsU0FBS25LLEVBQUwsR0FBVSxFQUFWO0FBQ0Q7O0FBQ0RtSyxFQUFBQSxNQUFNLENBQUM1RyxTQUFQLEdBQW1CekQsTUFBbkI7QUFBMEJBLEVBQUFBLE1BQU0sQ0FBQ3FLLE1BQVAsR0FBZ0JBLE1BQWhCO0FBQzFCLFNBQU8sSUFBSUEsTUFBSixFQUFQO0FBQ0MsQ0E5d0JnQixFQUFqQjs7O2VBOHdCb0I1TSxVIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRmlsZSBpZ25vcmVkIGluIGNvdmVyYWdlIHRlc3RzIHZpYSBzZXR0aW5nIGluIC5pc3RhbmJ1bC55bWxcbi8qIHBhcnNlciBnZW5lcmF0ZWQgYnkgamlzb24gMC40LjE3ICovXG4vKlxuICBSZXR1cm5zIGEgUGFyc2VyIG9iamVjdCBvZiB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcblxuICBQYXJzZXI6IHtcbiAgICB5eToge31cbiAgfVxuXG4gIFBhcnNlci5wcm90b3R5cGU6IHtcbiAgICB5eToge30sXG4gICAgdHJhY2U6IGZ1bmN0aW9uKCksXG4gICAgc3ltYm9sc186IHthc3NvY2lhdGl2ZSBsaXN0OiBuYW1lID09PiBudW1iZXJ9LFxuICAgIHRlcm1pbmFsc186IHthc3NvY2lhdGl2ZSBsaXN0OiBudW1iZXIgPT0+IG5hbWV9LFxuICAgIHByb2R1Y3Rpb25zXzogWy4uLl0sXG4gICAgcGVyZm9ybUFjdGlvbjogZnVuY3Rpb24gYW5vbnltb3VzKHl5dGV4dCwgeXlsZW5nLCB5eWxpbmVubywgeXksIHl5c3RhdGUsICQkLCBfJCksXG4gICAgdGFibGU6IFsuLi5dLFxuICAgIGRlZmF1bHRBY3Rpb25zOiB7Li4ufSxcbiAgICBwYXJzZUVycm9yOiBmdW5jdGlvbihzdHIsIGhhc2gpLFxuICAgIHBhcnNlOiBmdW5jdGlvbihpbnB1dCksXG5cbiAgICBsZXhlcjoge1xuICAgICAgICBFT0Y6IDEsXG4gICAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uKHN0ciwgaGFzaCksXG4gICAgICAgIHNldElucHV0OiBmdW5jdGlvbihpbnB1dCksXG4gICAgICAgIGlucHV0OiBmdW5jdGlvbigpLFxuICAgICAgICB1bnB1dDogZnVuY3Rpb24oc3RyKSxcbiAgICAgICAgbW9yZTogZnVuY3Rpb24oKSxcbiAgICAgICAgbGVzczogZnVuY3Rpb24obiksXG4gICAgICAgIHBhc3RJbnB1dDogZnVuY3Rpb24oKSxcbiAgICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24oKSxcbiAgICAgICAgc2hvd1Bvc2l0aW9uOiBmdW5jdGlvbigpLFxuICAgICAgICB0ZXN0X21hdGNoOiBmdW5jdGlvbihyZWdleF9tYXRjaF9hcnJheSwgcnVsZV9pbmRleCksXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uKCksXG4gICAgICAgIGxleDogZnVuY3Rpb24oKSxcbiAgICAgICAgYmVnaW46IGZ1bmN0aW9uKGNvbmRpdGlvbiksXG4gICAgICAgIHBvcFN0YXRlOiBmdW5jdGlvbigpLFxuICAgICAgICBfY3VycmVudFJ1bGVzOiBmdW5jdGlvbigpLFxuICAgICAgICB0b3BTdGF0ZTogZnVuY3Rpb24oKSxcbiAgICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbihjb25kaXRpb24pLFxuXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHJhbmdlczogYm9vbGVhbiAgICAgICAgICAgKG9wdGlvbmFsOiB0cnVlID09PiB0b2tlbiBsb2NhdGlvbiBpbmZvIHdpbGwgaW5jbHVkZSBhIC5yYW5nZVtdIG1lbWJlcilcbiAgICAgICAgICAgIGZsZXg6IGJvb2xlYW4gICAgICAgICAgICAgKG9wdGlvbmFsOiB0cnVlID09PiBmbGV4LWxpa2UgbGV4aW5nIGJlaGF2aW91ciB3aGVyZSB0aGUgcnVsZXMgYXJlIHRlc3RlZCBleGhhdXN0aXZlbHkgdG8gZmluZCB0aGUgbG9uZ2VzdCBtYXRjaClcbiAgICAgICAgICAgIGJhY2t0cmFja19sZXhlcjogYm9vbGVhbiAgKG9wdGlvbmFsOiB0cnVlID09PiBsZXhlciByZWdleGVzIGFyZSB0ZXN0ZWQgaW4gb3JkZXIgYW5kIGZvciBlYWNoIG1hdGNoaW5nIHJlZ2V4IHRoZSBhY3Rpb24gY29kZSBpcyBpbnZva2VkOyB0aGUgbGV4ZXIgdGVybWluYXRlcyB0aGUgc2NhbiB3aGVuIGEgdG9rZW4gaXMgcmV0dXJuZWQgYnkgdGhlIGFjdGlvbiBjb2RlKVxuICAgICAgICB9LFxuXG4gICAgICAgIHBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uKHl5LCB5eV8sICRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMsIFlZX1NUQVJUKSxcbiAgICAgICAgcnVsZXM6IFsuLi5dLFxuICAgICAgICBjb25kaXRpb25zOiB7YXNzb2NpYXRpdmUgbGlzdDogbmFtZSA9PT4gc2V0fSxcbiAgICB9XG4gIH1cblxuXG4gIHRva2VuIGxvY2F0aW9uIGluZm8gKEAkLCBfJCwgZXRjLik6IHtcbiAgICBmaXJzdF9saW5lOiBuLFxuICAgIGxhc3RfbGluZTogbixcbiAgICBmaXJzdF9jb2x1bW46IG4sXG4gICAgbGFzdF9jb2x1bW46IG4sXG4gICAgcmFuZ2U6IFtzdGFydF9udW1iZXIsIGVuZF9udW1iZXJdICAgICAgICh3aGVyZSB0aGUgbnVtYmVycyBhcmUgaW5kZXhlcyBpbnRvIHRoZSBpbnB1dCBzdHJpbmcsIHJlZ3VsYXIgemVyby1iYXNlZClcbiAgfVxuXG5cbiAgdGhlIHBhcnNlRXJyb3IgZnVuY3Rpb24gcmVjZWl2ZXMgYSAnaGFzaCcgb2JqZWN0IHdpdGggdGhlc2UgbWVtYmVycyBmb3IgbGV4ZXIgYW5kIHBhcnNlciBlcnJvcnM6IHtcbiAgICB0ZXh0OiAgICAgICAgKG1hdGNoZWQgdGV4dClcbiAgICB0b2tlbjogICAgICAgKHRoZSBwcm9kdWNlZCB0ZXJtaW5hbCB0b2tlbiwgaWYgYW55KVxuICAgIGxpbmU6ICAgICAgICAoeXlsaW5lbm8pXG4gIH1cbiAgd2hpbGUgcGFyc2VyIChncmFtbWFyKSBlcnJvcnMgd2lsbCBhbHNvIHByb3ZpZGUgdGhlc2UgbWVtYmVycywgaS5lLiBwYXJzZXIgZXJyb3JzIGRlbGl2ZXIgYSBzdXBlcnNldCBvZiBhdHRyaWJ1dGVzOiB7XG4gICAgbG9jOiAgICAgICAgICh5eWxsb2MpXG4gICAgZXhwZWN0ZWQ6ICAgIChzdHJpbmcgZGVzY3JpYmluZyB0aGUgc2V0IG9mIGV4cGVjdGVkIHRva2VucylcbiAgICByZWNvdmVyYWJsZTogKGJvb2xlYW46IFRSVUUgd2hlbiB0aGUgcGFyc2VyIGhhcyBhIGVycm9yIHJlY292ZXJ5IHJ1bGUgYXZhaWxhYmxlIGZvciB0aGlzIHBhcnRpY3VsYXIgZXJyb3IpXG4gIH1cbiovXG52YXIgaGFuZGxlYmFycyA9IChmdW5jdGlvbigpe1xudmFyIG89ZnVuY3Rpb24oayx2LG8sbCl7Zm9yKG89b3x8e30sbD1rLmxlbmd0aDtsLS07b1trW2xdXT12KTtyZXR1cm4gb30sJFYwPVsyLDQ2XSwkVjE9WzEsMjBdLCRWMj1bNSwxNCwxNSwxOSwyOSwzNCwzOSw0NCw0Nyw0OCw1MSw1NSw2MF0sJFYzPVsxLDM1XSwkVjQ9WzEsMjhdLCRWNT1bMSwyOV0sJFY2PVsxLDMwXSwkVjc9WzEsMzFdLCRWOD1bMSwzMl0sJFY5PVsxLDM0XSwkVmE9WzE0LDE1LDE5LDI5LDM0LDM5LDQ0LDQ3LDQ4LDUxLDU1LDYwXSwkVmI9WzE0LDE1LDE5LDI5LDM0LDQ0LDQ3LDQ4LDUxLDU1LDYwXSwkVmM9WzE1LDE4XSwkVmQ9WzEsNDNdLCRWZT1bMTQsMTUsMTksMjksMzQsNDcsNDgsNTEsNTUsNjBdLCRWZj1bMzMsNjUsNzIsODAsODEsODIsODMsODQsODVdLCRWZz1bMjMsMzMsNTQsNjUsNjgsNzIsNzUsODAsODEsODIsODMsODQsODVdLCRWaD1bMSw1MF0sJFZpPVsyMywzMyw1NCw2NSw2OCw3Miw3NSw4MCw4MSw4Miw4Myw4NCw4NSw4N10sJFZqPVsyLDQ1XSwkVms9WzU0LDY1LDcyLDgwLDgxLDgyLDgzLDg0LDg1XSwkVmw9WzEsNTddLCRWbT1bMSw1OF0sJFZuPVsxLDY2XSwkVm89WzMzLDY1LDcyLDc1LDgwLDgxLDgyLDgzLDg0LDg1XSwkVnA9WzIzLDY1LDcyLDgwLDgxLDgyLDgzLDg0LDg1XSwkVnE9WzEsNzhdLCRWcj1bNjUsNjgsNzIsODAsODEsODIsODMsODQsODVdLCRWcz1bMzMsNzVdLCRWdD1bMjMsMzMsNTQsNjgsNzIsNzVdLCRWdT1bMSwxMDhdLCRWdj1bMSwxMjBdLCRWdz1bNzIsNzddO1xudmFyIHBhcnNlciA9IHt0cmFjZTogZnVuY3Rpb24gdHJhY2UgKCkgeyB9LFxueXk6IHt9LFxuc3ltYm9sc186IHtcImVycm9yXCI6MixcInJvb3RcIjozLFwicHJvZ3JhbVwiOjQsXCJFT0ZcIjo1LFwicHJvZ3JhbV9yZXBldGl0aW9uMFwiOjYsXCJzdGF0ZW1lbnRcIjo3LFwibXVzdGFjaGVcIjo4LFwiYmxvY2tcIjo5LFwicmF3QmxvY2tcIjoxMCxcInBhcnRpYWxcIjoxMSxcInBhcnRpYWxCbG9ja1wiOjEyLFwiY29udGVudFwiOjEzLFwiQ09NTUVOVFwiOjE0LFwiQ09OVEVOVFwiOjE1LFwib3BlblJhd0Jsb2NrXCI6MTYsXCJyYXdCbG9ja19yZXBldGl0aW9uMFwiOjE3LFwiRU5EX1JBV19CTE9DS1wiOjE4LFwiT1BFTl9SQVdfQkxPQ0tcIjoxOSxcImhlbHBlck5hbWVcIjoyMCxcIm9wZW5SYXdCbG9ja19yZXBldGl0aW9uMFwiOjIxLFwib3BlblJhd0Jsb2NrX29wdGlvbjBcIjoyMixcIkNMT1NFX1JBV19CTE9DS1wiOjIzLFwib3BlbkJsb2NrXCI6MjQsXCJibG9ja19vcHRpb24wXCI6MjUsXCJjbG9zZUJsb2NrXCI6MjYsXCJvcGVuSW52ZXJzZVwiOjI3LFwiYmxvY2tfb3B0aW9uMVwiOjI4LFwiT1BFTl9CTE9DS1wiOjI5LFwib3BlbkJsb2NrX3JlcGV0aXRpb24wXCI6MzAsXCJvcGVuQmxvY2tfb3B0aW9uMFwiOjMxLFwib3BlbkJsb2NrX29wdGlvbjFcIjozMixcIkNMT1NFXCI6MzMsXCJPUEVOX0lOVkVSU0VcIjozNCxcIm9wZW5JbnZlcnNlX3JlcGV0aXRpb24wXCI6MzUsXCJvcGVuSW52ZXJzZV9vcHRpb24wXCI6MzYsXCJvcGVuSW52ZXJzZV9vcHRpb24xXCI6MzcsXCJvcGVuSW52ZXJzZUNoYWluXCI6MzgsXCJPUEVOX0lOVkVSU0VfQ0hBSU5cIjozOSxcIm9wZW5JbnZlcnNlQ2hhaW5fcmVwZXRpdGlvbjBcIjo0MCxcIm9wZW5JbnZlcnNlQ2hhaW5fb3B0aW9uMFwiOjQxLFwib3BlbkludmVyc2VDaGFpbl9vcHRpb24xXCI6NDIsXCJpbnZlcnNlQW5kUHJvZ3JhbVwiOjQzLFwiSU5WRVJTRVwiOjQ0LFwiaW52ZXJzZUNoYWluXCI6NDUsXCJpbnZlcnNlQ2hhaW5fb3B0aW9uMFwiOjQ2LFwiT1BFTl9FTkRCTE9DS1wiOjQ3LFwiT1BFTlwiOjQ4LFwibXVzdGFjaGVfcmVwZXRpdGlvbjBcIjo0OSxcIm11c3RhY2hlX29wdGlvbjBcIjo1MCxcIk9QRU5fVU5FU0NBUEVEXCI6NTEsXCJtdXN0YWNoZV9yZXBldGl0aW9uMVwiOjUyLFwibXVzdGFjaGVfb3B0aW9uMVwiOjUzLFwiQ0xPU0VfVU5FU0NBUEVEXCI6NTQsXCJPUEVOX1BBUlRJQUxcIjo1NSxcInBhcnRpYWxOYW1lXCI6NTYsXCJwYXJ0aWFsX3JlcGV0aXRpb24wXCI6NTcsXCJwYXJ0aWFsX29wdGlvbjBcIjo1OCxcIm9wZW5QYXJ0aWFsQmxvY2tcIjo1OSxcIk9QRU5fUEFSVElBTF9CTE9DS1wiOjYwLFwib3BlblBhcnRpYWxCbG9ja19yZXBldGl0aW9uMFwiOjYxLFwib3BlblBhcnRpYWxCbG9ja19vcHRpb24wXCI6NjIsXCJwYXJhbVwiOjYzLFwic2V4cHJcIjo2NCxcIk9QRU5fU0VYUFJcIjo2NSxcInNleHByX3JlcGV0aXRpb24wXCI6NjYsXCJzZXhwcl9vcHRpb24wXCI6NjcsXCJDTE9TRV9TRVhQUlwiOjY4LFwiaGFzaFwiOjY5LFwiaGFzaF9yZXBldGl0aW9uX3BsdXMwXCI6NzAsXCJoYXNoU2VnbWVudFwiOjcxLFwiSURcIjo3MixcIkVRVUFMU1wiOjczLFwiYmxvY2tQYXJhbXNcIjo3NCxcIk9QRU5fQkxPQ0tfUEFSQU1TXCI6NzUsXCJibG9ja1BhcmFtc19yZXBldGl0aW9uX3BsdXMwXCI6NzYsXCJDTE9TRV9CTE9DS19QQVJBTVNcIjo3NyxcInBhdGhcIjo3OCxcImRhdGFOYW1lXCI6NzksXCJTVFJJTkdcIjo4MCxcIk5VTUJFUlwiOjgxLFwiQk9PTEVBTlwiOjgyLFwiVU5ERUZJTkVEXCI6ODMsXCJOVUxMXCI6ODQsXCJEQVRBXCI6ODUsXCJwYXRoU2VnbWVudHNcIjo4NixcIlNFUFwiOjg3LFwiJGFjY2VwdFwiOjAsXCIkZW5kXCI6MX0sXG50ZXJtaW5hbHNfOiB7MjpcImVycm9yXCIsNTpcIkVPRlwiLDE0OlwiQ09NTUVOVFwiLDE1OlwiQ09OVEVOVFwiLDE4OlwiRU5EX1JBV19CTE9DS1wiLDE5OlwiT1BFTl9SQVdfQkxPQ0tcIiwyMzpcIkNMT1NFX1JBV19CTE9DS1wiLDI5OlwiT1BFTl9CTE9DS1wiLDMzOlwiQ0xPU0VcIiwzNDpcIk9QRU5fSU5WRVJTRVwiLDM5OlwiT1BFTl9JTlZFUlNFX0NIQUlOXCIsNDQ6XCJJTlZFUlNFXCIsNDc6XCJPUEVOX0VOREJMT0NLXCIsNDg6XCJPUEVOXCIsNTE6XCJPUEVOX1VORVNDQVBFRFwiLDU0OlwiQ0xPU0VfVU5FU0NBUEVEXCIsNTU6XCJPUEVOX1BBUlRJQUxcIiw2MDpcIk9QRU5fUEFSVElBTF9CTE9DS1wiLDY1OlwiT1BFTl9TRVhQUlwiLDY4OlwiQ0xPU0VfU0VYUFJcIiw3MjpcIklEXCIsNzM6XCJFUVVBTFNcIiw3NTpcIk9QRU5fQkxPQ0tfUEFSQU1TXCIsNzc6XCJDTE9TRV9CTE9DS19QQVJBTVNcIiw4MDpcIlNUUklOR1wiLDgxOlwiTlVNQkVSXCIsODI6XCJCT09MRUFOXCIsODM6XCJVTkRFRklORURcIiw4NDpcIk5VTExcIiw4NTpcIkRBVEFcIiw4NzpcIlNFUFwifSxcbnByb2R1Y3Rpb25zXzogWzAsWzMsMl0sWzQsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzEzLDFdLFsxMCwzXSxbMTYsNV0sWzksNF0sWzksNF0sWzI0LDZdLFsyNyw2XSxbMzgsNl0sWzQzLDJdLFs0NSwzXSxbNDUsMV0sWzI2LDNdLFs4LDVdLFs4LDVdLFsxMSw1XSxbMTIsM10sWzU5LDVdLFs2MywxXSxbNjMsMV0sWzY0LDVdLFs2OSwxXSxbNzEsM10sWzc0LDNdLFsyMCwxXSxbMjAsMV0sWzIwLDFdLFsyMCwxXSxbMjAsMV0sWzIwLDFdLFsyMCwxXSxbNTYsMV0sWzU2LDFdLFs3OSwyXSxbNzgsMV0sWzg2LDNdLFs4NiwxXSxbNiwwXSxbNiwyXSxbMTcsMF0sWzE3LDJdLFsyMSwwXSxbMjEsMl0sWzIyLDBdLFsyMiwxXSxbMjUsMF0sWzI1LDFdLFsyOCwwXSxbMjgsMV0sWzMwLDBdLFszMCwyXSxbMzEsMF0sWzMxLDFdLFszMiwwXSxbMzIsMV0sWzM1LDBdLFszNSwyXSxbMzYsMF0sWzM2LDFdLFszNywwXSxbMzcsMV0sWzQwLDBdLFs0MCwyXSxbNDEsMF0sWzQxLDFdLFs0MiwwXSxbNDIsMV0sWzQ2LDBdLFs0NiwxXSxbNDksMF0sWzQ5LDJdLFs1MCwwXSxbNTAsMV0sWzUyLDBdLFs1MiwyXSxbNTMsMF0sWzUzLDFdLFs1NywwXSxbNTcsMl0sWzU4LDBdLFs1OCwxXSxbNjEsMF0sWzYxLDJdLFs2MiwwXSxbNjIsMV0sWzY2LDBdLFs2NiwyXSxbNjcsMF0sWzY3LDFdLFs3MCwxXSxbNzAsMl0sWzc2LDFdLFs3NiwyXV0sXG5wZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB5eSwgeXlzdGF0ZSAvKiBhY3Rpb25bMV0gKi8sICQkIC8qIHZzdGFjayAqLywgXyQgLyogbHN0YWNrICovKSB7XG4vKiB0aGlzID09IHl5dmFsICovXG5cbnZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG5zd2l0Y2ggKHl5c3RhdGUpIHtcbmNhc2UgMTpcbiByZXR1cm4gJCRbJDAtMV07IFxuYnJlYWs7XG5jYXNlIDI6XG50aGlzLiQgPSB5eS5wcmVwYXJlUHJvZ3JhbSgkJFskMF0pO1xuYnJlYWs7XG5jYXNlIDM6IGNhc2UgNDogY2FzZSA1OiBjYXNlIDY6IGNhc2UgNzogY2FzZSA4OiBjYXNlIDIwOiBjYXNlIDI3OiBjYXNlIDI4OiBjYXNlIDMzOiBjYXNlIDM0OiBjYXNlIDQwOiBjYXNlIDQxOlxudGhpcy4kID0gJCRbJDBdO1xuYnJlYWs7XG5jYXNlIDk6XG5cbiAgICB0aGlzLiQgPSB7XG4gICAgICB0eXBlOiAnQ29tbWVudFN0YXRlbWVudCcsXG4gICAgICB2YWx1ZTogeXkuc3RyaXBDb21tZW50KCQkWyQwXSksXG4gICAgICBzdHJpcDogeXkuc3RyaXBGbGFncygkJFskMF0sICQkWyQwXSksXG4gICAgICBsb2M6IHl5LmxvY0luZm8odGhpcy5fJClcbiAgICB9O1xuICBcbmJyZWFrO1xuY2FzZSAxMDpcblxuICAgIHRoaXMuJCA9IHtcbiAgICAgIHR5cGU6ICdDb250ZW50U3RhdGVtZW50JyxcbiAgICAgIG9yaWdpbmFsOiAkJFskMF0sXG4gICAgICB2YWx1ZTogJCRbJDBdLFxuICAgICAgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpXG4gICAgfTtcbiAgXG5icmVhaztcbmNhc2UgMTE6XG50aGlzLiQgPSB5eS5wcmVwYXJlUmF3QmxvY2soJCRbJDAtMl0sICQkWyQwLTFdLCAkJFskMF0sIHRoaXMuXyQpO1xuYnJlYWs7XG5jYXNlIDEyOlxudGhpcy4kID0geyBwYXRoOiAkJFskMC0zXSwgcGFyYW1zOiAkJFskMC0yXSwgaGFzaDogJCRbJDAtMV0gfTtcbmJyZWFrO1xuY2FzZSAxMzpcbnRoaXMuJCA9IHl5LnByZXBhcmVCbG9jaygkJFskMC0zXSwgJCRbJDAtMl0sICQkWyQwLTFdLCAkJFskMF0sIGZhbHNlLCB0aGlzLl8kKTtcbmJyZWFrO1xuY2FzZSAxNDpcbnRoaXMuJCA9IHl5LnByZXBhcmVCbG9jaygkJFskMC0zXSwgJCRbJDAtMl0sICQkWyQwLTFdLCAkJFskMF0sIHRydWUsIHRoaXMuXyQpO1xuYnJlYWs7XG5jYXNlIDE1OlxudGhpcy4kID0geyBvcGVuOiAkJFskMC01XSwgcGF0aDogJCRbJDAtNF0sIHBhcmFtczogJCRbJDAtM10sIGhhc2g6ICQkWyQwLTJdLCBibG9ja1BhcmFtczogJCRbJDAtMV0sIHN0cmlwOiB5eS5zdHJpcEZsYWdzKCQkWyQwLTVdLCAkJFskMF0pIH07XG5icmVhaztcbmNhc2UgMTY6IGNhc2UgMTc6XG50aGlzLiQgPSB7IHBhdGg6ICQkWyQwLTRdLCBwYXJhbXM6ICQkWyQwLTNdLCBoYXNoOiAkJFskMC0yXSwgYmxvY2tQYXJhbXM6ICQkWyQwLTFdLCBzdHJpcDogeXkuc3RyaXBGbGFncygkJFskMC01XSwgJCRbJDBdKSB9O1xuYnJlYWs7XG5jYXNlIDE4OlxudGhpcy4kID0geyBzdHJpcDogeXkuc3RyaXBGbGFncygkJFskMC0xXSwgJCRbJDAtMV0pLCBwcm9ncmFtOiAkJFskMF0gfTtcbmJyZWFrO1xuY2FzZSAxOTpcblxuICAgIHZhciBpbnZlcnNlID0geXkucHJlcGFyZUJsb2NrKCQkWyQwLTJdLCAkJFskMC0xXSwgJCRbJDBdLCAkJFskMF0sIGZhbHNlLCB0aGlzLl8kKSxcbiAgICAgICAgcHJvZ3JhbSA9IHl5LnByZXBhcmVQcm9ncmFtKFtpbnZlcnNlXSwgJCRbJDAtMV0ubG9jKTtcbiAgICBwcm9ncmFtLmNoYWluZWQgPSB0cnVlO1xuXG4gICAgdGhpcy4kID0geyBzdHJpcDogJCRbJDAtMl0uc3RyaXAsIHByb2dyYW06IHByb2dyYW0sIGNoYWluOiB0cnVlIH07XG4gIFxuYnJlYWs7XG5jYXNlIDIxOlxudGhpcy4kID0ge3BhdGg6ICQkWyQwLTFdLCBzdHJpcDogeXkuc3RyaXBGbGFncygkJFskMC0yXSwgJCRbJDBdKX07XG5icmVhaztcbmNhc2UgMjI6IGNhc2UgMjM6XG50aGlzLiQgPSB5eS5wcmVwYXJlTXVzdGFjaGUoJCRbJDAtM10sICQkWyQwLTJdLCAkJFskMC0xXSwgJCRbJDAtNF0sIHl5LnN0cmlwRmxhZ3MoJCRbJDAtNF0sICQkWyQwXSksIHRoaXMuXyQpO1xuYnJlYWs7XG5jYXNlIDI0OlxuXG4gICAgdGhpcy4kID0ge1xuICAgICAgdHlwZTogJ1BhcnRpYWxTdGF0ZW1lbnQnLFxuICAgICAgbmFtZTogJCRbJDAtM10sXG4gICAgICBwYXJhbXM6ICQkWyQwLTJdLFxuICAgICAgaGFzaDogJCRbJDAtMV0sXG4gICAgICBpbmRlbnQ6ICcnLFxuICAgICAgc3RyaXA6IHl5LnN0cmlwRmxhZ3MoJCRbJDAtNF0sICQkWyQwXSksXG4gICAgICBsb2M6IHl5LmxvY0luZm8odGhpcy5fJClcbiAgICB9O1xuICBcbmJyZWFrO1xuY2FzZSAyNTpcbnRoaXMuJCA9IHl5LnByZXBhcmVQYXJ0aWFsQmxvY2soJCRbJDAtMl0sICQkWyQwLTFdLCAkJFskMF0sIHRoaXMuXyQpO1xuYnJlYWs7XG5jYXNlIDI2OlxudGhpcy4kID0geyBwYXRoOiAkJFskMC0zXSwgcGFyYW1zOiAkJFskMC0yXSwgaGFzaDogJCRbJDAtMV0sIHN0cmlwOiB5eS5zdHJpcEZsYWdzKCQkWyQwLTRdLCAkJFskMF0pIH07XG5icmVhaztcbmNhc2UgMjk6XG5cbiAgICB0aGlzLiQgPSB7XG4gICAgICB0eXBlOiAnU3ViRXhwcmVzc2lvbicsXG4gICAgICBwYXRoOiAkJFskMC0zXSxcbiAgICAgIHBhcmFtczogJCRbJDAtMl0sXG4gICAgICBoYXNoOiAkJFskMC0xXSxcbiAgICAgIGxvYzogeXkubG9jSW5mbyh0aGlzLl8kKVxuICAgIH07XG4gIFxuYnJlYWs7XG5jYXNlIDMwOlxudGhpcy4kID0ge3R5cGU6ICdIYXNoJywgcGFpcnM6ICQkWyQwXSwgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpfTtcbmJyZWFrO1xuY2FzZSAzMTpcbnRoaXMuJCA9IHt0eXBlOiAnSGFzaFBhaXInLCBrZXk6IHl5LmlkKCQkWyQwLTJdKSwgdmFsdWU6ICQkWyQwXSwgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpfTtcbmJyZWFrO1xuY2FzZSAzMjpcbnRoaXMuJCA9IHl5LmlkKCQkWyQwLTFdKTtcbmJyZWFrO1xuY2FzZSAzNTpcbnRoaXMuJCA9IHt0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlOiAkJFskMF0sIG9yaWdpbmFsOiAkJFskMF0sIGxvYzogeXkubG9jSW5mbyh0aGlzLl8kKX07XG5icmVhaztcbmNhc2UgMzY6XG50aGlzLiQgPSB7dHlwZTogJ051bWJlckxpdGVyYWwnLCB2YWx1ZTogTnVtYmVyKCQkWyQwXSksIG9yaWdpbmFsOiBOdW1iZXIoJCRbJDBdKSwgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpfTtcbmJyZWFrO1xuY2FzZSAzNzpcbnRoaXMuJCA9IHt0eXBlOiAnQm9vbGVhbkxpdGVyYWwnLCB2YWx1ZTogJCRbJDBdID09PSAndHJ1ZScsIG9yaWdpbmFsOiAkJFskMF0gPT09ICd0cnVlJywgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpfTtcbmJyZWFrO1xuY2FzZSAzODpcbnRoaXMuJCA9IHt0eXBlOiAnVW5kZWZpbmVkTGl0ZXJhbCcsIG9yaWdpbmFsOiB1bmRlZmluZWQsIHZhbHVlOiB1bmRlZmluZWQsIGxvYzogeXkubG9jSW5mbyh0aGlzLl8kKX07XG5icmVhaztcbmNhc2UgMzk6XG50aGlzLiQgPSB7dHlwZTogJ051bGxMaXRlcmFsJywgb3JpZ2luYWw6IG51bGwsIHZhbHVlOiBudWxsLCBsb2M6IHl5LmxvY0luZm8odGhpcy5fJCl9O1xuYnJlYWs7XG5jYXNlIDQyOlxudGhpcy4kID0geXkucHJlcGFyZVBhdGgodHJ1ZSwgJCRbJDBdLCB0aGlzLl8kKTtcbmJyZWFrO1xuY2FzZSA0MzpcbnRoaXMuJCA9IHl5LnByZXBhcmVQYXRoKGZhbHNlLCAkJFskMF0sIHRoaXMuXyQpO1xuYnJlYWs7XG5jYXNlIDQ0OlxuICQkWyQwLTJdLnB1c2goe3BhcnQ6IHl5LmlkKCQkWyQwXSksIG9yaWdpbmFsOiAkJFskMF0sIHNlcGFyYXRvcjogJCRbJDAtMV19KTsgdGhpcy4kID0gJCRbJDAtMl07IFxuYnJlYWs7XG5jYXNlIDQ1OlxudGhpcy4kID0gW3twYXJ0OiB5eS5pZCgkJFskMF0pLCBvcmlnaW5hbDogJCRbJDBdfV07XG5icmVhaztcbmNhc2UgNDY6IGNhc2UgNDg6IGNhc2UgNTA6IGNhc2UgNTg6IGNhc2UgNjQ6IGNhc2UgNzA6IGNhc2UgNzg6IGNhc2UgODI6IGNhc2UgODY6IGNhc2UgOTA6IGNhc2UgOTQ6XG50aGlzLiQgPSBbXTtcbmJyZWFrO1xuY2FzZSA0NzogY2FzZSA0OTogY2FzZSA1MTogY2FzZSA1OTogY2FzZSA2NTogY2FzZSA3MTogY2FzZSA3OTogY2FzZSA4MzogY2FzZSA4NzogY2FzZSA5MTogY2FzZSA5NTogY2FzZSA5OTogY2FzZSAxMDE6XG4kJFskMC0xXS5wdXNoKCQkWyQwXSk7XG5icmVhaztcbmNhc2UgOTg6IGNhc2UgMTAwOlxudGhpcy4kID0gWyQkWyQwXV07XG5icmVhaztcbn1cbn0sXG50YWJsZTogW28oWzUsMTQsMTUsMTksMjksMzQsNDgsNTEsNTUsNjBdLCRWMCx7MzoxLDQ6Miw2OjN9KSx7MTpbM119LHs1OlsxLDRdfSxvKFs1LDM5LDQ0LDQ3XSxbMiwyXSx7Nzo1LDg6Niw5OjcsMTA6OCwxMTo5LDEyOjEwLDEzOjExLDI0OjE1LDI3OjE2LDE2OjE3LDU5OjE5LDE0OlsxLDEyXSwxNTokVjEsMTk6WzEsMjNdLDI5OlsxLDIxXSwzNDpbMSwyMl0sNDg6WzEsMTNdLDUxOlsxLDE0XSw1NTpbMSwxOF0sNjA6WzEsMjRdfSksezE6WzIsMV19LG8oJFYyLFsyLDQ3XSksbygkVjIsWzIsM10pLG8oJFYyLFsyLDRdKSxvKCRWMixbMiw1XSksbygkVjIsWzIsNl0pLG8oJFYyLFsyLDddKSxvKCRWMixbMiw4XSksbygkVjIsWzIsOV0pLHsyMDoyNSw3MjokVjMsNzg6MjYsNzk6MjcsODA6JFY0LDgxOiRWNSw4MjokVjYsODM6JFY3LDg0OiRWOCw4NTokVjksODY6MzN9LHsyMDozNiw3MjokVjMsNzg6MjYsNzk6MjcsODA6JFY0LDgxOiRWNSw4MjokVjYsODM6JFY3LDg0OiRWOCw4NTokVjksODY6MzN9LG8oJFZhLCRWMCx7NjozLDQ6Mzd9KSxvKCRWYiwkVjAsezY6Myw0OjM4fSksbygkVmMsWzIsNDhdLHsxNzozOX0pLHsyMDo0MSw1Njo0MCw2NDo0Miw2NTokVmQsNzI6JFYzLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSxvKCRWZSwkVjAsezY6Myw0OjQ0fSksbyhbNSwxNCwxNSwxOCwxOSwyOSwzNCwzOSw0NCw0Nyw0OCw1MSw1NSw2MF0sWzIsMTBdKSx7MjA6NDUsNzI6JFYzLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSx7MjA6NDYsNzI6JFYzLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSx7MjA6NDcsNzI6JFYzLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSx7MjA6NDEsNTY6NDgsNjQ6NDIsNjU6JFZkLDcyOiRWMyw3ODoyNiw3OToyNyw4MDokVjQsODE6JFY1LDgyOiRWNiw4MzokVjcsODQ6JFY4LDg1OiRWOSw4NjozM30sbygkVmYsWzIsNzhdLHs0OTo0OX0pLG8oJFZnLFsyLDMzXSksbygkVmcsWzIsMzRdKSxvKCRWZyxbMiwzNV0pLG8oJFZnLFsyLDM2XSksbygkVmcsWzIsMzddKSxvKCRWZyxbMiwzOF0pLG8oJFZnLFsyLDM5XSksbygkVmcsWzIsNDNdLHs4NzokVmh9KSx7NzI6JFYzLDg2OjUxfSxvKCRWaSwkVmopLG8oJFZrLFsyLDgyXSx7NTI6NTJ9KSx7MjU6NTMsMzg6NTUsMzk6JFZsLDQzOjU2LDQ0OiRWbSw0NTo1NCw0NzpbMiw1NF19LHsyODo1OSw0Mzo2MCw0NDokVm0sNDc6WzIsNTZdfSx7MTM6NjIsMTU6JFYxLDE4OlsxLDYxXX0sbygkVmYsWzIsODZdLHs1Nzo2M30pLG8oJFZmLFsyLDQwXSksbygkVmYsWzIsNDFdKSx7MjA6NjQsNzI6JFYzLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSx7MjY6NjUsNDc6JFZufSxvKCRWbyxbMiw1OF0sezMwOjY3fSksbygkVm8sWzIsNjRdLHszNTo2OH0pLG8oJFZwLFsyLDUwXSx7MjE6Njl9KSxvKCRWZixbMiw5MF0sezYxOjcwfSksezIwOjc0LDMzOlsyLDgwXSw1MDo3MSw2Mzo3Miw2NDo3NSw2NTokVmQsNjk6NzMsNzA6NzYsNzE6NzcsNzI6JFZxLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSx7NzI6WzEsNzldfSxvKCRWZyxbMiw0Ml0sezg3OiRWaH0pLHsyMDo3NCw1Mzo4MCw1NDpbMiw4NF0sNjM6ODEsNjQ6NzUsNjU6JFZkLDY5OjgyLDcwOjc2LDcxOjc3LDcyOiRWcSw3ODoyNiw3OToyNyw4MDokVjQsODE6JFY1LDgyOiRWNiw4MzokVjcsODQ6JFY4LDg1OiRWOSw4NjozM30sezI2OjgzLDQ3OiRWbn0sezQ3OlsyLDU1XX0sbygkVmEsJFYwLHs2OjMsNDo4NH0pLHs0NzpbMiwyMF19LHsyMDo4NSw3MjokVjMsNzg6MjYsNzk6MjcsODA6JFY0LDgxOiRWNSw4MjokVjYsODM6JFY3LDg0OiRWOCw4NTokVjksODY6MzN9LG8oJFZlLCRWMCx7NjozLDQ6ODZ9KSx7MjY6ODcsNDc6JFZufSx7NDc6WzIsNTddfSxvKCRWMixbMiwxMV0pLG8oJFZjLFsyLDQ5XSksezIwOjc0LDMzOlsyLDg4XSw1ODo4OCw2Mzo4OSw2NDo3NSw2NTokVmQsNjk6OTAsNzA6NzYsNzE6NzcsNzI6JFZxLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSxvKCRWcixbMiw5NF0sezY2OjkxfSksbygkVjIsWzIsMjVdKSx7MjA6OTIsNzI6JFYzLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSxvKCRWcyxbMiw2MF0sezc4OjI2LDc5OjI3LDg2OjMzLDIwOjc0LDY0Ojc1LDcwOjc2LDcxOjc3LDMxOjkzLDYzOjk0LDY5Ojk1LDY1OiRWZCw3MjokVnEsODA6JFY0LDgxOiRWNSw4MjokVjYsODM6JFY3LDg0OiRWOCw4NTokVjl9KSxvKCRWcyxbMiw2Nl0sezc4OjI2LDc5OjI3LDg2OjMzLDIwOjc0LDY0Ojc1LDcwOjc2LDcxOjc3LDM2Ojk2LDYzOjk3LDY5Ojk4LDY1OiRWZCw3MjokVnEsODA6JFY0LDgxOiRWNSw4MjokVjYsODM6JFY3LDg0OiRWOCw4NTokVjl9KSx7MjA6NzQsMjI6OTksMjM6WzIsNTJdLDYzOjEwMCw2NDo3NSw2NTokVmQsNjk6MTAxLDcwOjc2LDcxOjc3LDcyOiRWcSw3ODoyNiw3OToyNyw4MDokVjQsODE6JFY1LDgyOiRWNiw4MzokVjcsODQ6JFY4LDg1OiRWOSw4NjozM30sezIwOjc0LDMzOlsyLDkyXSw2MjoxMDIsNjM6MTAzLDY0Ojc1LDY1OiRWZCw2OToxMDQsNzA6NzYsNzE6NzcsNzI6JFZxLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSx7MzM6WzEsMTA1XX0sbygkVmYsWzIsNzldKSx7MzM6WzIsODFdfSxvKCRWZyxbMiwyN10pLG8oJFZnLFsyLDI4XSksbyhbMjMsMzMsNTQsNjgsNzVdLFsyLDMwXSx7NzE6MTA2LDcyOlsxLDEwN119KSxvKCRWdCxbMiw5OF0pLG8oJFZpLCRWaix7NzM6JFZ1fSksbygkVmksWzIsNDRdKSx7NTQ6WzEsMTA5XX0sbygkVmssWzIsODNdKSx7NTQ6WzIsODVdfSxvKCRWMixbMiwxM10pLHszODo1NSwzOTokVmwsNDM6NTYsNDQ6JFZtLDQ1OjExMSw0NjoxMTAsNDc6WzIsNzZdfSxvKCRWbyxbMiw3MF0sezQwOjExMn0pLHs0NzpbMiwxOF19LG8oJFYyLFsyLDE0XSksezMzOlsxLDExM119LG8oJFZmLFsyLDg3XSksezMzOlsyLDg5XX0sezIwOjc0LDYzOjExNSw2NDo3NSw2NTokVmQsNjc6MTE0LDY4OlsyLDk2XSw2OToxMTYsNzA6NzYsNzE6NzcsNzI6JFZxLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSx7MzM6WzEsMTE3XX0sezMyOjExOCwzMzpbMiw2Ml0sNzQ6MTE5LDc1OiRWdn0sbygkVm8sWzIsNTldKSxvKCRWcyxbMiw2MV0pLHszMzpbMiw2OF0sMzc6MTIxLDc0OjEyMiw3NTokVnZ9LG8oJFZvLFsyLDY1XSksbygkVnMsWzIsNjddKSx7MjM6WzEsMTIzXX0sbygkVnAsWzIsNTFdKSx7MjM6WzIsNTNdfSx7MzM6WzEsMTI0XX0sbygkVmYsWzIsOTFdKSx7MzM6WzIsOTNdfSxvKCRWMixbMiwyMl0pLG8oJFZ0LFsyLDk5XSksezczOiRWdX0sezIwOjc0LDYzOjEyNSw2NDo3NSw2NTokVmQsNzI6JFYzLDc4OjI2LDc5OjI3LDgwOiRWNCw4MTokVjUsODI6JFY2LDgzOiRWNyw4NDokVjgsODU6JFY5LDg2OjMzfSxvKCRWMixbMiwyM10pLHs0NzpbMiwxOV19LHs0NzpbMiw3N119LG8oJFZzLFsyLDcyXSx7Nzg6MjYsNzk6MjcsODY6MzMsMjA6NzQsNjQ6NzUsNzA6NzYsNzE6NzcsNDE6MTI2LDYzOjEyNyw2OToxMjgsNjU6JFZkLDcyOiRWcSw4MDokVjQsODE6JFY1LDgyOiRWNiw4MzokVjcsODQ6JFY4LDg1OiRWOX0pLG8oJFYyLFsyLDI0XSksezY4OlsxLDEyOV19LG8oJFZyLFsyLDk1XSksezY4OlsyLDk3XX0sbygkVjIsWzIsMjFdKSx7MzM6WzEsMTMwXX0sezMzOlsyLDYzXX0sezcyOlsxLDEzMl0sNzY6MTMxfSx7MzM6WzEsMTMzXX0sezMzOlsyLDY5XX0sbygkVmMsWzIsMTJdKSxvKCRWZSxbMiwyNl0pLG8oJFZ0LFsyLDMxXSksezMzOlsyLDc0XSw0MjoxMzQsNzQ6MTM1LDc1OiRWdn0sbygkVm8sWzIsNzFdKSxvKCRWcyxbMiw3M10pLG8oJFZnLFsyLDI5XSksbygkVmEsWzIsMTVdKSx7NzI6WzEsMTM3XSw3NzpbMSwxMzZdfSxvKCRWdyxbMiwxMDBdKSxvKCRWYixbMiwxNl0pLHszMzpbMSwxMzhdfSx7MzM6WzIsNzVdfSx7MzM6WzIsMzJdfSxvKCRWdyxbMiwxMDFdKSxvKCRWYSxbMiwxN10pXSxcbmRlZmF1bHRBY3Rpb25zOiB7NDpbMiwxXSw1NDpbMiw1NV0sNTY6WzIsMjBdLDYwOlsyLDU3XSw3MzpbMiw4MV0sODI6WzIsODVdLDg2OlsyLDE4XSw5MDpbMiw4OV0sMTAxOlsyLDUzXSwxMDQ6WzIsOTNdLDExMDpbMiwxOV0sMTExOlsyLDc3XSwxMTY6WzIsOTddLDExOTpbMiw2M10sMTIyOlsyLDY5XSwxMzU6WzIsNzVdLDEzNjpbMiwzMl19LFxucGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvciAoc3RyLCBoYXNoKSB7XG4gICAgaWYgKGhhc2gucmVjb3ZlcmFibGUpIHtcbiAgICAgICAgdGhpcy50cmFjZShzdHIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZ1bmN0aW9uIF9wYXJzZUVycm9yIChtc2csIGhhc2gpIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgIHRoaXMuaGFzaCA9IGhhc2g7XG4gICAgICAgIH1cbiAgICAgICAgX3BhcnNlRXJyb3IucHJvdG90eXBlID0gRXJyb3I7XG5cbiAgICAgICAgdGhyb3cgbmV3IF9wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgfVxufSxcbnBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgIHZhciBzZWxmID0gdGhpcywgc3RhY2sgPSBbMF0sIHRzdGFjayA9IFtdLCB2c3RhY2sgPSBbbnVsbF0sIGxzdGFjayA9IFtdLCB0YWJsZSA9IHRoaXMudGFibGUsIHl5dGV4dCA9ICcnLCB5eWxpbmVubyA9IDAsIHl5bGVuZyA9IDAsIHJlY292ZXJpbmcgPSAwLCBURVJST1IgPSAyLCBFT0YgPSAxO1xuICAgIHZhciBhcmdzID0gbHN0YWNrLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICB2YXIgbGV4ZXIgPSBPYmplY3QuY3JlYXRlKHRoaXMubGV4ZXIpO1xuICAgIHZhciBzaGFyZWRTdGF0ZSA9IHsgeXk6IHt9IH07XG4gICAgZm9yICh2YXIgayBpbiB0aGlzLnl5KSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy55eSwgaykpIHtcbiAgICAgICAgICAgIHNoYXJlZFN0YXRlLnl5W2tdID0gdGhpcy55eVtrXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXhlci5zZXRJbnB1dChpbnB1dCwgc2hhcmVkU3RhdGUueXkpO1xuICAgIHNoYXJlZFN0YXRlLnl5LmxleGVyID0gbGV4ZXI7XG4gICAgc2hhcmVkU3RhdGUueXkucGFyc2VyID0gdGhpcztcbiAgICBpZiAodHlwZW9mIGxleGVyLnl5bGxvYyA9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBsZXhlci55eWxsb2MgPSB7fTtcbiAgICB9XG4gICAgdmFyIHl5bG9jID0gbGV4ZXIueXlsbG9jO1xuICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICB2YXIgcmFuZ2VzID0gbGV4ZXIub3B0aW9ucyAmJiBsZXhlci5vcHRpb25zLnJhbmdlcztcbiAgICBpZiAodHlwZW9mIHNoYXJlZFN0YXRlLnl5LnBhcnNlRXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wYXJzZUVycm9yID0gc2hhcmVkU3RhdGUueXkucGFyc2VFcnJvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcnNlRXJyb3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykucGFyc2VFcnJvcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wU3RhY2sobikge1xuICAgICAgICBzdGFjay5sZW5ndGggPSBzdGFjay5sZW5ndGggLSAyICogbjtcbiAgICAgICAgdnN0YWNrLmxlbmd0aCA9IHZzdGFjay5sZW5ndGggLSBuO1xuICAgICAgICBsc3RhY2subGVuZ3RoID0gbHN0YWNrLmxlbmd0aCAtIG47XG4gICAgfVxuICAgIF90b2tlbl9zdGFjazpcbiAgICAgICAgdmFyIGxleCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgICAgIHRva2VuID0gbGV4ZXIubGV4KCkgfHwgRU9GO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYuc3ltYm9sc19bdG9rZW5dIHx8IHRva2VuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9O1xuICAgIHZhciBzeW1ib2wsIHByZUVycm9yU3ltYm9sLCBzdGF0ZSwgYWN0aW9uLCBhLCByLCB5eXZhbCA9IHt9LCBwLCBsZW4sIG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBzdGF0ZSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0QWN0aW9uc1tzdGF0ZV0pIHtcbiAgICAgICAgICAgIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHN5bWJvbCA9PT0gbnVsbCB8fCB0eXBlb2Ygc3ltYm9sID09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY3Rpb24gPSB0YWJsZVtzdGF0ZV0gJiYgdGFibGVbc3RhdGVdW3N5bWJvbF07XG4gICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09ICd1bmRlZmluZWQnIHx8ICFhY3Rpb24ubGVuZ3RoIHx8ICFhY3Rpb25bMF0pIHtcbiAgICAgICAgICAgICAgICB2YXIgZXJyU3RyID0gJyc7XG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKHAgaW4gdGFibGVbc3RhdGVdKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlcm1pbmFsc19bcF0gJiYgcCA+IFRFUlJPUikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQucHVzaCgnXFwnJyArIHRoaXMudGVybWluYWxzX1twXSArICdcXCcnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGV4ZXIuc2hvd1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGVyclN0ciA9ICdQYXJzZSBlcnJvciBvbiBsaW5lICcgKyAoeXlsaW5lbm8gKyAxKSArICc6XFxuJyArIGxleGVyLnNob3dQb3NpdGlvbigpICsgJ1xcbkV4cGVjdGluZyAnICsgZXhwZWN0ZWQuam9pbignLCAnKSArICcsIGdvdCBcXCcnICsgKHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCkgKyAnXFwnJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlcnJTdHIgPSAnUGFyc2UgZXJyb3Igb24gbGluZSAnICsgKHl5bGluZW5vICsgMSkgKyAnOiBVbmV4cGVjdGVkICcgKyAoc3ltYm9sID09IEVPRiA/ICdlbmQgb2YgaW5wdXQnIDogJ1xcJycgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArICdcXCcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJzZUVycm9yKGVyclN0ciwge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBsZXhlci5tYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCxcbiAgICAgICAgICAgICAgICAgICAgbGluZTogbGV4ZXIueXlsaW5lbm8sXG4gICAgICAgICAgICAgICAgICAgIGxvYzogeXlsb2MsXG4gICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBleHBlY3RlZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgYWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGFyc2UgRXJyb3I6IG11bHRpcGxlIGFjdGlvbnMgcG9zc2libGUgYXQgc3RhdGU6ICcgKyBzdGF0ZSArICcsIHRva2VuOiAnICsgc3ltYm9sKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaChsZXhlci55eXRleHQpO1xuICAgICAgICAgICAgbHN0YWNrLnB1c2gobGV4ZXIueXlsbG9jKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goYWN0aW9uWzFdKTtcbiAgICAgICAgICAgIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICBpZiAoIXByZUVycm9yU3ltYm9sKSB7XG4gICAgICAgICAgICAgICAgeXlsZW5nID0gbGV4ZXIueXlsZW5nO1xuICAgICAgICAgICAgICAgIHl5dGV4dCA9IGxleGVyLnl5dGV4dDtcbiAgICAgICAgICAgICAgICB5eWxpbmVubyA9IGxleGVyLnl5bGluZW5vO1xuICAgICAgICAgICAgICAgIHl5bG9jID0gbGV4ZXIueXlsbG9jO1xuICAgICAgICAgICAgICAgIGlmIChyZWNvdmVyaW5nID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByZWNvdmVyaW5nLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzeW1ib2wgPSBwcmVFcnJvclN5bWJvbDtcbiAgICAgICAgICAgICAgICBwcmVFcnJvclN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICB5eXZhbC5fJCA9IHtcbiAgICAgICAgICAgICAgICBmaXJzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgICAgbGFzdF9saW5lOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgICBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLmxhc3RfY29sdW1uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICAgIHl5dmFsLl8kLnJhbmdlID0gW1xuICAgICAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIChsZW4gfHwgMSldLnJhbmdlWzBdLFxuICAgICAgICAgICAgICAgICAgICBsc3RhY2tbbHN0YWNrLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoeXl2YWwsIFtcbiAgICAgICAgICAgICAgICB5eXRleHQsXG4gICAgICAgICAgICAgICAgeXlsZW5nLFxuICAgICAgICAgICAgICAgIHl5bGluZW5vLFxuICAgICAgICAgICAgICAgIHNoYXJlZFN0YXRlLnl5LFxuICAgICAgICAgICAgICAgIGFjdGlvblsxXSxcbiAgICAgICAgICAgICAgICB2c3RhY2ssXG4gICAgICAgICAgICAgICAgbHN0YWNrXG4gICAgICAgICAgICBdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGVuKSB7XG4gICAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgICAgbHN0YWNrID0gbHN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7XG4gICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTtcbiAgICAgICAgICAgIG5ld1N0YXRlID0gdGFibGVbc3RhY2tbc3RhY2subGVuZ3RoIC0gMl1dW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2gobmV3U3RhdGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufX07XG4vKiBnZW5lcmF0ZWQgYnkgamlzb24tbGV4IDAuMy40ICovXG52YXIgbGV4ZXIgPSAoZnVuY3Rpb24oKXtcbnZhciBsZXhlciA9ICh7XG5cbkVPRjoxLFxuXG5wYXJzZUVycm9yOmZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICAgIGlmICh0aGlzLnl5LnBhcnNlcikge1xuICAgICAgICAgICAgdGhpcy55eS5wYXJzZXIucGFyc2VFcnJvcihzdHIsIGhhc2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH1cbiAgICB9LFxuXG4vLyByZXNldHMgdGhlIGxleGVyLCBzZXRzIG5ldyBpbnB1dFxuc2V0SW5wdXQ6ZnVuY3Rpb24gKGlucHV0LCB5eSkge1xuICAgICAgICB0aGlzLnl5ID0geXkgfHwgdGhpcy55eSB8fCB7fTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2JhY2t0cmFjayA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnl5bGluZW5vID0gdGhpcy55eWxlbmcgPSAwO1xuICAgICAgICB0aGlzLnl5dGV4dCA9IHRoaXMubWF0Y2hlZCA9IHRoaXMubWF0Y2ggPSAnJztcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFsnSU5JVElBTCddO1xuICAgICAgICB0aGlzLnl5bGxvYyA9IHtcbiAgICAgICAgICAgIGZpcnN0X2xpbmU6IDEsXG4gICAgICAgICAgICBmaXJzdF9jb2x1bW46IDAsXG4gICAgICAgICAgICBsYXN0X2xpbmU6IDEsXG4gICAgICAgICAgICBsYXN0X2NvbHVtbjogMFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwwXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG5cbi8vIGNvbnN1bWVzIGFuZCByZXR1cm5zIG9uZSBjaGFyIGZyb20gdGhlIGlucHV0XG5pbnB1dDpmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBjaCA9IHRoaXMuX2lucHV0WzBdO1xuICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDtcbiAgICAgICAgdGhpcy55eWxlbmcrKztcbiAgICAgICAgdGhpcy5vZmZzZXQrKztcbiAgICAgICAgdGhpcy5tYXRjaCArPSBjaDtcbiAgICAgICAgdGhpcy5tYXRjaGVkICs9IGNoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5tYXRjaCgvKD86XFxyXFxuP3xcXG4pLiovZyk7XG4gICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgICAgdGhpcy55eWxpbmVubysrO1xuICAgICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9saW5lKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbisrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgIH0sXG5cbi8vIHVuc2hpZnRzIG9uZSBjaGFyIChvciBhIHN0cmluZykgaW50byB0aGUgaW5wdXRcbnVucHV0OmZ1bmN0aW9uIChjaCkge1xuICAgICAgICB2YXIgbGVuID0gY2gubGVuZ3RoO1xuICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuXG4gICAgICAgIHRoaXMuX2lucHV0ID0gY2ggKyB0aGlzLl9pbnB1dDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLnl5dGV4dC5zdWJzdHIoMCwgdGhpcy55eXRleHQubGVuZ3RoIC0gbGVuKTtcbiAgICAgICAgLy90aGlzLnl5bGVuZyAtPSBsZW47XG4gICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgdmFyIG9sZExpbmVzID0gdGhpcy5tYXRjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5zdWJzdHIoMCwgdGhpcy5tYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMueXlsaW5lbm8gLT0gbGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgciA9IHRoaXMueXlsbG9jLnJhbmdlO1xuXG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy55eWxpbmVubyArIDEsXG4gICAgICAgICAgICBmaXJzdF9jb2x1bW46IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbixcbiAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/XG4gICAgICAgICAgICAgICAgKGxpbmVzLmxlbmd0aCA9PT0gb2xkTGluZXMubGVuZ3RoID8gdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uIDogMClcbiAgICAgICAgICAgICAgICAgKyBvbGRMaW5lc1tvbGRMaW5lcy5sZW5ndGggLSBsaW5lcy5sZW5ndGhdLmxlbmd0aCAtIGxpbmVzWzBdLmxlbmd0aCA6XG4gICAgICAgICAgICAgIHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiAtIGxlblxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnl5bGxvYy5yYW5nZSA9IFtyWzBdLCByWzBdICsgdGhpcy55eWxlbmcgLSBsZW5dO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4vLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgY2FjaGVzIG1hdGNoZWQgdGV4dCBhbmQgYXBwZW5kcyBpdCBvbiBuZXh0IGFjdGlvblxubW9yZTpmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4vLyBXaGVuIGNhbGxlZCBmcm9tIGFjdGlvbiwgc2lnbmFscyB0aGUgbGV4ZXIgdGhhdCB0aGlzIHJ1bGUgZmFpbHMgdG8gbWF0Y2ggdGhlIGlucHV0LCBzbyB0aGUgbmV4dCBtYXRjaGluZyBydWxlIChyZWdleCkgc2hvdWxkIGJlIHRlc3RlZCBpbnN0ZWFkLlxucmVqZWN0OmZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2JhY2t0cmFjayA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUVycm9yKCdMZXhpY2FsIGVycm9yIG9uIGxpbmUgJyArICh0aGlzLnl5bGluZW5vICsgMSkgKyAnLiBZb3UgY2FuIG9ubHkgaW52b2tlIHJlamVjdCgpIGluIHRoZSBsZXhlciB3aGVuIHRoZSBsZXhlciBpcyBvZiB0aGUgYmFja3RyYWNraW5nIHBlcnN1YXNpb24gKG9wdGlvbnMuYmFja3RyYWNrX2xleGVyID0gdHJ1ZSkuXFxuJyArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuLy8gcmV0YWluIGZpcnN0IG4gY2hhcmFjdGVycyBvZiB0aGUgbWF0Y2hcbmxlc3M6ZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgdGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKG4pKTtcbiAgICB9LFxuXG4vLyBkaXNwbGF5cyBhbHJlYWR5IG1hdGNoZWQgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG5wYXN0SW5wdXQ6ZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcGFzdCA9IHRoaXMubWF0Y2hlZC5zdWJzdHIoMCwgdGhpcy5tYXRjaGVkLmxlbmd0aCAtIHRoaXMubWF0Y2gubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIChwYXN0Lmxlbmd0aCA+IDIwID8gJy4uLic6JycpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgfSxcblxuLy8gZGlzcGxheXMgdXBjb21pbmcgaW5wdXQsIGkuZS4gZm9yIGVycm9yIG1lc3NhZ2VzXG51cGNvbWluZ0lucHV0OmZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAtbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwyMCkgKyAobmV4dC5sZW5ndGggPiAyMCA/ICcuLi4nIDogJycpKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgfSxcblxuLy8gZGlzcGxheXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiB3aGVyZSB0aGUgbGV4aW5nIGVycm9yIG9jY3VycmVkLCBpLmUuIGZvciBlcnJvciBtZXNzYWdlc1xuc2hvd1Bvc2l0aW9uOmZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMgKyBcIl5cIjtcbiAgICB9LFxuXG4vLyB0ZXN0IHRoZSBsZXhlZCB0b2tlbjogcmV0dXJuIEZBTFNFIHdoZW4gbm90IGEgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gdG9rZW5cbnRlc3RfbWF0Y2g6ZnVuY3Rpb24obWF0Y2gsIGluZGV4ZWRfcnVsZSkge1xuICAgICAgICB2YXIgdG9rZW4sXG4gICAgICAgICAgICBsaW5lcyxcbiAgICAgICAgICAgIGJhY2t1cDtcblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgLy8gc2F2ZSBjb250ZXh0XG4gICAgICAgICAgICBiYWNrdXAgPSB7XG4gICAgICAgICAgICAgICAgeXlsaW5lbm86IHRoaXMueXlsaW5lbm8sXG4gICAgICAgICAgICAgICAgeXlsbG9jOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0X2xpbmU6IHRoaXMueXlsbG9jLmZpcnN0X2xpbmUsXG4gICAgICAgICAgICAgICAgICAgIGxhc3RfbGluZTogdGhpcy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHl5dGV4dDogdGhpcy55eXRleHQsXG4gICAgICAgICAgICAgICAgbWF0Y2g6IHRoaXMubWF0Y2gsXG4gICAgICAgICAgICAgICAgbWF0Y2hlczogdGhpcy5tYXRjaGVzLFxuICAgICAgICAgICAgICAgIG1hdGNoZWQ6IHRoaXMubWF0Y2hlZCxcbiAgICAgICAgICAgICAgICB5eWxlbmc6IHRoaXMueXlsZW5nLFxuICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgX21vcmU6IHRoaXMuX21vcmUsXG4gICAgICAgICAgICAgICAgX2lucHV0OiB0aGlzLl9pbnB1dCxcbiAgICAgICAgICAgICAgICB5eTogdGhpcy55eSxcbiAgICAgICAgICAgICAgICBjb25kaXRpb25TdGFjazogdGhpcy5jb25kaXRpb25TdGFjay5zbGljZSgwKSxcbiAgICAgICAgICAgICAgICBkb25lOiB0aGlzLmRvbmVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgICAgIGJhY2t1cC55eWxsb2MucmFuZ2UgPSB0aGlzLnl5bGxvYy5yYW5nZS5zbGljZSgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICBpZiAobGluZXMpIHtcbiAgICAgICAgICAgIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueXlsbG9jID0ge1xuICAgICAgICAgICAgZmlyc3RfbGluZTogdGhpcy55eWxsb2MubGFzdF9saW5lLFxuICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9cXHI/XFxuPy8pWzBdLmxlbmd0aCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy55eWxsb2MubGFzdF9jb2x1bW4gKyBtYXRjaFswXS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy55eXRleHQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2ggKz0gbWF0Y2hbMF07XG4gICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICB0aGlzLnl5bGVuZyA9IHRoaXMueXl0ZXh0Lmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMueXlsbG9jLnJhbmdlID0gW3RoaXMub2Zmc2V0LCB0aGlzLm9mZnNldCArPSB0aGlzLnl5bGVuZ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9iYWNrdHJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICB0aGlzLm1hdGNoZWQgKz0gbWF0Y2hbMF07XG4gICAgICAgIHRva2VuID0gdGhpcy5wZXJmb3JtQWN0aW9uLmNhbGwodGhpcywgdGhpcy55eSwgdGhpcywgaW5kZXhlZF9ydWxlLCB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMV0pO1xuICAgICAgICBpZiAodGhpcy5kb25lICYmIHRoaXMuX2lucHV0KSB7XG4gICAgICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9iYWNrdHJhY2spIHtcbiAgICAgICAgICAgIC8vIHJlY292ZXIgY29udGV4dFxuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBiYWNrdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzW2tdID0gYmFja3VwW2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBydWxlIGFjdGlvbiBjYWxsZWQgcmVqZWN0KCkgaW1wbHlpbmcgdGhlIG5leHQgcnVsZSBzaG91bGQgYmUgdGVzdGVkIGluc3RlYWQuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG5cbi8vIHJldHVybiBuZXh0IG1hdGNoIGluIGlucHV0XG5uZXh0OmZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faW5wdXQpIHtcbiAgICAgICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdG9rZW4sXG4gICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgIHRlbXBNYXRjaCxcbiAgICAgICAgICAgIGluZGV4O1xuICAgICAgICBpZiAoIXRoaXMuX21vcmUpIHtcbiAgICAgICAgICAgIHRoaXMueXl0ZXh0ID0gJyc7XG4gICAgICAgICAgICB0aGlzLm1hdGNoID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJ1bGVzID0gdGhpcy5fY3VycmVudFJ1bGVzKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRlbXBNYXRjaCA9IHRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbcnVsZXNbaV1dKTtcbiAgICAgICAgICAgIGlmICh0ZW1wTWF0Y2ggJiYgKCFtYXRjaCB8fCB0ZW1wTWF0Y2hbMF0ubGVuZ3RoID4gbWF0Y2hbMF0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcikge1xuICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMudGVzdF9tYXRjaCh0ZW1wTWF0Y2gsIHJ1bGVzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JhY2t0cmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBydWxlIGFjdGlvbiBjYWxsZWQgcmVqZWN0KCkgaW1wbHlpbmcgYSBydWxlIE1JU21hdGNoLlxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxzZTogdGhpcyBpcyBhIGxleGVyIHJ1bGUgd2hpY2ggY29uc3VtZXMgaW5wdXQgd2l0aG91dCBwcm9kdWNpbmcgYSB0b2tlbiAoZS5nLiB3aGl0ZXNwYWNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25zLmZsZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgdG9rZW4gPSB0aGlzLnRlc3RfbWF0Y2gobWF0Y2gsIHJ1bGVzW2luZGV4XSk7XG4gICAgICAgICAgICBpZiAodG9rZW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxzZTogdGhpcyBpcyBhIGxleGVyIHJ1bGUgd2hpY2ggY29uc3VtZXMgaW5wdXQgd2l0aG91dCBwcm9kdWNpbmcgYSB0b2tlbiAoZS5nLiB3aGl0ZXNwYWNlKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dCA9PT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VFcnJvcignTGV4aWNhbCBlcnJvciBvbiBsaW5lICcgKyAodGhpcy55eWxpbmVubyArIDEpICsgJy4gVW5yZWNvZ25pemVkIHRleHQuXFxuJyArIHRoaXMuc2hvd1Bvc2l0aW9uKCksIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIHRva2VuOiBudWxsLFxuICAgICAgICAgICAgICAgIGxpbmU6IHRoaXMueXlsaW5lbm9cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSxcblxuLy8gcmV0dXJuIG5leHQgbWF0Y2ggdGhhdCBoYXMgYSB0b2tlblxubGV4OmZ1bmN0aW9uIGxleCAoKSB7XG4gICAgICAgIHZhciByID0gdGhpcy5uZXh0KCk7XG4gICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxleCgpO1xuICAgICAgICB9XG4gICAgfSxcblxuLy8gYWN0aXZhdGVzIGEgbmV3IGxleGVyIGNvbmRpdGlvbiBzdGF0ZSAocHVzaGVzIHRoZSBuZXcgbGV4ZXIgY29uZGl0aW9uIHN0YXRlIG9udG8gdGhlIGNvbmRpdGlvbiBzdGFjaylcbmJlZ2luOmZ1bmN0aW9uIGJlZ2luIChjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgfSxcblxuLy8gcG9wIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGUgb2ZmIHRoZSBjb25kaXRpb24gc3RhY2tcbnBvcFN0YXRlOmZ1bmN0aW9uIHBvcFN0YXRlICgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDE7XG4gICAgICAgIGlmIChuID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2sucG9wKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1swXTtcbiAgICAgICAgfVxuICAgIH0sXG5cbi8vIHByb2R1Y2UgdGhlIGxleGVyIHJ1bGUgc2V0IHdoaWNoIGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbGV4ZXIgY29uZGl0aW9uIHN0YXRlXG5fY3VycmVudFJ1bGVzOmZ1bmN0aW9uIF9jdXJyZW50UnVsZXMgKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggJiYgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW1wiSU5JVElBTFwiXS5ydWxlcztcbiAgICAgICAgfVxuICAgIH0sXG5cbi8vIHJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBsZXhlciBjb25kaXRpb24gc3RhdGU7IHdoZW4gYW4gaW5kZXggYXJndW1lbnQgaXMgcHJvdmlkZWQgaXQgcHJvZHVjZXMgdGhlIE4tdGggcHJldmlvdXMgY29uZGl0aW9uIHN0YXRlLCBpZiBhdmFpbGFibGVcbnRvcFN0YXRlOmZ1bmN0aW9uIHRvcFN0YXRlIChuKSB7XG4gICAgICAgIG4gPSB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDEgLSBNYXRoLmFicyhuIHx8IDApO1xuICAgICAgICBpZiAobiA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFja1tuXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBcIklOSVRJQUxcIjtcbiAgICAgICAgfVxuICAgIH0sXG5cbi8vIGFsaWFzIGZvciBiZWdpbihjb25kaXRpb24pXG5wdXNoU3RhdGU6ZnVuY3Rpb24gcHVzaFN0YXRlIChjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5iZWdpbihjb25kaXRpb24pO1xuICAgIH0sXG5cbi8vIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBjdXJyZW50bHkgb24gdGhlIHN0YWNrXG5zdGF0ZVN0YWNrU2l6ZTpmdW5jdGlvbiBzdGF0ZVN0YWNrU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoO1xuICAgIH0sXG5vcHRpb25zOiB7fSxcbnBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eSx5eV8sJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucyxZWV9TVEFSVCkge1xuXG5mdW5jdGlvbiBzdHJpcChzdGFydCwgZW5kKSB7XG4gIHJldHVybiB5eV8ueXl0ZXh0ID0geXlfLnl5dGV4dC5zdWJzdHJpbmcoc3RhcnQsIHl5Xy55eWxlbmcgLSBlbmQgKyBzdGFydCk7XG59XG5cblxudmFyIFlZU1RBVEU9WVlfU1RBUlQ7XG5zd2l0Y2goJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucykge1xuY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih5eV8ueXl0ZXh0LnNsaWNlKC0yKSA9PT0gXCJcXFxcXFxcXFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXAoMCwxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZ2luKFwibXVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZih5eV8ueXl0ZXh0LnNsaWNlKC0xKSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcCgwLDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmVnaW4oXCJlbXVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbihcIm11XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHl5Xy55eXRleHQpIHJldHVybiAxNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuYnJlYWs7XG5jYXNlIDE6cmV0dXJuIDE1O1xuYnJlYWs7XG5jYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5icmVhaztcbmNhc2UgMzp0aGlzLmJlZ2luKCdyYXcnKTsgcmV0dXJuIDE1O1xuYnJlYWs7XG5jYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3VsZCBiZSB1c2luZyBgdGhpcy50b3BTdGF0ZSgpYCBiZWxvdywgYnV0IGl0IGN1cnJlbnRseVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybnMgdGhlIHNlY29uZCB0b3AgaW5zdGVhZCBvZiB0aGUgZmlyc3QgdG9wLiBPcGVuZWQgYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpc3N1ZSBhYm91dCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vemFhY2gvamlzb24vaXNzdWVzLzI5MVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoLTFdID09PSAncmF3Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcCg1LCA5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmJyZWFrO1xuY2FzZSA1OiByZXR1cm4gMTU7IFxuYnJlYWs7XG5jYXNlIDY6XG4gIHRoaXMucG9wU3RhdGUoKTtcbiAgcmV0dXJuIDE0O1xuXG5icmVhaztcbmNhc2UgNzpyZXR1cm4gNjU7XG5icmVhaztcbmNhc2UgODpyZXR1cm4gNjg7XG5icmVhaztcbmNhc2UgOTogcmV0dXJuIDE5OyBcbmJyZWFrO1xuY2FzZSAxMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbigncmF3Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5icmVhaztcbmNhc2UgMTE6cmV0dXJuIDU1O1xuYnJlYWs7XG5jYXNlIDEyOnJldHVybiA2MDtcbmJyZWFrO1xuY2FzZSAxMzpyZXR1cm4gMjk7XG5icmVhaztcbmNhc2UgMTQ6cmV0dXJuIDQ3O1xuYnJlYWs7XG5jYXNlIDE1OnRoaXMucG9wU3RhdGUoKTsgcmV0dXJuIDQ0O1xuYnJlYWs7XG5jYXNlIDE2OnRoaXMucG9wU3RhdGUoKTsgcmV0dXJuIDQ0O1xuYnJlYWs7XG5jYXNlIDE3OnJldHVybiAzNDtcbmJyZWFrO1xuY2FzZSAxODpyZXR1cm4gMzk7XG5icmVhaztcbmNhc2UgMTk6cmV0dXJuIDUxO1xuYnJlYWs7XG5jYXNlIDIwOnJldHVybiA0ODtcbmJyZWFrO1xuY2FzZSAyMTpcbiAgdGhpcy51bnB1dCh5eV8ueXl0ZXh0KTtcbiAgdGhpcy5wb3BTdGF0ZSgpO1xuICB0aGlzLmJlZ2luKCdjb20nKTtcblxuYnJlYWs7XG5jYXNlIDIyOlxuICB0aGlzLnBvcFN0YXRlKCk7XG4gIHJldHVybiAxNDtcblxuYnJlYWs7XG5jYXNlIDIzOnJldHVybiA0ODtcbmJyZWFrO1xuY2FzZSAyNDpyZXR1cm4gNzM7XG5icmVhaztcbmNhc2UgMjU6cmV0dXJuIDcyO1xuYnJlYWs7XG5jYXNlIDI2OnJldHVybiA3MjtcbmJyZWFrO1xuY2FzZSAyNzpyZXR1cm4gODc7XG5icmVhaztcbmNhc2UgMjg6Ly8gaWdub3JlIHdoaXRlc3BhY2VcbmJyZWFrO1xuY2FzZSAyOTp0aGlzLnBvcFN0YXRlKCk7IHJldHVybiA1NDtcbmJyZWFrO1xuY2FzZSAzMDp0aGlzLnBvcFN0YXRlKCk7IHJldHVybiAzMztcbmJyZWFrO1xuY2FzZSAzMTp5eV8ueXl0ZXh0ID0gc3RyaXAoMSwyKS5yZXBsYWNlKC9cXFxcXCIvZywnXCInKTsgcmV0dXJuIDgwO1xuYnJlYWs7XG5jYXNlIDMyOnl5Xy55eXRleHQgPSBzdHJpcCgxLDIpLnJlcGxhY2UoL1xcXFwnL2csXCInXCIpOyByZXR1cm4gODA7XG5icmVhaztcbmNhc2UgMzM6cmV0dXJuIDg1O1xuYnJlYWs7XG5jYXNlIDM0OnJldHVybiA4MjtcbmJyZWFrO1xuY2FzZSAzNTpyZXR1cm4gODI7XG5icmVhaztcbmNhc2UgMzY6cmV0dXJuIDgzO1xuYnJlYWs7XG5jYXNlIDM3OnJldHVybiA4NDtcbmJyZWFrO1xuY2FzZSAzODpyZXR1cm4gODE7XG5icmVhaztcbmNhc2UgMzk6cmV0dXJuIDc1O1xuYnJlYWs7XG5jYXNlIDQwOnJldHVybiA3NztcbmJyZWFrO1xuY2FzZSA0MTpyZXR1cm4gNzI7XG5icmVhaztcbmNhc2UgNDI6eXlfLnl5dGV4dCA9IHl5Xy55eXRleHQucmVwbGFjZSgvXFxcXChbXFxcXFxcXV0pL2csJyQxJyk7IHJldHVybiA3MjtcbmJyZWFrO1xuY2FzZSA0MzpyZXR1cm4gJ0lOVkFMSUQnO1xuYnJlYWs7XG5jYXNlIDQ0OnJldHVybiA1O1xuYnJlYWs7XG59XG59LFxucnVsZXM6IFsvXig/OlteXFx4MDBdKj8oPz0oXFx7XFx7KSkpLywvXig/OlteXFx4MDBdKykvLC9eKD86W15cXHgwMF17Mix9Pyg/PShcXHtcXHt8XFxcXFxce1xce3xcXFxcXFxcXFxce1xce3wkKSkpLywvXig/Olxce1xce1xce1xceyg/PVteL10pKS8sL14oPzpcXHtcXHtcXHtcXHtcXC9bXlxccyFcIiMlLSxcXC5cXC87LT5AXFxbLVxcXmBcXHstfl0rKD89Wz19XFxzXFwvLl0pXFx9XFx9XFx9XFx9KS8sL14oPzpbXlxceDAwXSs/KD89KFxce1xce1xce1xceykpKS8sL14oPzpbXFxzXFxTXSo/LS0ofik/XFx9XFx9KS8sL14oPzpcXCgpLywvXig/OlxcKSkvLC9eKD86XFx7XFx7XFx7XFx7KS8sL14oPzpcXH1cXH1cXH1cXH0pLywvXig/Olxce1xceyh+KT8+KS8sL14oPzpcXHtcXHsofik/Iz4pLywvXig/Olxce1xceyh+KT8jXFwqPykvLC9eKD86XFx7XFx7KH4pP1xcLykvLC9eKD86XFx7XFx7KH4pP1xcXlxccyoofik/XFx9XFx9KS8sL14oPzpcXHtcXHsofik/XFxzKmVsc2VcXHMqKH4pP1xcfVxcfSkvLC9eKD86XFx7XFx7KH4pP1xcXikvLC9eKD86XFx7XFx7KH4pP1xccyplbHNlXFxiKS8sL14oPzpcXHtcXHsofik/XFx7KS8sL14oPzpcXHtcXHsofik/JikvLC9eKD86XFx7XFx7KH4pPyEtLSkvLC9eKD86XFx7XFx7KH4pPyFbXFxzXFxTXSo/XFx9XFx9KS8sL14oPzpcXHtcXHsofik/XFwqPykvLC9eKD86PSkvLC9eKD86XFwuXFwuKS8sL14oPzpcXC4oPz0oWz1+fVxcc1xcLy4pfF0pKSkvLC9eKD86W1xcLy5dKS8sL14oPzpcXHMrKS8sL14oPzpcXH0ofik/XFx9XFx9KS8sL14oPzoofik/XFx9XFx9KS8sL14oPzpcIihcXFxcW1wiXXxbXlwiXSkqXCIpLywvXig/OicoXFxcXFsnXXxbXiddKSonKS8sL14oPzpAKS8sL14oPzp0cnVlKD89KFt+fVxccyldKSkpLywvXig/OmZhbHNlKD89KFt+fVxccyldKSkpLywvXig/OnVuZGVmaW5lZCg/PShbfn1cXHMpXSkpKS8sL14oPzpudWxsKD89KFt+fVxccyldKSkpLywvXig/Oi0/WzAtOV0rKD86XFwuWzAtOV0rKT8oPz0oW359XFxzKV0pKSkvLC9eKD86YXNcXHMrXFx8KS8sL14oPzpcXHwpLywvXig/OihbXlxccyFcIiMlLSxcXC5cXC87LT5AXFxbLVxcXmBcXHstfl0rKD89KFs9fn1cXHNcXC8uKXxdKSkpKS8sL14oPzpcXFsoXFxcXFxcXXxbXlxcXV0pKlxcXSkvLC9eKD86LikvLC9eKD86JCkvXSxcbmNvbmRpdGlvbnM6IHtcIm11XCI6e1wicnVsZXNcIjpbNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDRdLFwiaW5jbHVzaXZlXCI6ZmFsc2V9LFwiZW11XCI6e1wicnVsZXNcIjpbMl0sXCJpbmNsdXNpdmVcIjpmYWxzZX0sXCJjb21cIjp7XCJydWxlc1wiOls2XSxcImluY2x1c2l2ZVwiOmZhbHNlfSxcInJhd1wiOntcInJ1bGVzXCI6WzMsNCw1XSxcImluY2x1c2l2ZVwiOmZhbHNlfSxcIklOSVRJQUxcIjp7XCJydWxlc1wiOlswLDEsNDRdLFwiaW5jbHVzaXZlXCI6dHJ1ZX19XG59KTtcbnJldHVybiBsZXhlcjtcbn0pKCk7XG5wYXJzZXIubGV4ZXIgPSBsZXhlcjtcbmZ1bmN0aW9uIFBhcnNlciAoKSB7XG4gIHRoaXMueXkgPSB7fTtcbn1cblBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXI7cGFyc2VyLlBhcnNlciA9IFBhcnNlcjtcbnJldHVybiBuZXcgUGFyc2VyO1xufSkoKTtleHBvcnQgZGVmYXVsdCBoYW5kbGViYXJzO1xuIl19