From 911dbb75db16cc764e66b86617224a30eaaacd85 Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Sat, 13 Dec 2014 04:12:17 -0500 Subject: [PATCH 01/35] changed jison acceptable versions --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0722ce1ca3..104f81e615 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ }, "devDependencies": { "uglify-js": "~2.2", - "jison": ">=0.2.0", + "jison": "0.2.x", "highlight.js": "~8.0.0", "underscore": "~1.5.2", "docco": "~0.6.2" From e95ef25e055b5667288ae65dc2e883e215e2fd8c Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Thu, 18 Dec 2014 09:40:44 -0500 Subject: [PATCH 02/35] added await support --- lib/coffee-script/parser.js | 187 +++++++----------------------------- src/grammar.coffee | 4 + src/lexer.coffee | 6 +- src/nodes.coffee | 96 ++++++++++++++++-- src/rewriter.coffee | 2 +- 5 files changed, 131 insertions(+), 164 deletions(-) diff --git a/lib/coffee-script/parser.js b/lib/coffee-script/parser.js index d3b8c21799..30a57460ce 100755 --- a/lib/coffee-script/parser.js +++ b/lib/coffee-script/parser.js @@ -1,85 +1,13 @@ -/* parser generated by jison 0.4.13 */ -/* - 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) - } -*/ +/* Jison generated parser */ var parser = (function(){ +undefined var parser = {trace: function trace() { }, yy: {}, symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"Return":9,"Comment":10,"STATEMENT":11,"Value":12,"Invocation":13,"Code":14,"Operation":15,"Assign":16,"If":17,"Try":18,"While":19,"For":20,"Switch":21,"Class":22,"Throw":23,"Block":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"?::":69,"Index":70,"INDEX_START":71,"IndexValue":72,"INDEX_END":73,"INDEX_SOAK":74,"Slice":75,"{":76,"AssignList":77,"}":78,"CLASS":79,"EXTENDS":80,"OptFuncExist":81,"Arguments":82,"SUPER":83,"FUNC_EXIST":84,"CALL_START":85,"CALL_END":86,"ArgList":87,"THIS":88,"@":89,"[":90,"]":91,"RangeDots":92,"..":93,"Arg":94,"SimpleArgs":95,"TRY":96,"Catch":97,"FINALLY":98,"CATCH":99,"THROW":100,"(":101,")":102,"WhileSource":103,"WHILE":104,"WHEN":105,"UNTIL":106,"Loop":107,"LOOP":108,"ForBody":109,"FOR":110,"ForStart":111,"ForSource":112,"ForVariables":113,"OWN":114,"ForValue":115,"FORIN":116,"FOROF":117,"BY":118,"SWITCH":119,"Whens":120,"ELSE":121,"When":122,"LEADING_WHEN":123,"IfBlock":124,"IF":125,"POST_IF":126,"UNARY":127,"UNARY_MATH":128,"-":129,"+":130,"YIELD":131,"FROM":132,"--":133,"++":134,"?":135,"MATH":136,"**":137,"SHIFT":138,"COMPARE":139,"LOGIC":140,"RELATION":141,"COMPOUND_ASSIGN":142,"$accept":0,"$end":1}, terminals_: {2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"UNARY_MATH",129:"-",130:"+",131:"YIELD",132:"FROM",133:"--",134:"++",135:"?",136:"MATH",137:"**",138:"SHIFT",139:"COMPARE",140:"LOGIC",141:"RELATION",142:"COMPOUND_ASSIGN"}, productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[16,3],[16,4],[16,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[9,2],[9,1],[10,1],[14,5],[14,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[55,1],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[12,1],[12,1],[12,1],[12,1],[12,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[94,1],[95,1],[95,3],[18,2],[18,3],[18,4],[18,5],[97,3],[97,3],[97,2],[23,2],[63,3],[63,5],[103,2],[103,4],[103,2],[103,4],[19,2],[19,2],[19,2],[19,1],[107,2],[107,2],[20,2],[20,2],[20,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[21,5],[21,7],[21,4],[21,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */ +performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$ /**/) { -/* this == yyval */ var $0 = $$.length - 1; switch (yystate) { @@ -568,30 +496,19 @@ break; table: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[3]},{1:[2,2],6:[1,74]},{1:[2,3],6:[2,3],26:[2,3],102:[2,3]},{1:[2,6],6:[2,6],26:[2,6],102:[2,6],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:88,104:[1,65],106:[1,66],109:89,110:[1,68],111:69,126:[1,87]},{1:[2,11],6:[2,11],25:[2,11],26:[2,11],49:[2,11],54:[2,11],57:[2,11],62:91,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],73:[2,11],74:[1,99],78:[2,11],81:90,84:[1,92],85:[2,108],86:[2,11],91:[2,11],93:[2,11],102:[2,11],104:[2,11],105:[2,11],106:[2,11],110:[2,11],118:[2,11],126:[2,11],129:[2,11],130:[2,11],135:[2,11],136:[2,11],137:[2,11],138:[2,11],139:[2,11],140:[2,11],141:[2,11]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:101,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],73:[2,12],74:[1,99],78:[2,12],81:100,84:[1,92],85:[2,108],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],129:[2,12],130:[2,12],135:[2,12],136:[2,12],137:[2,12],138:[2,12],139:[2,12],140:[2,12],141:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],73:[2,13],78:[2,13],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],129:[2,13],130:[2,13],135:[2,13],136:[2,13],137:[2,13],138:[2,13],139:[2,13],140:[2,13],141:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],129:[2,14],130:[2,14],135:[2,14],136:[2,14],137:[2,14],138:[2,14],139:[2,14],140:[2,14],141:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],129:[2,15],130:[2,15],135:[2,15],136:[2,15],137:[2,15],138:[2,15],139:[2,15],140:[2,15],141:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,16],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],129:[2,16],130:[2,16],135:[2,16],136:[2,16],137:[2,16],138:[2,16],139:[2,16],140:[2,16],141:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],129:[2,17],130:[2,17],135:[2,17],136:[2,17],137:[2,17],138:[2,17],139:[2,17],140:[2,17],141:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],129:[2,18],130:[2,18],135:[2,18],136:[2,18],137:[2,18],138:[2,18],139:[2,18],140:[2,18],141:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],129:[2,19],130:[2,19],135:[2,19],136:[2,19],137:[2,19],138:[2,19],139:[2,19],140:[2,19],141:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],129:[2,20],130:[2,20],135:[2,20],136:[2,20],137:[2,20],138:[2,20],139:[2,20],140:[2,20],141:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],129:[2,21],130:[2,21],135:[2,21],136:[2,21],137:[2,21],138:[2,21],139:[2,21],140:[2,21],141:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],129:[2,22],130:[2,22],135:[2,22],136:[2,22],137:[2,22],138:[2,22],139:[2,22],140:[2,22],141:[2,22]},{1:[2,8],6:[2,8],25:[2,8],26:[2,8],49:[2,8],54:[2,8],57:[2,8],73:[2,8],78:[2,8],86:[2,8],91:[2,8],93:[2,8],102:[2,8],104:[2,8],105:[2,8],106:[2,8],110:[2,8],118:[2,8],126:[2,8],129:[2,8],130:[2,8],135:[2,8],136:[2,8],137:[2,8],138:[2,8],139:[2,8],140:[2,8],141:[2,8]},{1:[2,9],6:[2,9],25:[2,9],26:[2,9],49:[2,9],54:[2,9],57:[2,9],73:[2,9],78:[2,9],86:[2,9],91:[2,9],93:[2,9],102:[2,9],104:[2,9],105:[2,9],106:[2,9],110:[2,9],118:[2,9],126:[2,9],129:[2,9],130:[2,9],135:[2,9],136:[2,9],137:[2,9],138:[2,9],139:[2,9],140:[2,9],141:[2,9]},{1:[2,10],6:[2,10],25:[2,10],26:[2,10],49:[2,10],54:[2,10],57:[2,10],73:[2,10],78:[2,10],86:[2,10],91:[2,10],93:[2,10],102:[2,10],104:[2,10],105:[2,10],106:[2,10],110:[2,10],118:[2,10],126:[2,10],129:[2,10],130:[2,10],135:[2,10],136:[2,10],137:[2,10],138:[2,10],139:[2,10],140:[2,10],141:[2,10]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,102],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],129:[2,75],130:[2,75],135:[2,75],136:[2,75],137:[2,75],138:[2,75],139:[2,75],140:[2,75],141:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],129:[2,76],130:[2,76],135:[2,76],136:[2,76],137:[2,76],138:[2,76],139:[2,76],140:[2,76],141:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],129:[2,77],130:[2,77],135:[2,77],136:[2,77],137:[2,77],138:[2,77],139:[2,77],140:[2,77],141:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],129:[2,78],130:[2,78],135:[2,78],136:[2,78],137:[2,78],138:[2,78],139:[2,78],140:[2,78],141:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],129:[2,79],130:[2,79],135:[2,79],136:[2,79],137:[2,79],138:[2,79],139:[2,79],140:[2,79],141:[2,79]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],82:103,84:[2,106],85:[1,104],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],129:[2,106],130:[2,106],135:[2,106],136:[2,106],137:[2,106],138:[2,106],139:[2,106],140:[2,106],141:[2,106]},{6:[2,54],25:[2,54],27:109,28:[1,73],44:110,48:105,49:[2,54],54:[2,54],55:106,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{24:115,25:[1,116]},{7:117,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:119,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:120,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:121,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:123,8:122,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,124],133:[1,34],134:[1,35]},{12:126,13:127,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:128,44:63,58:47,59:48,61:125,63:23,64:24,65:25,76:[1,70],83:[1,26],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{12:126,13:127,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:128,44:63,58:47,59:48,61:129,63:23,64:24,65:25,76:[1,70],83:[1,26],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],80:[1,133],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],129:[2,72],130:[2,72],133:[1,130],134:[1,131],135:[2,72],136:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[2,72],141:[2,72],142:[1,132]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],104:[2,184],105:[2,184],106:[2,184],110:[2,184],118:[2,184],121:[1,134],126:[2,184],129:[2,184],130:[2,184],135:[2,184],136:[2,184],137:[2,184],138:[2,184],139:[2,184],140:[2,184],141:[2,184]},{24:135,25:[1,116]},{24:136,25:[1,116]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],104:[2,151],105:[2,151],106:[2,151],110:[2,151],118:[2,151],126:[2,151],129:[2,151],130:[2,151],135:[2,151],136:[2,151],137:[2,151],138:[2,151],139:[2,151],140:[2,151],141:[2,151]},{24:137,25:[1,116]},{7:138,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,139],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,96],6:[2,96],12:126,13:127,24:140,25:[1,116],26:[2,96],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:128,44:63,49:[2,96],54:[2,96],57:[2,96],58:47,59:48,61:142,63:23,64:24,65:25,73:[2,96],76:[1,70],78:[2,96],80:[1,141],83:[1,26],86:[2,96],88:[1,58],89:[1,59],90:[1,57],91:[2,96],93:[2,96],101:[1,56],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],129:[2,96],130:[2,96],135:[2,96],136:[2,96],137:[2,96],138:[2,96],139:[2,96],140:[2,96],141:[2,96]},{7:143,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,46],6:[2,46],7:144,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,46],26:[2,46],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],49:[2,46],50:28,51:[1,60],52:[1,61],54:[2,46],57:[2,46],58:47,59:48,61:36,63:23,64:24,65:25,73:[2,46],76:[1,70],78:[2,46],79:[1,43],83:[1,26],86:[2,46],88:[1,58],89:[1,59],90:[1,57],91:[2,46],93:[2,46],96:[1,38],100:[1,44],101:[1,56],102:[2,46],103:39,104:[2,46],105:[2,46],106:[2,46],107:40,108:[1,67],109:41,110:[2,46],111:69,118:[2,46],119:[1,42],124:37,125:[1,64],126:[2,46],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[2,46],136:[2,46],137:[2,46],138:[2,46],139:[2,46],140:[2,46],141:[2,46]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],49:[2,47],54:[2,47],57:[2,47],73:[2,47],78:[2,47],86:[2,47],91:[2,47],93:[2,47],102:[2,47],104:[2,47],105:[2,47],106:[2,47],110:[2,47],118:[2,47],126:[2,47],129:[2,47],130:[2,47],135:[2,47],136:[2,47],137:[2,47],138:[2,47],139:[2,47],140:[2,47],141:[2,47]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],129:[2,73],130:[2,73],135:[2,73],136:[2,73],137:[2,73],138:[2,73],139:[2,73],140:[2,73],141:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],129:[2,74],130:[2,74],135:[2,74],136:[2,74],137:[2,74],138:[2,74],139:[2,74],140:[2,74],141:[2,74]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],129:[2,28],130:[2,28],135:[2,28],136:[2,28],137:[2,28],138:[2,28],139:[2,28],140:[2,28],141:[2,28]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],129:[2,29],130:[2,29],135:[2,29],136:[2,29],137:[2,29],138:[2,29],139:[2,29],140:[2,29],141:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],129:[2,30],130:[2,30],135:[2,30],136:[2,30],137:[2,30],138:[2,30],139:[2,30],140:[2,30],141:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],129:[2,31],130:[2,31],135:[2,31],136:[2,31],137:[2,31],138:[2,31],139:[2,31],140:[2,31],141:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],129:[2,32],130:[2,32],135:[2,32],136:[2,32],137:[2,32],138:[2,32],139:[2,32],140:[2,32],141:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],110:[2,33],118:[2,33],126:[2,33],129:[2,33],130:[2,33],135:[2,33],136:[2,33],137:[2,33],138:[2,33],139:[2,33],140:[2,33],141:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],129:[2,34],130:[2,34],135:[2,34],136:[2,34],137:[2,34],138:[2,34],139:[2,34],140:[2,34],141:[2,34]},{4:145,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:147,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:149,88:[1,58],89:[1,59],90:[1,57],91:[1,148],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],129:[2,112],130:[2,112],135:[2,112],136:[2,112],137:[2,112],138:[2,112],139:[2,112],140:[2,112],141:[2,112]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],27:154,28:[1,73],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],118:[2,113],126:[2,113],129:[2,113],130:[2,113],135:[2,113],136:[2,113],137:[2,113],138:[2,113],139:[2,113],140:[2,113],141:[2,113]},{25:[2,50]},{25:[2,51]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],129:[2,68],130:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68],139:[2,68],140:[2,68],141:[2,68],142:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[2,71],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],129:[2,71],130:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[2,71],139:[2,71],140:[2,71],141:[2,71],142:[2,71]},{7:155,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:156,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:157,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:159,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:158,25:[1,116],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{27:164,28:[1,73],44:165,58:166,59:167,64:160,76:[1,70],89:[1,113],90:[1,57],113:161,114:[1,162],115:163},{112:168,116:[1,169],117:[1,170]},{6:[2,91],10:174,25:[2,91],27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:172,42:173,44:177,46:[1,46],54:[2,91],77:171,78:[2,91],89:[1,113]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],118:[2,26],126:[2,26],129:[2,26],130:[2,26],135:[2,26],136:[2,26],137:[2,26],138:[2,26],139:[2,26],140:[2,26],141:[2,26]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],129:[2,27],130:[2,27],135:[2,27],136:[2,27],137:[2,27],138:[2,27],139:[2,27],140:[2,27],141:[2,27]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],40:[2,25],43:[2,25],49:[2,25],54:[2,25],57:[2,25],66:[2,25],67:[2,25],68:[2,25],69:[2,25],71:[2,25],73:[2,25],74:[2,25],78:[2,25],80:[2,25],84:[2,25],85:[2,25],86:[2,25],91:[2,25],93:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],116:[2,25],117:[2,25],118:[2,25],126:[2,25],129:[2,25],130:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25],138:[2,25],139:[2,25],140:[2,25],141:[2,25],142:[2,25]},{1:[2,5],5:178,6:[2,5],7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[2,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,5],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],104:[2,199],105:[2,199],106:[2,199],110:[2,199],118:[2,199],126:[2,199],129:[2,199],130:[2,199],135:[2,199],136:[2,199],137:[2,199],138:[2,199],139:[2,199],140:[2,199],141:[2,199]},{7:179,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:180,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:181,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:182,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:183,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:184,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:185,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:186,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:187,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],126:[2,150],129:[2,150],130:[2,150],135:[2,150],136:[2,150],137:[2,150],138:[2,150],139:[2,150],140:[2,150],141:[2,150]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],129:[2,155],130:[2,155],135:[2,155],136:[2,155],137:[2,155],138:[2,155],139:[2,155],140:[2,155],141:[2,155]},{7:188,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],129:[2,149],130:[2,149],135:[2,149],136:[2,149],137:[2,149],138:[2,149],139:[2,149],140:[2,149],141:[2,149]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],129:[2,154],130:[2,154],135:[2,154],136:[2,154],137:[2,154],138:[2,154],139:[2,154],140:[2,154],141:[2,154]},{82:189,85:[1,104]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],129:[2,69],130:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69],139:[2,69],140:[2,69],141:[2,69],142:[2,69]},{85:[2,109]},{27:190,28:[1,73]},{27:191,28:[1,73]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],27:192,28:[1,73],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],129:[2,84],130:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84],141:[2,84],142:[2,84]},{27:193,28:[1,73]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],129:[2,85],130:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85],141:[2,85],142:[2,85]},{7:195,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,199],58:47,59:48,61:36,63:23,64:24,65:25,72:194,75:196,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],92:197,93:[1,198],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{70:200,71:[1,98],74:[1,99]},{82:201,85:[1,104]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],129:[2,70],130:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70],139:[2,70],140:[2,70],141:[2,70],142:[2,70]},{6:[1,203],7:202,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,204],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],49:[2,107],54:[2,107],57:[2,107],66:[2,107],67:[2,107],68:[2,107],69:[2,107],71:[2,107],73:[2,107],74:[2,107],78:[2,107],84:[2,107],85:[2,107],86:[2,107],91:[2,107],93:[2,107],102:[2,107],104:[2,107],105:[2,107],106:[2,107],110:[2,107],118:[2,107],126:[2,107],129:[2,107],130:[2,107],135:[2,107],136:[2,107],137:[2,107],138:[2,107],139:[2,107],140:[2,107],141:[2,107]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],86:[1,205],87:206,88:[1,58],89:[1,59],90:[1,57],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,52],25:[2,52],49:[1,208],53:210,54:[1,209]},{6:[2,55],25:[2,55],26:[2,55],49:[2,55],54:[2,55]},{6:[2,59],25:[2,59],26:[2,59],40:[1,212],49:[2,59],54:[2,59],57:[1,211]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:154,28:[1,73]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:149,88:[1,58],89:[1,59],90:[1,57],91:[1,148],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],73:[2,49],78:[2,49],86:[2,49],91:[2,49],93:[2,49],102:[2,49],104:[2,49],105:[2,49],106:[2,49],110:[2,49],118:[2,49],126:[2,49],129:[2,49],130:[2,49],135:[2,49],136:[2,49],137:[2,49],138:[2,49],139:[2,49],140:[2,49],141:[2,49]},{4:214,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,213],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:85,104:[2,188],105:[2,188],106:[2,188],109:86,110:[2,188],111:69,118:[2,188],126:[2,188],129:[2,188],130:[2,188],135:[1,75],136:[2,188],137:[2,188],138:[2,188],139:[2,188],140:[2,188],141:[2,188]},{103:88,104:[1,65],106:[1,66],109:89,110:[1,68],111:69,126:[1,87]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],73:[2,189],78:[2,189],86:[2,189],91:[2,189],93:[2,189],102:[2,189],103:85,104:[2,189],105:[2,189],106:[2,189],109:86,110:[2,189],111:69,118:[2,189],126:[2,189],129:[2,189],130:[2,189],135:[1,75],136:[2,189],137:[1,79],138:[2,189],139:[2,189],140:[2,189],141:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],73:[2,190],78:[2,190],86:[2,190],91:[2,190],93:[2,190],102:[2,190],103:85,104:[2,190],105:[2,190],106:[2,190],109:86,110:[2,190],111:69,118:[2,190],126:[2,190],129:[2,190],130:[2,190],135:[1,75],136:[2,190],137:[1,79],138:[2,190],139:[2,190],140:[2,190],141:[2,190]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],73:[2,191],78:[2,191],86:[2,191],91:[2,191],93:[2,191],102:[2,191],103:85,104:[2,191],105:[2,191],106:[2,191],109:86,110:[2,191],111:69,118:[2,191],126:[2,191],129:[2,191],130:[2,191],135:[1,75],136:[2,191],137:[1,79],138:[2,191],139:[2,191],140:[2,191],141:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],73:[2,192],78:[2,192],86:[2,192],91:[2,192],93:[2,192],102:[2,192],103:88,104:[2,192],105:[2,192],106:[2,192],109:89,110:[2,192],111:69,118:[2,192],126:[2,192],129:[2,192],130:[2,192],135:[2,192],136:[2,192],137:[2,192],138:[2,192],139:[2,192],140:[2,192],141:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],73:[2,193],78:[2,193],86:[2,193],91:[2,193],93:[2,193],102:[2,193],103:85,104:[2,193],105:[2,193],106:[2,193],109:86,110:[2,193],111:69,118:[2,193],126:[2,193],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:215,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,195],74:[2,72],78:[2,195],84:[2,72],85:[2,72],86:[2,195],91:[2,195],93:[2,195],102:[2,195],104:[2,195],105:[2,195],106:[2,195],110:[2,195],118:[2,195],126:[2,195],129:[2,195],130:[2,195],135:[2,195],136:[2,195],137:[2,195],138:[2,195],139:[2,195],140:[2,195],141:[2,195]},{62:91,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],74:[1,99],81:90,84:[1,92],85:[2,108]},{62:101,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],74:[1,99],81:100,84:[1,92],85:[2,108]},{66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],74:[2,75],84:[2,75],85:[2,75]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,196],74:[2,72],78:[2,196],84:[2,72],85:[2,72],86:[2,196],91:[2,196],93:[2,196],102:[2,196],104:[2,196],105:[2,196],106:[2,196],110:[2,196],118:[2,196],126:[2,196],129:[2,196],130:[2,196],135:[2,196],136:[2,196],137:[2,196],138:[2,196],139:[2,196],140:[2,196],141:[2,196]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],73:[2,197],78:[2,197],86:[2,197],91:[2,197],93:[2,197],102:[2,197],104:[2,197],105:[2,197],106:[2,197],110:[2,197],118:[2,197],126:[2,197],129:[2,197],130:[2,197],135:[2,197],136:[2,197],137:[2,197],138:[2,197],139:[2,197],140:[2,197],141:[2,197]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],73:[2,198],78:[2,198],86:[2,198],91:[2,198],93:[2,198],102:[2,198],104:[2,198],105:[2,198],106:[2,198],110:[2,198],118:[2,198],126:[2,198],129:[2,198],130:[2,198],135:[2,198],136:[2,198],137:[2,198],138:[2,198],139:[2,198],140:[2,198],141:[2,198]},{6:[1,218],7:216,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,217],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:219,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{24:220,25:[1,116],125:[1,221]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],97:222,98:[1,223],99:[1,224],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],129:[2,134],130:[2,134],135:[2,134],136:[2,134],137:[2,134],138:[2,134],139:[2,134],140:[2,134],141:[2,134]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],129:[2,148],130:[2,148],135:[2,148],136:[2,148],137:[2,148],138:[2,148],139:[2,148],140:[2,148],141:[2,148]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],129:[2,156],130:[2,156],135:[2,156],136:[2,156],137:[2,156],138:[2,156],139:[2,156],140:[2,156],141:[2,156]},{25:[1,225],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{120:226,122:227,123:[1,228]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],104:[2,97],105:[2,97],106:[2,97],110:[2,97],118:[2,97],126:[2,97],129:[2,97],130:[2,97],135:[2,97],136:[2,97],137:[2,97],138:[2,97],139:[2,97],140:[2,97],141:[2,97]},{7:229,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,100],6:[2,100],24:230,25:[1,116],26:[2,100],49:[2,100],54:[2,100],57:[2,100],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,100],74:[2,72],78:[2,100],80:[1,231],84:[2,72],85:[2,72],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],129:[2,100],130:[2,100],135:[2,100],136:[2,100],137:[2,100],138:[2,100],139:[2,100],140:[2,100],141:[2,100]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],73:[2,141],78:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],103:85,104:[2,141],105:[2,141],106:[2,141],109:86,110:[2,141],111:69,118:[2,141],126:[2,141],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],49:[2,45],54:[2,45],57:[2,45],73:[2,45],78:[2,45],86:[2,45],91:[2,45],93:[2,45],102:[2,45],103:85,104:[2,45],105:[2,45],106:[2,45],109:86,110:[2,45],111:69,118:[2,45],126:[2,45],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,74],102:[1,232]},{4:233,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,129],25:[2,129],54:[2,129],57:[1,235],91:[2,129],92:234,93:[1,198],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],129:[2,115],130:[2,115],135:[2,115],136:[2,115],137:[2,115],138:[2,115],139:[2,115],140:[2,115],141:[2,115]},{6:[2,52],25:[2,52],53:236,54:[1,237],91:[2,52]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:238,88:[1,58],89:[1,59],90:[1,57],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,130],25:[2,130],26:[2,130],54:[2,130],86:[2,130],91:[2,130]},{6:[2,131],25:[2,131],26:[2,131],54:[2,131],86:[2,131],91:[2,131]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],43:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],80:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],129:[2,114],130:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114],138:[2,114],139:[2,114],140:[2,114],141:[2,114],142:[2,114]},{24:239,25:[1,116],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],73:[2,144],78:[2,144],86:[2,144],91:[2,144],93:[2,144],102:[2,144],103:85,104:[1,65],105:[1,240],106:[1,66],109:86,110:[1,68],111:69,118:[2,144],126:[2,144],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],73:[2,146],78:[2,146],86:[2,146],91:[2,146],93:[2,146],102:[2,146],103:85,104:[1,65],105:[1,241],106:[1,66],109:86,110:[1,68],111:69,118:[2,146],126:[2,146],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],104:[2,152],105:[2,152],106:[2,152],110:[2,152],118:[2,152],126:[2,152],129:[2,152],130:[2,152],135:[2,152],136:[2,152],137:[2,152],138:[2,152],139:[2,152],140:[2,152],141:[2,152]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],103:85,104:[1,65],105:[2,153],106:[1,66],109:86,110:[1,68],111:69,118:[2,153],126:[2,153],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],49:[2,157],54:[2,157],57:[2,157],73:[2,157],78:[2,157],86:[2,157],91:[2,157],93:[2,157],102:[2,157],104:[2,157],105:[2,157],106:[2,157],110:[2,157],118:[2,157],126:[2,157],129:[2,157],130:[2,157],135:[2,157],136:[2,157],137:[2,157],138:[2,157],139:[2,157],140:[2,157],141:[2,157]},{116:[2,159],117:[2,159]},{27:164,28:[1,73],44:165,58:166,59:167,76:[1,70],89:[1,113],90:[1,114],113:242,115:163},{54:[1,243],116:[2,165],117:[2,165]},{54:[2,161],116:[2,161],117:[2,161]},{54:[2,162],116:[2,162],117:[2,162]},{54:[2,163],116:[2,163],117:[2,163]},{54:[2,164],116:[2,164],117:[2,164]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],49:[2,158],54:[2,158],57:[2,158],73:[2,158],78:[2,158],86:[2,158],91:[2,158],93:[2,158],102:[2,158],104:[2,158],105:[2,158],106:[2,158],110:[2,158],118:[2,158],126:[2,158],129:[2,158],130:[2,158],135:[2,158],136:[2,158],137:[2,158],138:[2,158],139:[2,158],140:[2,158],141:[2,158]},{7:244,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:245,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,52],25:[2,52],53:246,54:[1,247],78:[2,52]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,38],25:[2,38],26:[2,38],43:[1,248],54:[2,38],78:[2,38]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],78:[2,41]},{6:[2,42],25:[2,42],26:[2,42],43:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],103:85,104:[2,200],105:[2,200],106:[2,200],109:86,110:[2,200],111:69,118:[2,200],126:[2,200],129:[2,200],130:[2,200],135:[1,75],136:[1,78],137:[1,79],138:[2,200],139:[2,200],140:[2,200],141:[2,200]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],103:85,104:[2,201],105:[2,201],106:[2,201],109:86,110:[2,201],111:69,118:[2,201],126:[2,201],129:[2,201],130:[2,201],135:[1,75],136:[1,78],137:[1,79],138:[2,201],139:[2,201],140:[2,201],141:[2,201]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],103:85,104:[2,202],105:[2,202],106:[2,202],109:86,110:[2,202],111:69,118:[2,202],126:[2,202],129:[2,202],130:[2,202],135:[1,75],136:[2,202],137:[1,79],138:[2,202],139:[2,202],140:[2,202],141:[2,202]},{1:[2,203],6:[2,203],25:[2,203],26:[2,203],49:[2,203],54:[2,203],57:[2,203],73:[2,203],78:[2,203],86:[2,203],91:[2,203],93:[2,203],102:[2,203],103:85,104:[2,203],105:[2,203],106:[2,203],109:86,110:[2,203],111:69,118:[2,203],126:[2,203],129:[2,203],130:[2,203],135:[1,75],136:[2,203],137:[1,79],138:[2,203],139:[2,203],140:[2,203],141:[2,203]},{1:[2,204],6:[2,204],25:[2,204],26:[2,204],49:[2,204],54:[2,204],57:[2,204],73:[2,204],78:[2,204],86:[2,204],91:[2,204],93:[2,204],102:[2,204],103:85,104:[2,204],105:[2,204],106:[2,204],109:86,110:[2,204],111:69,118:[2,204],126:[2,204],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[2,204],139:[2,204],140:[2,204],141:[2,204]},{1:[2,205],6:[2,205],25:[2,205],26:[2,205],49:[2,205],54:[2,205],57:[2,205],73:[2,205],78:[2,205],86:[2,205],91:[2,205],93:[2,205],102:[2,205],103:85,104:[2,205],105:[2,205],106:[2,205],109:86,110:[2,205],111:69,118:[2,205],126:[2,205],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[2,205],140:[2,205],141:[1,83]},{1:[2,206],6:[2,206],25:[2,206],26:[2,206],49:[2,206],54:[2,206],57:[2,206],73:[2,206],78:[2,206],86:[2,206],91:[2,206],93:[2,206],102:[2,206],103:85,104:[2,206],105:[2,206],106:[2,206],109:86,110:[2,206],111:69,118:[2,206],126:[2,206],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[2,206],141:[1,83]},{1:[2,207],6:[2,207],25:[2,207],26:[2,207],49:[2,207],54:[2,207],57:[2,207],73:[2,207],78:[2,207],86:[2,207],91:[2,207],93:[2,207],102:[2,207],103:85,104:[2,207],105:[2,207],106:[2,207],109:86,110:[2,207],111:69,118:[2,207],126:[2,207],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[2,207],140:[2,207],141:[2,207]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:85,104:[1,65],105:[2,187],106:[1,66],109:86,110:[1,68],111:69,118:[2,187],126:[2,187],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:85,104:[1,65],105:[2,186],106:[1,66],109:86,110:[1,68],111:69,118:[2,186],126:[2,186],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],129:[2,104],130:[2,104],135:[2,104],136:[2,104],137:[2,104],138:[2,104],139:[2,104],140:[2,104],141:[2,104]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],129:[2,80],130:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80],139:[2,80],140:[2,80],141:[2,80],142:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],129:[2,81],130:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81],139:[2,81],140:[2,81],141:[2,81],142:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],129:[2,82],130:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82],139:[2,82],140:[2,82],141:[2,82],142:[2,82]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],129:[2,83],130:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83],139:[2,83],140:[2,83],141:[2,83],142:[2,83]},{73:[1,249]},{57:[1,199],73:[2,88],92:250,93:[1,198],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{73:[2,89]},{7:251,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,73:[2,123],76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{11:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117],133:[2,117],134:[2,117]},{11:[2,118],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],73:[2,118],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],133:[2,118],134:[2,118]},{1:[2,87],6:[2,87],25:[2,87],26:[2,87],40:[2,87],49:[2,87],54:[2,87],57:[2,87],66:[2,87],67:[2,87],68:[2,87],69:[2,87],71:[2,87],73:[2,87],74:[2,87],78:[2,87],80:[2,87],84:[2,87],85:[2,87],86:[2,87],91:[2,87],93:[2,87],102:[2,87],104:[2,87],105:[2,87],106:[2,87],110:[2,87],118:[2,87],126:[2,87],129:[2,87],130:[2,87],133:[2,87],134:[2,87],135:[2,87],136:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87],141:[2,87],142:[2,87]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],84:[2,105],85:[2,105],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],129:[2,105],130:[2,105],135:[2,105],136:[2,105],137:[2,105],138:[2,105],139:[2,105],140:[2,105],141:[2,105]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],73:[2,35],78:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],103:85,104:[2,35],105:[2,35],106:[2,35],109:86,110:[2,35],111:69,118:[2,35],126:[2,35],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:252,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:253,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],129:[2,110],130:[2,110],135:[2,110],136:[2,110],137:[2,110],138:[2,110],139:[2,110],140:[2,110],141:[2,110]},{6:[2,52],25:[2,52],53:254,54:[1,237],86:[2,52]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],57:[1,255],86:[2,129],91:[2,129],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{50:256,51:[1,60],52:[1,61]},{6:[2,53],25:[2,53],26:[2,53],27:109,28:[1,73],44:110,55:257,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{6:[1,258],25:[1,259]},{6:[2,60],25:[2,60],26:[2,60],49:[2,60],54:[2,60]},{7:260,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,23],91:[2,23],93:[2,23],98:[2,23],99:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],121:[2,23],123:[2,23],126:[2,23],129:[2,23],130:[2,23],135:[2,23],136:[2,23],137:[2,23],138:[2,23],139:[2,23],140:[2,23],141:[2,23]},{6:[1,74],26:[1,261]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],103:85,104:[2,194],105:[2,194],106:[2,194],109:86,110:[2,194],111:69,118:[2,194],126:[2,194],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,208],6:[2,208],25:[2,208],26:[2,208],49:[2,208],54:[2,208],57:[2,208],73:[2,208],78:[2,208],86:[2,208],91:[2,208],93:[2,208],102:[2,208],103:85,104:[2,208],105:[2,208],106:[2,208],109:86,110:[2,208],111:69,118:[2,208],126:[2,208],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:262,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:263,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,211],6:[2,211],25:[2,211],26:[2,211],49:[2,211],54:[2,211],57:[2,211],73:[2,211],78:[2,211],86:[2,211],91:[2,211],93:[2,211],102:[2,211],103:85,104:[2,211],105:[2,211],106:[2,211],109:86,110:[2,211],111:69,118:[2,211],126:[2,211],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185],78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],104:[2,185],105:[2,185],106:[2,185],110:[2,185],118:[2,185],126:[2,185],129:[2,185],130:[2,185],135:[2,185],136:[2,185],137:[2,185],138:[2,185],139:[2,185],140:[2,185],141:[2,185]},{7:264,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],73:[2,135],78:[2,135],86:[2,135],91:[2,135],93:[2,135],98:[1,265],102:[2,135],104:[2,135],105:[2,135],106:[2,135],110:[2,135],118:[2,135],126:[2,135],129:[2,135],130:[2,135],135:[2,135],136:[2,135],137:[2,135],138:[2,135],139:[2,135],140:[2,135],141:[2,135]},{24:266,25:[1,116]},{24:269,25:[1,116],27:267,28:[1,73],59:268,76:[1,70]},{120:270,122:227,123:[1,228]},{26:[1,271],121:[1,272],122:273,123:[1,228]},{26:[2,178],121:[2,178],123:[2,178]},{7:275,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],95:274,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,98],6:[2,98],24:276,25:[1,116],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],103:85,104:[1,65],105:[2,98],106:[1,66],109:86,110:[1,68],111:69,118:[2,98],126:[2,98],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],104:[2,101],105:[2,101],106:[2,101],110:[2,101],118:[2,101],126:[2,101],129:[2,101],130:[2,101],135:[2,101],136:[2,101],137:[2,101],138:[2,101],139:[2,101],140:[2,101],141:[2,101]},{7:277,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],66:[2,142],67:[2,142],68:[2,142],69:[2,142],71:[2,142],73:[2,142],74:[2,142],78:[2,142],84:[2,142],85:[2,142],86:[2,142],91:[2,142],93:[2,142],102:[2,142],104:[2,142],105:[2,142],106:[2,142],110:[2,142],118:[2,142],126:[2,142],129:[2,142],130:[2,142],135:[2,142],136:[2,142],137:[2,142],138:[2,142],139:[2,142],140:[2,142],141:[2,142]},{6:[1,74],26:[1,278]},{7:279,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,67],11:[2,118],25:[2,67],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],54:[2,67],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],91:[2,67],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],133:[2,118],134:[2,118]},{6:[1,281],25:[1,282],91:[1,280]},{6:[2,53],7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,53],26:[2,53],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],86:[2,53],88:[1,58],89:[1,59],90:[1,57],91:[2,53],94:283,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,52],25:[2,52],26:[2,52],53:284,54:[1,237]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],73:[2,182],78:[2,182],86:[2,182],91:[2,182],93:[2,182],102:[2,182],104:[2,182],105:[2,182],106:[2,182],110:[2,182],118:[2,182],121:[2,182],126:[2,182],129:[2,182],130:[2,182],135:[2,182],136:[2,182],137:[2,182],138:[2,182],139:[2,182],140:[2,182],141:[2,182]},{7:285,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:286,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{116:[2,160],117:[2,160]},{27:164,28:[1,73],44:165,58:166,59:167,76:[1,70],89:[1,113],90:[1,114],115:287},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],73:[2,167],78:[2,167],86:[2,167],91:[2,167],93:[2,167],102:[2,167],103:85,104:[2,167],105:[1,288],106:[2,167],109:86,110:[2,167],111:69,118:[1,289],126:[2,167],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],73:[2,168],78:[2,168],86:[2,168],91:[2,168],93:[2,168],102:[2,168],103:85,104:[2,168],105:[1,290],106:[2,168],109:86,110:[2,168],111:69,118:[2,168],126:[2,168],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,292],25:[1,293],78:[1,291]},{6:[2,53],10:174,25:[2,53],26:[2,53],27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:294,42:173,44:177,46:[1,46],78:[2,53],89:[1,113]},{7:295,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,296],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],69:[2,86],71:[2,86],73:[2,86],74:[2,86],78:[2,86],80:[2,86],84:[2,86],85:[2,86],86:[2,86],91:[2,86],93:[2,86],102:[2,86],104:[2,86],105:[2,86],106:[2,86],110:[2,86],118:[2,86],126:[2,86],129:[2,86],130:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86],141:[2,86],142:[2,86]},{7:297,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,73:[2,121],76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{73:[2,122],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:85,104:[2,36],105:[2,36],106:[2,36],109:86,110:[2,36],111:69,118:[2,36],126:[2,36],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{26:[1,298],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,281],25:[1,282],86:[1,299]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],86:[2,67],91:[2,67]},{24:300,25:[1,116]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{27:109,28:[1,73],44:110,55:301,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{6:[2,54],25:[2,54],26:[2,54],27:109,28:[1,73],44:110,48:302,54:[2,54],55:106,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],129:[2,24],130:[2,24],135:[2,24],136:[2,24],137:[2,24],138:[2,24],139:[2,24],140:[2,24],141:[2,24]},{26:[1,303],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,210],6:[2,210],25:[2,210],26:[2,210],49:[2,210],54:[2,210],57:[2,210],73:[2,210],78:[2,210],86:[2,210],91:[2,210],93:[2,210],102:[2,210],103:85,104:[2,210],105:[2,210],106:[2,210],109:86,110:[2,210],111:69,118:[2,210],126:[2,210],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{24:304,25:[1,116],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{24:305,25:[1,116]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],73:[2,136],78:[2,136],86:[2,136],91:[2,136],93:[2,136],102:[2,136],104:[2,136],105:[2,136],106:[2,136],110:[2,136],118:[2,136],126:[2,136],129:[2,136],130:[2,136],135:[2,136],136:[2,136],137:[2,136],138:[2,136],139:[2,136],140:[2,136],141:[2,136]},{24:306,25:[1,116]},{24:307,25:[1,116]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],73:[2,140],78:[2,140],86:[2,140],91:[2,140],93:[2,140],98:[2,140],102:[2,140],104:[2,140],105:[2,140],106:[2,140],110:[2,140],118:[2,140],126:[2,140],129:[2,140],130:[2,140],135:[2,140],136:[2,140],137:[2,140],138:[2,140],139:[2,140],140:[2,140],141:[2,140]},{26:[1,308],121:[1,309],122:273,123:[1,228]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],49:[2,176],54:[2,176],57:[2,176],73:[2,176],78:[2,176],86:[2,176],91:[2,176],93:[2,176],102:[2,176],104:[2,176],105:[2,176],106:[2,176],110:[2,176],118:[2,176],126:[2,176],129:[2,176],130:[2,176],135:[2,176],136:[2,176],137:[2,176],138:[2,176],139:[2,176],140:[2,176],141:[2,176]},{24:310,25:[1,116]},{26:[2,179],121:[2,179],123:[2,179]},{24:311,25:[1,116],54:[1,312]},{25:[2,132],54:[2,132],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],49:[2,99],54:[2,99],57:[2,99],73:[2,99],78:[2,99],86:[2,99],91:[2,99],93:[2,99],102:[2,99],104:[2,99],105:[2,99],106:[2,99],110:[2,99],118:[2,99],126:[2,99],129:[2,99],130:[2,99],135:[2,99],136:[2,99],137:[2,99],138:[2,99],139:[2,99],140:[2,99],141:[2,99]},{1:[2,102],6:[2,102],24:313,25:[1,116],26:[2,102],49:[2,102],54:[2,102],57:[2,102],73:[2,102],78:[2,102],86:[2,102],91:[2,102],93:[2,102],102:[2,102],103:85,104:[1,65],105:[2,102],106:[1,66],109:86,110:[1,68],111:69,118:[2,102],126:[2,102],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{102:[1,314]},{91:[1,315],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,116],6:[2,116],25:[2,116],26:[2,116],40:[2,116],49:[2,116],54:[2,116],57:[2,116],66:[2,116],67:[2,116],68:[2,116],69:[2,116],71:[2,116],73:[2,116],74:[2,116],78:[2,116],84:[2,116],85:[2,116],86:[2,116],91:[2,116],93:[2,116],102:[2,116],104:[2,116],105:[2,116],106:[2,116],110:[2,116],116:[2,116],117:[2,116],118:[2,116],126:[2,116],129:[2,116],130:[2,116],135:[2,116],136:[2,116],137:[2,116],138:[2,116],139:[2,116],140:[2,116],141:[2,116]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],94:316,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:317,88:[1,58],89:[1,59],90:[1,57],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],86:[2,125],91:[2,125]},{6:[1,281],25:[1,282],26:[1,318]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:85,104:[1,65],105:[2,145],106:[1,66],109:86,110:[1,68],111:69,118:[2,145],126:[2,145],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,147],103:85,104:[1,65],105:[2,147],106:[1,66],109:86,110:[1,68],111:69,118:[2,147],126:[2,147],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{116:[2,166],117:[2,166]},{7:319,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:320,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:321,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,90],6:[2,90],25:[2,90],26:[2,90],40:[2,90],49:[2,90],54:[2,90],57:[2,90],66:[2,90],67:[2,90],68:[2,90],69:[2,90],71:[2,90],73:[2,90],74:[2,90],78:[2,90],84:[2,90],85:[2,90],86:[2,90],91:[2,90],93:[2,90],102:[2,90],104:[2,90],105:[2,90],106:[2,90],110:[2,90],116:[2,90],117:[2,90],118:[2,90],126:[2,90],129:[2,90],130:[2,90],135:[2,90],136:[2,90],137:[2,90],138:[2,90],139:[2,90],140:[2,90],141:[2,90]},{10:174,27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:322,42:173,44:177,46:[1,46],89:[1,113]},{6:[2,91],10:174,25:[2,91],26:[2,91],27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:172,42:173,44:177,46:[1,46],54:[2,91],77:323,89:[1,113]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],78:[2,93]},{6:[2,39],25:[2,39],26:[2,39],54:[2,39],78:[2,39],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:324,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{73:[2,120],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],73:[2,37],78:[2,37],86:[2,37],91:[2,37],93:[2,37],102:[2,37],104:[2,37],105:[2,37],106:[2,37],110:[2,37],118:[2,37],126:[2,37],129:[2,37],130:[2,37],135:[2,37],136:[2,37],137:[2,37],138:[2,37],139:[2,37],140:[2,37],141:[2,37]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],69:[2,111],71:[2,111],73:[2,111],74:[2,111],78:[2,111],84:[2,111],85:[2,111],86:[2,111],91:[2,111],93:[2,111],102:[2,111],104:[2,111],105:[2,111],106:[2,111],110:[2,111],118:[2,111],126:[2,111],129:[2,111],130:[2,111],135:[2,111],136:[2,111],137:[2,111],138:[2,111],139:[2,111],140:[2,111],141:[2,111]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],49:[2,48],54:[2,48],57:[2,48],73:[2,48],78:[2,48],86:[2,48],91:[2,48],93:[2,48],102:[2,48],104:[2,48],105:[2,48],106:[2,48],110:[2,48],118:[2,48],126:[2,48],129:[2,48],130:[2,48],135:[2,48],136:[2,48],137:[2,48],138:[2,48],139:[2,48],140:[2,48],141:[2,48]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{6:[2,52],25:[2,52],26:[2,52],53:325,54:[1,209]},{1:[2,209],6:[2,209],25:[2,209],26:[2,209],49:[2,209],54:[2,209],57:[2,209],73:[2,209],78:[2,209],86:[2,209],91:[2,209],93:[2,209],102:[2,209],104:[2,209],105:[2,209],106:[2,209],110:[2,209],118:[2,209],126:[2,209],129:[2,209],130:[2,209],135:[2,209],136:[2,209],137:[2,209],138:[2,209],139:[2,209],140:[2,209],141:[2,209]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],121:[2,183],126:[2,183],129:[2,183],130:[2,183],135:[2,183],136:[2,183],137:[2,183],138:[2,183],139:[2,183],140:[2,183],141:[2,183]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],73:[2,137],78:[2,137],86:[2,137],91:[2,137],93:[2,137],102:[2,137],104:[2,137],105:[2,137],106:[2,137],110:[2,137],118:[2,137],126:[2,137],129:[2,137],130:[2,137],135:[2,137],136:[2,137],137:[2,137],138:[2,137],139:[2,137],140:[2,137],141:[2,137]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],73:[2,138],78:[2,138],86:[2,138],91:[2,138],93:[2,138],98:[2,138],102:[2,138],104:[2,138],105:[2,138],106:[2,138],110:[2,138],118:[2,138],126:[2,138],129:[2,138],130:[2,138],135:[2,138],136:[2,138],137:[2,138],138:[2,138],139:[2,138],140:[2,138],141:[2,138]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],73:[2,139],78:[2,139],86:[2,139],91:[2,139],93:[2,139],98:[2,139],102:[2,139],104:[2,139],105:[2,139],106:[2,139],110:[2,139],118:[2,139],126:[2,139],129:[2,139],130:[2,139],135:[2,139],136:[2,139],137:[2,139],138:[2,139],139:[2,139],140:[2,139],141:[2,139]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],49:[2,174],54:[2,174],57:[2,174],73:[2,174],78:[2,174],86:[2,174],91:[2,174],93:[2,174],102:[2,174],104:[2,174],105:[2,174],106:[2,174],110:[2,174],118:[2,174],126:[2,174],129:[2,174],130:[2,174],135:[2,174],136:[2,174],137:[2,174],138:[2,174],139:[2,174],140:[2,174],141:[2,174]},{24:326,25:[1,116]},{26:[1,327]},{6:[1,328],26:[2,180],121:[2,180],123:[2,180]},{7:329,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],73:[2,103],78:[2,103],86:[2,103],91:[2,103],93:[2,103],102:[2,103],104:[2,103],105:[2,103],106:[2,103],110:[2,103],118:[2,103],126:[2,103],129:[2,103],130:[2,103],135:[2,103],136:[2,103],137:[2,103],138:[2,103],139:[2,103],140:[2,103],141:[2,103]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],66:[2,143],67:[2,143],68:[2,143],69:[2,143],71:[2,143],73:[2,143],74:[2,143],78:[2,143],84:[2,143],85:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],104:[2,143],105:[2,143],106:[2,143],110:[2,143],118:[2,143],126:[2,143],129:[2,143],130:[2,143],135:[2,143],136:[2,143],137:[2,143],138:[2,143],139:[2,143],140:[2,143],141:[2,143]},{1:[2,119],6:[2,119],25:[2,119],26:[2,119],49:[2,119],54:[2,119],57:[2,119],66:[2,119],67:[2,119],68:[2,119],69:[2,119],71:[2,119],73:[2,119],74:[2,119],78:[2,119],84:[2,119],85:[2,119],86:[2,119],91:[2,119],93:[2,119],102:[2,119],104:[2,119],105:[2,119],106:[2,119],110:[2,119],118:[2,119],126:[2,119],129:[2,119],130:[2,119],135:[2,119],136:[2,119],137:[2,119],138:[2,119],139:[2,119],140:[2,119],141:[2,119]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],86:[2,126],91:[2,126]},{6:[2,52],25:[2,52],26:[2,52],53:330,54:[1,237]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],86:[2,127],91:[2,127]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],73:[2,169],78:[2,169],86:[2,169],91:[2,169],93:[2,169],102:[2,169],103:85,104:[2,169],105:[2,169],106:[2,169],109:86,110:[2,169],111:69,118:[1,331],126:[2,169],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],73:[2,171],78:[2,171],86:[2,171],91:[2,171],93:[2,171],102:[2,171],103:85,104:[2,171],105:[1,332],106:[2,171],109:86,110:[2,171],111:69,118:[2,171],126:[2,171],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],73:[2,170],78:[2,170],86:[2,170],91:[2,170],93:[2,170],102:[2,170],103:85,104:[2,170],105:[2,170],106:[2,170],109:86,110:[2,170],111:69,118:[2,170],126:[2,170],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],78:[2,94]},{6:[2,52],25:[2,52],26:[2,52],53:333,54:[1,247]},{26:[1,334],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,258],25:[1,259],26:[1,335]},{26:[1,336]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],49:[2,177],54:[2,177],57:[2,177],73:[2,177],78:[2,177],86:[2,177],91:[2,177],93:[2,177],102:[2,177],104:[2,177],105:[2,177],106:[2,177],110:[2,177],118:[2,177],126:[2,177],129:[2,177],130:[2,177],135:[2,177],136:[2,177],137:[2,177],138:[2,177],139:[2,177],140:[2,177],141:[2,177]},{26:[2,181],121:[2,181],123:[2,181]},{25:[2,133],54:[2,133],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,281],25:[1,282],26:[1,337]},{7:338,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:339,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[1,292],25:[1,293],26:[1,340]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],78:[2,40]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],49:[2,175],54:[2,175],57:[2,175],73:[2,175],78:[2,175],86:[2,175],91:[2,175],93:[2,175],102:[2,175],104:[2,175],105:[2,175],106:[2,175],110:[2,175],118:[2,175],126:[2,175],129:[2,175],130:[2,175],135:[2,175],136:[2,175],137:[2,175],138:[2,175],139:[2,175],140:[2,175],141:[2,175]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],86:[2,128],91:[2,128]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],73:[2,172],78:[2,172],86:[2,172],91:[2,172],93:[2,172],102:[2,172],103:85,104:[2,172],105:[2,172],106:[2,172],109:86,110:[2,172],111:69,118:[2,172],126:[2,172],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],73:[2,173],78:[2,173],86:[2,173],91:[2,173],93:[2,173],102:[2,173],103:85,104:[2,173],105:[2,173],106:[2,173],109:86,110:[2,173],111:69,118:[2,173],126:[2,173],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[2,95],25:[2,95],26:[2,95],54:[2,95],78:[2,95]}], defaultActions: {60:[2,50],61:[2,51],92:[2,109],196:[2,89]}, parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - throw new Error(str); - } + throw new Error(str); }, parse: function parse(input) { - var self = this, stack = [0], 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 self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; this.lexer.setInput(input); this.lexer.yy = this.yy; this.yy.lexer = this.lexer; - this.yy.parser = this; - if (typeof this.lexer.yylloc == 'undefined') { + if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {}; - } var yyloc = this.lexer.yylloc; lstack.push(yyloc); - var ranges = this.lexer.options && this.lexer.options.ranges; - if (typeof this.yy.parseError === 'function') { + if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } function popStack(n) { stack.length = stack.length - 2 * n; vstack.length = vstack.length - n; @@ -599,8 +516,8 @@ parse: function parse(input) { } function lex() { var token; - token = self.lexer.lex() || EOF; - if (typeof token !== 'number') { + token = self.lexer.lex() || 1; + if (typeof token !== "number") { token = self.symbols_[token] || token; } return token; @@ -611,34 +528,28 @@ parse: function parse(input) { if (this.defaultActions[state]) { action = this.defaultActions[state]; } else { - if (symbol === null || typeof symbol == 'undefined') { + if (symbol == null) symbol = lex(); - } action = table[state] && table[state][symbol]; } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; + if (typeof action === "undefined" || !action.length || !action[0]) { + if (!recovering) { expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); + for (p in table[state]) + if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); } - } + var errStr = ""; if (this.lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + this.terminals_[symbol] + "'"; } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); } - this.parseError(errStr, { - text: this.lexer.match, - token: this.terminals_[symbol] || symbol, - line: this.lexer.yylineno, - loc: yyloc, - expected: expected - }); + this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.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); + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); } switch (action[0]) { case 1: @@ -652,9 +563,8 @@ parse: function parse(input) { yytext = this.lexer.yytext; yylineno = this.lexer.yylineno; yyloc = this.lexer.yylloc; - if (recovering > 0) { + if (recovering > 0) recovering--; - } } else { symbol = preErrorSymbol; preErrorSymbol = null; @@ -663,28 +573,9 @@ parse: function parse(input) { 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, - this.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== 'undefined') { + 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}; + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { return r; } if (len) { @@ -703,29 +594,25 @@ parse: function parse(input) { } } return true; -}}; - -function Parser () { - this.yy = {}; } -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; +}; +return parser; })(); - - if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; -exports.Parser = parser.Parser; -exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.parse = function () { return parser.parse.apply(parser, arguments); } exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); + if (!args[1]) + throw new Error('Usage: '+args[0]+' FILE'); + if (typeof process !== 'undefined') { + var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8"); + } else { + var cwd = require("file").path(require("file").cwd()); + var source = cwd.join(args[1]).read({charset: "utf-8"}); } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); return exports.parser.parse(source); -}; +} if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); + exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); } } \ No newline at end of file diff --git a/src/grammar.coffee b/src/grammar.coffee index bb11c6c013..510d3e3e3e 100644 --- a/src/grammar.coffee +++ b/src/grammar.coffee @@ -540,6 +540,9 @@ grammar = o 'YIELD Expression', -> new Op $1 , $2 o 'YIELD FROM Expression', -> new Op $1.concat($2) , $3 + o 'AWAIT Statement', -> new Op $1 , $2 + o 'AWAIT Expression', -> new Op $1 , $2 + o '-- SimpleAssignable', -> new Op '--', $2 o '++ SimpleAssignable', -> new Op '++', $2 o 'SimpleAssignable --', -> new Op '--', $1, null, true @@ -589,6 +592,7 @@ operators = [ ['nonassoc', '++', '--'] ['left', '?'] ['right', 'UNARY'] + ['right', 'AWAIT'] ['right', '**'] ['right', 'UNARY_MATH'] ['left', 'MATH'] diff --git a/src/lexer.coffee b/src/lexer.coffee index 7e34392bf1..d58fb49897 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -691,7 +691,7 @@ exports.Lexer = class Lexer # Are we in the midst of an unfinished expression? unfinished: -> LINE_CONTINUER.test(@chunk) or - @tag() in ['\\', '.', '?.', '?::', 'UNARY', 'MATH', 'UNARY_MATH', '+', '-', 'YIELD', + @tag() in ['\\', '.', '?.', '?::', 'UNARY', 'MATH', 'UNARY_MATH', '+', '-', 'YIELD', 'AWAIT', '**', 'SHIFT', 'RELATION', 'COMPARE', 'LOGIC', 'THROW', 'EXTENDS'] # Remove newlines from beginning and (non escaped) from end of string literals. @@ -738,7 +738,7 @@ JS_KEYWORDS = [ ] # CoffeeScript-only keywords. -COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when'] +COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when', 'await'] COFFEE_ALIAS_MAP = and : '&&' @@ -759,7 +759,7 @@ COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat COFFEE_ALIASES # to avoid having a JavaScript error at runtime. RESERVED = [ 'case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum' - 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind' + 'export', 'import', 'native', '__async', '__hasProp', '__extends', '__slice', '__bind' '__indexOf', 'implements', 'interface', 'package', 'private', 'protected' 'public', 'static' ] diff --git a/src/nodes.coffee b/src/nodes.coffee index 884429b165..717003d61e 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -80,6 +80,7 @@ exports.Base = class Base jumpNode.error 'cannot use a pure statement in an expression' o.sharedScope = yes func = new Code [], Block.wrap [this] + func.purify() # make sure function is kept simple for closure modification args = [] if (argumentsNode = @contains isLiteralArguments) or @contains isLiteralThis args = [new Literal 'this'] @@ -1321,11 +1322,18 @@ exports.Code = class Code extends Base @params = params or [] @body = body or new Block @bound = tag is 'boundfunc' + @wrap = yes # wrap function declarations in modifier invokation (async) @isGenerator = !!@body.contains (node) -> - node instanceof Op and node.operator in ['yield', 'yield*'] + node instanceof Op and node.isYield() + @isAsync = !!@body.contains (node) -> + node instanceof Op and node.isAwait() children: ['params', 'body'] + # a closure containing `await` should simply compile to a generator function + purify: -> + @wrap = no + isStatement: -> !!@ctor jumps: NO @@ -1389,8 +1397,11 @@ exports.Code = class Code extends Base node.error "multiple parameters named '#{name}'" if name in uniqs uniqs.push name @body.makeReturn() unless wasEmpty or @noReturn - code = 'function' - code += '*' if @isGenerator + asyncify = @isAsync and @wrap + code = '' + code += "#{utility 'async'}(" if asyncify + code += 'function' + code += '*' if @isGenerator or @isAsync code += ' ' + @name if @ctor code += '(' answer = [@makeCode(code)] @@ -1400,6 +1411,7 @@ exports.Code = class Code extends Base answer.push @makeCode ') {' answer = answer.concat(@makeCode("\n"), @body.compileWithDeclarations(o), @makeCode("\n#{@tab}")) unless @body.isEmpty() answer.push @makeCode '}' + answer.push @makeCode ')' if asyncify return [@makeCode(@tab), answer...] if @ctor if @front or (o.level >= LEVEL_ACCESS) then @wrapInBraces answer else answer @@ -1611,6 +1623,7 @@ exports.Op = class Op extends Base return first.newInstance() if first instanceof Call and not first.do and not first.isNew first = new Parens first if first instanceof Code and first.bound or first.do @operator = CONVERSIONS[op] or op + @originalOperator = op @first = first @second = second @flip = !!flip @@ -1621,6 +1634,7 @@ exports.Op = class Op extends Base '==': '===' '!=': '!==' 'of': 'in' + 'await': 'yield' 'yieldfrom': 'yield*' # The map of invertible operators. @@ -1632,8 +1646,11 @@ exports.Op = class Op extends Base isSimpleNumber: NO + isAwait: -> + @originalOperator is 'await' + isYield: -> - @operator in ['yield', 'yield*'] + @originalOperator in ['yield', 'yieldfrom'] isUnary: -> not @second @@ -1701,9 +1718,9 @@ exports.Op = class Op extends Base @error 'delete operand may not be argument or var' if @operator in ['--', '++'] and @first.unwrapAll().value in STRICT_PROSCRIBED @error "cannot increment/decrement \"#{@first.unwrapAll().value}\"" - return @compileYield o if @isYield() - return @compileUnary o if @isUnary() - return @compileChain o if isChain + return @compileContinuation o if @isYield() or @isAsync() + return @compileUnary o if @isUnary() + return @compileChain o if isChain switch @operator when '?' then @compileExistence o when '**' then @compilePower o @@ -1756,15 +1773,16 @@ exports.Op = class Op extends Base parts.reverse() if @flip @joinFragmentArrays parts, '' - compileYield: (o) -> + compileContinuation: (o) -> parts = [] op = @operator if not o.scope.parent? - @error 'yield statements must occur within a function generator.' + # all continuations must occur inside function body + @error "#{@originalOperator} statements must occur within a function body." if 'expression' in Object.keys @first parts.push @first.expression.compileToFragments o, LEVEL_OP if @first.expression? else - parts.push [@makeCode "(#{op} "] + parts.push [@makeCode "(#{@operator} "] parts.push @first.compileToFragments o, LEVEL_OP parts.push [@makeCode ")"] @joinFragmentArrays parts, '' @@ -2180,6 +2198,64 @@ exports.If = class If extends Base UTILITIES = + # for async functions containing `await` + async: -> " + (function(){ + var async = function(generator) { + return function() { + var args = arguments, self = this; + return new Promise(function(win, fail){ + var tracker = new Tracker(); + tracker.iterator = generator.apply(self, args); + tracker.win = win; + tracker.fail = fail; + tracker.tick(); + }); + }; + }; + + function Tracker() { + var self = this; + + this.thenHandle = function(value) { + self.result = value; + self.tick(); + }; + + this.failHandle = function(value) { + self.fail(value); + }; + + this.send = false; + this.result = undefined; + + this.iterator = undefined; + this.win = undefined; + this.fail = undefined; + }; + + Tracker.prototype = { + tick: function() { + var next; + if (this.send) { + next = this.iterator.next(this.result); + } else { + next = this.iterator.next(); + this.send = true; + } + + if (next.done) { + this.win(next.value); + } else { + next.value.then(this.thenHandle, this.failHandle); + } + } + }; + + return async; + }()) + " + # Correctly set up a prototype chain for inheritance, including a reference # to the superclass for `super()` calls, and copies of any static properties. extends: -> " diff --git a/src/rewriter.coffee b/src/rewriter.coffee index d20ea612c8..d8362b7777 100644 --- a/src/rewriter.coffee +++ b/src/rewriter.coffee @@ -467,7 +467,7 @@ IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@ # If preceded by an `IMPLICIT_FUNC`, indicates a function invocation. IMPLICIT_CALL = [ 'IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS' - 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD' + 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'AWAIT' 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++' ] From 1e27d68a5d59492cd78e7ab9677f7ab793d5205d Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Thu, 18 Dec 2014 10:29:53 -0500 Subject: [PATCH 03/35] wrong function bug fix --- src/nodes.coffee | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/nodes.coffee b/src/nodes.coffee index 717003d61e..ddc24fe271 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -1718,7 +1718,7 @@ exports.Op = class Op extends Base @error 'delete operand may not be argument or var' if @operator in ['--', '++'] and @first.unwrapAll().value in STRICT_PROSCRIBED @error "cannot increment/decrement \"#{@first.unwrapAll().value}\"" - return @compileContinuation o if @isYield() or @isAsync() + return @compileContinuation o if @isYield() or @isAwait() return @compileUnary o if @isUnary() return @compileChain o if isChain switch @operator @@ -1782,7 +1782,7 @@ exports.Op = class Op extends Base if 'expression' in Object.keys @first parts.push @first.expression.compileToFragments o, LEVEL_OP if @first.expression? else - parts.push [@makeCode "(#{@operator} "] + parts.push [@makeCode "(#{op} "] parts.push @first.compileToFragments o, LEVEL_OP parts.push [@makeCode ")"] @joinFragmentArrays parts, '' @@ -2201,12 +2201,12 @@ UTILITIES = # for async functions containing `await` async: -> " (function(){ - var async = function(generator) { + var async = function(gennerator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); - tracker.iterator = generator.apply(self, args); + tracker.iterator = gennerator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); From 0c58ad781cd6d9b734a68a38bab128a92b457f0b Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Thu, 18 Dec 2014 16:19:12 -0500 Subject: [PATCH 04/35] added tests for async/await --- .gitignore | 1 + Cakefile | 3 +- lib/coffee-script/grammar.js | 6 +- lib/coffee-script/lexer.js | 6 +- lib/coffee-script/nodes.js | 47 +++++++-- lib/coffee-script/parser.js | 42 ++++---- lib/coffee-script/rewriter.js | 2 +- src/nodes.coffee | 6 +- test/async.coffee | 192 ++++++++++++++++++++++++++++++++++ 9 files changed, 266 insertions(+), 39 deletions(-) create mode 100644 test/async.coffee diff --git a/.gitignore b/.gitignore index 4ed75b7fdf..731dc6ae5b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ test/*.js examples/beautiful_code/parse.coffee *.gem /node_modules +build.sh diff --git a/Cakefile b/Cakefile index c9a675fd49..e90dc6527f 100644 --- a/Cakefile +++ b/Cakefile @@ -277,10 +277,11 @@ runTests = (CoffeeScript) -> # Run every test in the `test` folder, recording failures. files = fs.readdirSync 'test' - # Ignore generators test file if generators are not available + # Ignore generator dependent test files if generators are not available generatorsAreAvailable = '--harmony' in process.execArgv or '--harmony-generators' in process.execArgv files.splice files.indexOf('generators.coffee'), 1 if not generatorsAreAvailable + files.splice files.indexOf('async.coffee'), 1 if not generatorsAreAvailable for file in files when helpers.isCoffee file literate = helpers.isLiterate file diff --git a/lib/coffee-script/grammar.js b/lib/coffee-script/grammar.js index 066fc54dd2..6636acd52b 100644 --- a/lib/coffee-script/grammar.js +++ b/lib/coffee-script/grammar.js @@ -558,6 +558,10 @@ return new Op($1, $2); }), o('YIELD FROM Expression', function() { return new Op($1.concat($2), $3); + }), o('AWAIT Statement', function() { + return new Op($1, $2); + }), o('AWAIT Expression', function() { + return new Op($1, $2); }), o('-- SimpleAssignable', function() { return new Op('--', $2); }), o('++ SimpleAssignable', function() { @@ -600,7 +604,7 @@ ] }; - operators = [['left', '.', '?.', '::', '?::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['right', '**'], ['right', 'UNARY_MATH'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', 'YIELD'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['left', 'POST_IF']]; + operators = [['left', '.', '?.', '::', '?::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['right', 'AWAIT'], ['right', '**'], ['right', 'UNARY_MATH'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', 'YIELD'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['left', 'POST_IF']]; tokens = []; diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index 08100efd5b..9915f100af 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -777,7 +777,7 @@ Lexer.prototype.unfinished = function() { var _ref2; - return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === 'UNARY_MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'YIELD' || _ref2 === '**' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS'); + return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === 'UNARY_MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'YIELD' || _ref2 === 'AWAIT' || _ref2 === '**' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS'); }; Lexer.prototype.removeNewlines = function(str) { @@ -832,7 +832,7 @@ JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super']; - COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; + COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when', 'await']; COFFEE_ALIAS_MAP = { and: '&&', @@ -857,7 +857,7 @@ COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); - RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static']; + RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__async', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static']; STRICT_PROSCRIBED = ['arguments', 'eval', 'yield*']; diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index f055858e91..f16b8ab0cc 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -93,6 +93,7 @@ } o.sharedScope = true; func = new Code([], Block.wrap([this])); + func.purify(); args = []; if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) { args = [new Literal('this')]; @@ -105,7 +106,7 @@ func = new Value(func, [new Access(new Literal(meth))]); } parts = (new Call(func, args)).compileNode(o); - if (func.isGenerator) { + if (func.isGenerator || func.isAsync) { parts.unshift(this.makeCode("(yield* ")); parts.push(this.makeCode(")")); } @@ -1822,14 +1823,21 @@ this.params = params || []; this.body = body || new Block; this.bound = tag === 'boundfunc'; + this.wrap = true; this.isGenerator = !!this.body.contains(function(node) { - var _ref2; - return node instanceof Op && ((_ref2 = node.operator) === 'yield' || _ref2 === 'yield*'); + return node instanceof Op && node.isYield(); + }); + this.isAsync = !!this.body.contains(function(node) { + return node instanceof Op && node.isAwait(); }); } Code.prototype.children = ['params', 'body']; + Code.prototype.purify = function() { + return this.wrap = false; + }; + Code.prototype.isStatement = function() { return !!this.ctor; }; @@ -1841,7 +1849,7 @@ }; Code.prototype.compileNode = function(o) { - var answer, boundfunc, code, exprs, i, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, wrapper, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; + var answer, asyncify, boundfunc, code, exprs, i, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, wrapper, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; if (this.bound && ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0)) { this.context = o.scope.method.context; } @@ -1942,8 +1950,13 @@ if (!(wasEmpty || this.noReturn)) { this.body.makeReturn(); } - code = 'function'; - if (this.isGenerator) { + asyncify = this.isAsync && this.wrap; + code = ''; + if (asyncify) { + code += "" + (utility('async')) + "("; + } + code += 'function'; + if (this.isGenerator || this.isAsync) { code += '*'; } if (this.ctor) { @@ -1963,6 +1976,9 @@ answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab)); } answer.push(this.makeCode('}')); + if (asyncify) { + answer.push(this.makeCode(')')); + } if (this.ctor) { return [this.makeCode(this.tab)].concat(__slice.call(answer)); } @@ -2276,6 +2292,7 @@ } } this.operator = CONVERSIONS[op] || op; + this.originalOperator = op; this.first = first; this.second = second; this.flip = !!flip; @@ -2286,6 +2303,7 @@ '==': '===', '!=': '!==', 'of': 'in', + 'await': 'yield', 'yieldfrom': 'yield*' }; @@ -2298,9 +2316,13 @@ Op.prototype.isSimpleNumber = NO; + Op.prototype.isAwait = function() { + return this.originalOperator === 'await'; + }; + Op.prototype.isYield = function() { var _ref2; - return (_ref2 = this.operator) === 'yield' || _ref2 === 'yield*'; + return (_ref2 = this.originalOperator) === 'yield' || _ref2 === 'yieldfrom'; }; Op.prototype.isUnary = function() { @@ -2387,8 +2409,8 @@ if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) { this.error("cannot increment/decrement \"" + (this.first.unwrapAll().value) + "\""); } - if (this.isYield()) { - return this.compileYield(o); + if (this.isYield() || this.isAwait()) { + return this.compileContinuation(o); } if (this.isUnary()) { return this.compileUnary(o); @@ -2465,12 +2487,12 @@ return this.joinFragmentArrays(parts, ''); }; - Op.prototype.compileYield = function(o) { + Op.prototype.compileContinuation = function(o) { var op, parts; parts = []; op = this.operator; if (o.scope.parent == null) { - this.error('yield statements must occur within a function generator.'); + this.error("" + this.originalOperator + " statements must occur within a function body."); } if (__indexOf.call(Object.keys(this.first), 'expression') >= 0) { if (this.first.expression != null) { @@ -3103,6 +3125,9 @@ })(Base); UTILITIES = { + async: function() { + return "(function(){ var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); }); }; }; function Tracker() { var self = this; this.thenHandle = function(value) { self.result = value; self.tick(); }; this.failHandle = function(value) { self.fail(value); }; this.send = false; this.result = undefined; this.iterator = undefined; this.win = undefined; this.fail = undefined; }; Tracker.prototype = { tick: function() { var next; if (this.send) { next = this.iterator.next(this.result); } else { next = this.iterator.next(); this.send = true; } if (next.done) { this.win(next.value); } else { next.value.then(this.thenHandle, this.failHandle); } } }; return async; }())"; + }, "extends": function() { return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"; }, diff --git a/lib/coffee-script/parser.js b/lib/coffee-script/parser.js index 30a57460ce..1f0bc0f88f 100755 --- a/lib/coffee-script/parser.js +++ b/lib/coffee-script/parser.js @@ -3,9 +3,9 @@ var parser = (function(){ undefined var parser = {trace: function trace() { }, yy: {}, -symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"Return":9,"Comment":10,"STATEMENT":11,"Value":12,"Invocation":13,"Code":14,"Operation":15,"Assign":16,"If":17,"Try":18,"While":19,"For":20,"Switch":21,"Class":22,"Throw":23,"Block":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"?::":69,"Index":70,"INDEX_START":71,"IndexValue":72,"INDEX_END":73,"INDEX_SOAK":74,"Slice":75,"{":76,"AssignList":77,"}":78,"CLASS":79,"EXTENDS":80,"OptFuncExist":81,"Arguments":82,"SUPER":83,"FUNC_EXIST":84,"CALL_START":85,"CALL_END":86,"ArgList":87,"THIS":88,"@":89,"[":90,"]":91,"RangeDots":92,"..":93,"Arg":94,"SimpleArgs":95,"TRY":96,"Catch":97,"FINALLY":98,"CATCH":99,"THROW":100,"(":101,")":102,"WhileSource":103,"WHILE":104,"WHEN":105,"UNTIL":106,"Loop":107,"LOOP":108,"ForBody":109,"FOR":110,"ForStart":111,"ForSource":112,"ForVariables":113,"OWN":114,"ForValue":115,"FORIN":116,"FOROF":117,"BY":118,"SWITCH":119,"Whens":120,"ELSE":121,"When":122,"LEADING_WHEN":123,"IfBlock":124,"IF":125,"POST_IF":126,"UNARY":127,"UNARY_MATH":128,"-":129,"+":130,"YIELD":131,"FROM":132,"--":133,"++":134,"?":135,"MATH":136,"**":137,"SHIFT":138,"COMPARE":139,"LOGIC":140,"RELATION":141,"COMPOUND_ASSIGN":142,"$accept":0,"$end":1}, -terminals_: {2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"UNARY_MATH",129:"-",130:"+",131:"YIELD",132:"FROM",133:"--",134:"++",135:"?",136:"MATH",137:"**",138:"SHIFT",139:"COMPARE",140:"LOGIC",141:"RELATION",142:"COMPOUND_ASSIGN"}, -productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[16,3],[16,4],[16,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[9,2],[9,1],[10,1],[14,5],[14,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[55,1],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[12,1],[12,1],[12,1],[12,1],[12,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[94,1],[95,1],[95,3],[18,2],[18,3],[18,4],[18,5],[97,3],[97,3],[97,2],[23,2],[63,3],[63,5],[103,2],[103,4],[103,2],[103,4],[19,2],[19,2],[19,2],[19,1],[107,2],[107,2],[20,2],[20,2],[20,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[21,5],[21,7],[21,4],[21,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]], +symbols_: {"error":2,"Root":3,"Body":4,"Line":5,"TERMINATOR":6,"Expression":7,"Statement":8,"Return":9,"Comment":10,"STATEMENT":11,"Value":12,"Invocation":13,"Code":14,"Operation":15,"Assign":16,"If":17,"Try":18,"While":19,"For":20,"Switch":21,"Class":22,"Throw":23,"Block":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"?::":69,"Index":70,"INDEX_START":71,"IndexValue":72,"INDEX_END":73,"INDEX_SOAK":74,"Slice":75,"{":76,"AssignList":77,"}":78,"CLASS":79,"EXTENDS":80,"OptFuncExist":81,"Arguments":82,"SUPER":83,"FUNC_EXIST":84,"CALL_START":85,"CALL_END":86,"ArgList":87,"THIS":88,"@":89,"[":90,"]":91,"RangeDots":92,"..":93,"Arg":94,"SimpleArgs":95,"TRY":96,"Catch":97,"FINALLY":98,"CATCH":99,"THROW":100,"(":101,")":102,"WhileSource":103,"WHILE":104,"WHEN":105,"UNTIL":106,"Loop":107,"LOOP":108,"ForBody":109,"FOR":110,"ForStart":111,"ForSource":112,"ForVariables":113,"OWN":114,"ForValue":115,"FORIN":116,"FOROF":117,"BY":118,"SWITCH":119,"Whens":120,"ELSE":121,"When":122,"LEADING_WHEN":123,"IfBlock":124,"IF":125,"POST_IF":126,"UNARY":127,"UNARY_MATH":128,"-":129,"+":130,"YIELD":131,"FROM":132,"AWAIT":133,"--":134,"++":135,"?":136,"MATH":137,"**":138,"SHIFT":139,"COMPARE":140,"LOGIC":141,"RELATION":142,"COMPOUND_ASSIGN":143,"$accept":0,"$end":1}, +terminals_: {2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"UNARY_MATH",129:"-",130:"+",131:"YIELD",132:"FROM",133:"AWAIT",134:"--",135:"++",136:"?",137:"MATH",138:"**",139:"SHIFT",140:"COMPARE",141:"LOGIC",142:"RELATION",143:"COMPOUND_ASSIGN"}, +productions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[16,3],[16,4],[16,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[9,2],[9,1],[10,1],[14,5],[14,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[55,1],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[12,1],[12,1],[12,1],[12,1],[12,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[94,1],[95,1],[95,3],[18,2],[18,3],[18,4],[18,5],[97,3],[97,3],[97,2],[23,2],[63,3],[63,5],[103,2],[103,4],[103,2],[103,4],[19,2],[19,2],[19,2],[19,1],[107,2],[107,2],[20,2],[20,2],[20,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[21,5],[21,7],[21,4],[21,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]], performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$ /**/) { @@ -451,23 +451,23 @@ case 193:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[ break; case 194:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-2].concat($$[$0-1]), $$[$0])); break; -case 195:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0])); +case 195:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); break; -case 196:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0])); +case 196:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0])); break; -case 197:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true)); +case 197:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0])); break; -case 198:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true)); +case 198:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0])); break; -case 199:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1])); +case 199:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true)); break; -case 200:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0])); +case 200:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true)); break; -case 201:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0])); +case 201:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1])); break; -case 202:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +case 202:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0])); break; -case 203:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +case 203:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0])); break; case 204:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); break; @@ -475,7 +475,11 @@ case 205:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[ break; case 206:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); break; -case 207:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { +case 207:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 208:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0])); +break; +case 209:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { if ($$[$0-1].charAt(0) === '!') { return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); } else { @@ -483,18 +487,18 @@ case 207:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () { } }())); break; -case 208:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1])); +case 210:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1])); break; -case 209:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3])); +case 211:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3])); break; -case 210:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2])); +case 212:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2])); break; -case 211:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0])); +case 213:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0])); break; } }, -table: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[3]},{1:[2,2],6:[1,74]},{1:[2,3],6:[2,3],26:[2,3],102:[2,3]},{1:[2,6],6:[2,6],26:[2,6],102:[2,6],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:88,104:[1,65],106:[1,66],109:89,110:[1,68],111:69,126:[1,87]},{1:[2,11],6:[2,11],25:[2,11],26:[2,11],49:[2,11],54:[2,11],57:[2,11],62:91,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],73:[2,11],74:[1,99],78:[2,11],81:90,84:[1,92],85:[2,108],86:[2,11],91:[2,11],93:[2,11],102:[2,11],104:[2,11],105:[2,11],106:[2,11],110:[2,11],118:[2,11],126:[2,11],129:[2,11],130:[2,11],135:[2,11],136:[2,11],137:[2,11],138:[2,11],139:[2,11],140:[2,11],141:[2,11]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:101,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],73:[2,12],74:[1,99],78:[2,12],81:100,84:[1,92],85:[2,108],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],129:[2,12],130:[2,12],135:[2,12],136:[2,12],137:[2,12],138:[2,12],139:[2,12],140:[2,12],141:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],73:[2,13],78:[2,13],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],129:[2,13],130:[2,13],135:[2,13],136:[2,13],137:[2,13],138:[2,13],139:[2,13],140:[2,13],141:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],129:[2,14],130:[2,14],135:[2,14],136:[2,14],137:[2,14],138:[2,14],139:[2,14],140:[2,14],141:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],129:[2,15],130:[2,15],135:[2,15],136:[2,15],137:[2,15],138:[2,15],139:[2,15],140:[2,15],141:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,16],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],129:[2,16],130:[2,16],135:[2,16],136:[2,16],137:[2,16],138:[2,16],139:[2,16],140:[2,16],141:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],129:[2,17],130:[2,17],135:[2,17],136:[2,17],137:[2,17],138:[2,17],139:[2,17],140:[2,17],141:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],129:[2,18],130:[2,18],135:[2,18],136:[2,18],137:[2,18],138:[2,18],139:[2,18],140:[2,18],141:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],129:[2,19],130:[2,19],135:[2,19],136:[2,19],137:[2,19],138:[2,19],139:[2,19],140:[2,19],141:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],129:[2,20],130:[2,20],135:[2,20],136:[2,20],137:[2,20],138:[2,20],139:[2,20],140:[2,20],141:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],129:[2,21],130:[2,21],135:[2,21],136:[2,21],137:[2,21],138:[2,21],139:[2,21],140:[2,21],141:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],129:[2,22],130:[2,22],135:[2,22],136:[2,22],137:[2,22],138:[2,22],139:[2,22],140:[2,22],141:[2,22]},{1:[2,8],6:[2,8],25:[2,8],26:[2,8],49:[2,8],54:[2,8],57:[2,8],73:[2,8],78:[2,8],86:[2,8],91:[2,8],93:[2,8],102:[2,8],104:[2,8],105:[2,8],106:[2,8],110:[2,8],118:[2,8],126:[2,8],129:[2,8],130:[2,8],135:[2,8],136:[2,8],137:[2,8],138:[2,8],139:[2,8],140:[2,8],141:[2,8]},{1:[2,9],6:[2,9],25:[2,9],26:[2,9],49:[2,9],54:[2,9],57:[2,9],73:[2,9],78:[2,9],86:[2,9],91:[2,9],93:[2,9],102:[2,9],104:[2,9],105:[2,9],106:[2,9],110:[2,9],118:[2,9],126:[2,9],129:[2,9],130:[2,9],135:[2,9],136:[2,9],137:[2,9],138:[2,9],139:[2,9],140:[2,9],141:[2,9]},{1:[2,10],6:[2,10],25:[2,10],26:[2,10],49:[2,10],54:[2,10],57:[2,10],73:[2,10],78:[2,10],86:[2,10],91:[2,10],93:[2,10],102:[2,10],104:[2,10],105:[2,10],106:[2,10],110:[2,10],118:[2,10],126:[2,10],129:[2,10],130:[2,10],135:[2,10],136:[2,10],137:[2,10],138:[2,10],139:[2,10],140:[2,10],141:[2,10]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,102],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],129:[2,75],130:[2,75],135:[2,75],136:[2,75],137:[2,75],138:[2,75],139:[2,75],140:[2,75],141:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],129:[2,76],130:[2,76],135:[2,76],136:[2,76],137:[2,76],138:[2,76],139:[2,76],140:[2,76],141:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],129:[2,77],130:[2,77],135:[2,77],136:[2,77],137:[2,77],138:[2,77],139:[2,77],140:[2,77],141:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],129:[2,78],130:[2,78],135:[2,78],136:[2,78],137:[2,78],138:[2,78],139:[2,78],140:[2,78],141:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],129:[2,79],130:[2,79],135:[2,79],136:[2,79],137:[2,79],138:[2,79],139:[2,79],140:[2,79],141:[2,79]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],82:103,84:[2,106],85:[1,104],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],129:[2,106],130:[2,106],135:[2,106],136:[2,106],137:[2,106],138:[2,106],139:[2,106],140:[2,106],141:[2,106]},{6:[2,54],25:[2,54],27:109,28:[1,73],44:110,48:105,49:[2,54],54:[2,54],55:106,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{24:115,25:[1,116]},{7:117,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:119,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:120,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:121,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:123,8:122,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,124],133:[1,34],134:[1,35]},{12:126,13:127,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:128,44:63,58:47,59:48,61:125,63:23,64:24,65:25,76:[1,70],83:[1,26],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{12:126,13:127,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:128,44:63,58:47,59:48,61:129,63:23,64:24,65:25,76:[1,70],83:[1,26],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],80:[1,133],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],129:[2,72],130:[2,72],133:[1,130],134:[1,131],135:[2,72],136:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[2,72],141:[2,72],142:[1,132]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],104:[2,184],105:[2,184],106:[2,184],110:[2,184],118:[2,184],121:[1,134],126:[2,184],129:[2,184],130:[2,184],135:[2,184],136:[2,184],137:[2,184],138:[2,184],139:[2,184],140:[2,184],141:[2,184]},{24:135,25:[1,116]},{24:136,25:[1,116]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],104:[2,151],105:[2,151],106:[2,151],110:[2,151],118:[2,151],126:[2,151],129:[2,151],130:[2,151],135:[2,151],136:[2,151],137:[2,151],138:[2,151],139:[2,151],140:[2,151],141:[2,151]},{24:137,25:[1,116]},{7:138,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,139],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,96],6:[2,96],12:126,13:127,24:140,25:[1,116],26:[2,96],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:128,44:63,49:[2,96],54:[2,96],57:[2,96],58:47,59:48,61:142,63:23,64:24,65:25,73:[2,96],76:[1,70],78:[2,96],80:[1,141],83:[1,26],86:[2,96],88:[1,58],89:[1,59],90:[1,57],91:[2,96],93:[2,96],101:[1,56],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],129:[2,96],130:[2,96],135:[2,96],136:[2,96],137:[2,96],138:[2,96],139:[2,96],140:[2,96],141:[2,96]},{7:143,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,46],6:[2,46],7:144,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,46],26:[2,46],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],49:[2,46],50:28,51:[1,60],52:[1,61],54:[2,46],57:[2,46],58:47,59:48,61:36,63:23,64:24,65:25,73:[2,46],76:[1,70],78:[2,46],79:[1,43],83:[1,26],86:[2,46],88:[1,58],89:[1,59],90:[1,57],91:[2,46],93:[2,46],96:[1,38],100:[1,44],101:[1,56],102:[2,46],103:39,104:[2,46],105:[2,46],106:[2,46],107:40,108:[1,67],109:41,110:[2,46],111:69,118:[2,46],119:[1,42],124:37,125:[1,64],126:[2,46],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[2,46],136:[2,46],137:[2,46],138:[2,46],139:[2,46],140:[2,46],141:[2,46]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],49:[2,47],54:[2,47],57:[2,47],73:[2,47],78:[2,47],86:[2,47],91:[2,47],93:[2,47],102:[2,47],104:[2,47],105:[2,47],106:[2,47],110:[2,47],118:[2,47],126:[2,47],129:[2,47],130:[2,47],135:[2,47],136:[2,47],137:[2,47],138:[2,47],139:[2,47],140:[2,47],141:[2,47]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],129:[2,73],130:[2,73],135:[2,73],136:[2,73],137:[2,73],138:[2,73],139:[2,73],140:[2,73],141:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],129:[2,74],130:[2,74],135:[2,74],136:[2,74],137:[2,74],138:[2,74],139:[2,74],140:[2,74],141:[2,74]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],129:[2,28],130:[2,28],135:[2,28],136:[2,28],137:[2,28],138:[2,28],139:[2,28],140:[2,28],141:[2,28]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],129:[2,29],130:[2,29],135:[2,29],136:[2,29],137:[2,29],138:[2,29],139:[2,29],140:[2,29],141:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],129:[2,30],130:[2,30],135:[2,30],136:[2,30],137:[2,30],138:[2,30],139:[2,30],140:[2,30],141:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],129:[2,31],130:[2,31],135:[2,31],136:[2,31],137:[2,31],138:[2,31],139:[2,31],140:[2,31],141:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],129:[2,32],130:[2,32],135:[2,32],136:[2,32],137:[2,32],138:[2,32],139:[2,32],140:[2,32],141:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],110:[2,33],118:[2,33],126:[2,33],129:[2,33],130:[2,33],135:[2,33],136:[2,33],137:[2,33],138:[2,33],139:[2,33],140:[2,33],141:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],129:[2,34],130:[2,34],135:[2,34],136:[2,34],137:[2,34],138:[2,34],139:[2,34],140:[2,34],141:[2,34]},{4:145,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,146],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:147,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:149,88:[1,58],89:[1,59],90:[1,57],91:[1,148],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],129:[2,112],130:[2,112],135:[2,112],136:[2,112],137:[2,112],138:[2,112],139:[2,112],140:[2,112],141:[2,112]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],27:154,28:[1,73],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],118:[2,113],126:[2,113],129:[2,113],130:[2,113],135:[2,113],136:[2,113],137:[2,113],138:[2,113],139:[2,113],140:[2,113],141:[2,113]},{25:[2,50]},{25:[2,51]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],129:[2,68],130:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68],139:[2,68],140:[2,68],141:[2,68],142:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[2,71],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],129:[2,71],130:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[2,71],139:[2,71],140:[2,71],141:[2,71],142:[2,71]},{7:155,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:156,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:157,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:159,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:158,25:[1,116],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{27:164,28:[1,73],44:165,58:166,59:167,64:160,76:[1,70],89:[1,113],90:[1,57],113:161,114:[1,162],115:163},{112:168,116:[1,169],117:[1,170]},{6:[2,91],10:174,25:[2,91],27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:172,42:173,44:177,46:[1,46],54:[2,91],77:171,78:[2,91],89:[1,113]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],118:[2,26],126:[2,26],129:[2,26],130:[2,26],135:[2,26],136:[2,26],137:[2,26],138:[2,26],139:[2,26],140:[2,26],141:[2,26]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],129:[2,27],130:[2,27],135:[2,27],136:[2,27],137:[2,27],138:[2,27],139:[2,27],140:[2,27],141:[2,27]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],40:[2,25],43:[2,25],49:[2,25],54:[2,25],57:[2,25],66:[2,25],67:[2,25],68:[2,25],69:[2,25],71:[2,25],73:[2,25],74:[2,25],78:[2,25],80:[2,25],84:[2,25],85:[2,25],86:[2,25],91:[2,25],93:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],116:[2,25],117:[2,25],118:[2,25],126:[2,25],129:[2,25],130:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25],138:[2,25],139:[2,25],140:[2,25],141:[2,25],142:[2,25]},{1:[2,5],5:178,6:[2,5],7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[2,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,5],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],104:[2,199],105:[2,199],106:[2,199],110:[2,199],118:[2,199],126:[2,199],129:[2,199],130:[2,199],135:[2,199],136:[2,199],137:[2,199],138:[2,199],139:[2,199],140:[2,199],141:[2,199]},{7:179,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:180,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:181,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:182,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:183,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:184,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:185,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:186,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:187,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],126:[2,150],129:[2,150],130:[2,150],135:[2,150],136:[2,150],137:[2,150],138:[2,150],139:[2,150],140:[2,150],141:[2,150]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],129:[2,155],130:[2,155],135:[2,155],136:[2,155],137:[2,155],138:[2,155],139:[2,155],140:[2,155],141:[2,155]},{7:188,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],129:[2,149],130:[2,149],135:[2,149],136:[2,149],137:[2,149],138:[2,149],139:[2,149],140:[2,149],141:[2,149]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],129:[2,154],130:[2,154],135:[2,154],136:[2,154],137:[2,154],138:[2,154],139:[2,154],140:[2,154],141:[2,154]},{82:189,85:[1,104]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],129:[2,69],130:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69],139:[2,69],140:[2,69],141:[2,69],142:[2,69]},{85:[2,109]},{27:190,28:[1,73]},{27:191,28:[1,73]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],27:192,28:[1,73],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],129:[2,84],130:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84],141:[2,84],142:[2,84]},{27:193,28:[1,73]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],129:[2,85],130:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85],141:[2,85],142:[2,85]},{7:195,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,199],58:47,59:48,61:36,63:23,64:24,65:25,72:194,75:196,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],92:197,93:[1,198],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{70:200,71:[1,98],74:[1,99]},{82:201,85:[1,104]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],129:[2,70],130:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70],139:[2,70],140:[2,70],141:[2,70],142:[2,70]},{6:[1,203],7:202,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,204],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],49:[2,107],54:[2,107],57:[2,107],66:[2,107],67:[2,107],68:[2,107],69:[2,107],71:[2,107],73:[2,107],74:[2,107],78:[2,107],84:[2,107],85:[2,107],86:[2,107],91:[2,107],93:[2,107],102:[2,107],104:[2,107],105:[2,107],106:[2,107],110:[2,107],118:[2,107],126:[2,107],129:[2,107],130:[2,107],135:[2,107],136:[2,107],137:[2,107],138:[2,107],139:[2,107],140:[2,107],141:[2,107]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],86:[1,205],87:206,88:[1,58],89:[1,59],90:[1,57],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,52],25:[2,52],49:[1,208],53:210,54:[1,209]},{6:[2,55],25:[2,55],26:[2,55],49:[2,55],54:[2,55]},{6:[2,59],25:[2,59],26:[2,59],40:[1,212],49:[2,59],54:[2,59],57:[1,211]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:154,28:[1,73]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:149,88:[1,58],89:[1,59],90:[1,57],91:[1,148],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],73:[2,49],78:[2,49],86:[2,49],91:[2,49],93:[2,49],102:[2,49],104:[2,49],105:[2,49],106:[2,49],110:[2,49],118:[2,49],126:[2,49],129:[2,49],130:[2,49],135:[2,49],136:[2,49],137:[2,49],138:[2,49],139:[2,49],140:[2,49],141:[2,49]},{4:214,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,213],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:85,104:[2,188],105:[2,188],106:[2,188],109:86,110:[2,188],111:69,118:[2,188],126:[2,188],129:[2,188],130:[2,188],135:[1,75],136:[2,188],137:[2,188],138:[2,188],139:[2,188],140:[2,188],141:[2,188]},{103:88,104:[1,65],106:[1,66],109:89,110:[1,68],111:69,126:[1,87]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],73:[2,189],78:[2,189],86:[2,189],91:[2,189],93:[2,189],102:[2,189],103:85,104:[2,189],105:[2,189],106:[2,189],109:86,110:[2,189],111:69,118:[2,189],126:[2,189],129:[2,189],130:[2,189],135:[1,75],136:[2,189],137:[1,79],138:[2,189],139:[2,189],140:[2,189],141:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],73:[2,190],78:[2,190],86:[2,190],91:[2,190],93:[2,190],102:[2,190],103:85,104:[2,190],105:[2,190],106:[2,190],109:86,110:[2,190],111:69,118:[2,190],126:[2,190],129:[2,190],130:[2,190],135:[1,75],136:[2,190],137:[1,79],138:[2,190],139:[2,190],140:[2,190],141:[2,190]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],73:[2,191],78:[2,191],86:[2,191],91:[2,191],93:[2,191],102:[2,191],103:85,104:[2,191],105:[2,191],106:[2,191],109:86,110:[2,191],111:69,118:[2,191],126:[2,191],129:[2,191],130:[2,191],135:[1,75],136:[2,191],137:[1,79],138:[2,191],139:[2,191],140:[2,191],141:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],73:[2,192],78:[2,192],86:[2,192],91:[2,192],93:[2,192],102:[2,192],103:88,104:[2,192],105:[2,192],106:[2,192],109:89,110:[2,192],111:69,118:[2,192],126:[2,192],129:[2,192],130:[2,192],135:[2,192],136:[2,192],137:[2,192],138:[2,192],139:[2,192],140:[2,192],141:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],73:[2,193],78:[2,193],86:[2,193],91:[2,193],93:[2,193],102:[2,193],103:85,104:[2,193],105:[2,193],106:[2,193],109:86,110:[2,193],111:69,118:[2,193],126:[2,193],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:215,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,195],74:[2,72],78:[2,195],84:[2,72],85:[2,72],86:[2,195],91:[2,195],93:[2,195],102:[2,195],104:[2,195],105:[2,195],106:[2,195],110:[2,195],118:[2,195],126:[2,195],129:[2,195],130:[2,195],135:[2,195],136:[2,195],137:[2,195],138:[2,195],139:[2,195],140:[2,195],141:[2,195]},{62:91,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],74:[1,99],81:90,84:[1,92],85:[2,108]},{62:101,66:[1,93],67:[1,94],68:[1,95],69:[1,96],70:97,71:[1,98],74:[1,99],81:100,84:[1,92],85:[2,108]},{66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],74:[2,75],84:[2,75],85:[2,75]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,196],74:[2,72],78:[2,196],84:[2,72],85:[2,72],86:[2,196],91:[2,196],93:[2,196],102:[2,196],104:[2,196],105:[2,196],106:[2,196],110:[2,196],118:[2,196],126:[2,196],129:[2,196],130:[2,196],135:[2,196],136:[2,196],137:[2,196],138:[2,196],139:[2,196],140:[2,196],141:[2,196]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],73:[2,197],78:[2,197],86:[2,197],91:[2,197],93:[2,197],102:[2,197],104:[2,197],105:[2,197],106:[2,197],110:[2,197],118:[2,197],126:[2,197],129:[2,197],130:[2,197],135:[2,197],136:[2,197],137:[2,197],138:[2,197],139:[2,197],140:[2,197],141:[2,197]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],73:[2,198],78:[2,198],86:[2,198],91:[2,198],93:[2,198],102:[2,198],104:[2,198],105:[2,198],106:[2,198],110:[2,198],118:[2,198],126:[2,198],129:[2,198],130:[2,198],135:[2,198],136:[2,198],137:[2,198],138:[2,198],139:[2,198],140:[2,198],141:[2,198]},{6:[1,218],7:216,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,217],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:219,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{24:220,25:[1,116],125:[1,221]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],97:222,98:[1,223],99:[1,224],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],129:[2,134],130:[2,134],135:[2,134],136:[2,134],137:[2,134],138:[2,134],139:[2,134],140:[2,134],141:[2,134]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],129:[2,148],130:[2,148],135:[2,148],136:[2,148],137:[2,148],138:[2,148],139:[2,148],140:[2,148],141:[2,148]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],129:[2,156],130:[2,156],135:[2,156],136:[2,156],137:[2,156],138:[2,156],139:[2,156],140:[2,156],141:[2,156]},{25:[1,225],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{120:226,122:227,123:[1,228]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],104:[2,97],105:[2,97],106:[2,97],110:[2,97],118:[2,97],126:[2,97],129:[2,97],130:[2,97],135:[2,97],136:[2,97],137:[2,97],138:[2,97],139:[2,97],140:[2,97],141:[2,97]},{7:229,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,100],6:[2,100],24:230,25:[1,116],26:[2,100],49:[2,100],54:[2,100],57:[2,100],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,100],74:[2,72],78:[2,100],80:[1,231],84:[2,72],85:[2,72],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],129:[2,100],130:[2,100],135:[2,100],136:[2,100],137:[2,100],138:[2,100],139:[2,100],140:[2,100],141:[2,100]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],73:[2,141],78:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],103:85,104:[2,141],105:[2,141],106:[2,141],109:86,110:[2,141],111:69,118:[2,141],126:[2,141],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],49:[2,45],54:[2,45],57:[2,45],73:[2,45],78:[2,45],86:[2,45],91:[2,45],93:[2,45],102:[2,45],103:85,104:[2,45],105:[2,45],106:[2,45],109:86,110:[2,45],111:69,118:[2,45],126:[2,45],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,74],102:[1,232]},{4:233,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,129],25:[2,129],54:[2,129],57:[1,235],91:[2,129],92:234,93:[1,198],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],129:[2,115],130:[2,115],135:[2,115],136:[2,115],137:[2,115],138:[2,115],139:[2,115],140:[2,115],141:[2,115]},{6:[2,52],25:[2,52],53:236,54:[1,237],91:[2,52]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:238,88:[1,58],89:[1,59],90:[1,57],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,130],25:[2,130],26:[2,130],54:[2,130],86:[2,130],91:[2,130]},{6:[2,131],25:[2,131],26:[2,131],54:[2,131],86:[2,131],91:[2,131]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],43:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],80:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],129:[2,114],130:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114],138:[2,114],139:[2,114],140:[2,114],141:[2,114],142:[2,114]},{24:239,25:[1,116],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],73:[2,144],78:[2,144],86:[2,144],91:[2,144],93:[2,144],102:[2,144],103:85,104:[1,65],105:[1,240],106:[1,66],109:86,110:[1,68],111:69,118:[2,144],126:[2,144],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],73:[2,146],78:[2,146],86:[2,146],91:[2,146],93:[2,146],102:[2,146],103:85,104:[1,65],105:[1,241],106:[1,66],109:86,110:[1,68],111:69,118:[2,146],126:[2,146],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],104:[2,152],105:[2,152],106:[2,152],110:[2,152],118:[2,152],126:[2,152],129:[2,152],130:[2,152],135:[2,152],136:[2,152],137:[2,152],138:[2,152],139:[2,152],140:[2,152],141:[2,152]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],103:85,104:[1,65],105:[2,153],106:[1,66],109:86,110:[1,68],111:69,118:[2,153],126:[2,153],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],49:[2,157],54:[2,157],57:[2,157],73:[2,157],78:[2,157],86:[2,157],91:[2,157],93:[2,157],102:[2,157],104:[2,157],105:[2,157],106:[2,157],110:[2,157],118:[2,157],126:[2,157],129:[2,157],130:[2,157],135:[2,157],136:[2,157],137:[2,157],138:[2,157],139:[2,157],140:[2,157],141:[2,157]},{116:[2,159],117:[2,159]},{27:164,28:[1,73],44:165,58:166,59:167,76:[1,70],89:[1,113],90:[1,114],113:242,115:163},{54:[1,243],116:[2,165],117:[2,165]},{54:[2,161],116:[2,161],117:[2,161]},{54:[2,162],116:[2,162],117:[2,162]},{54:[2,163],116:[2,163],117:[2,163]},{54:[2,164],116:[2,164],117:[2,164]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],49:[2,158],54:[2,158],57:[2,158],73:[2,158],78:[2,158],86:[2,158],91:[2,158],93:[2,158],102:[2,158],104:[2,158],105:[2,158],106:[2,158],110:[2,158],118:[2,158],126:[2,158],129:[2,158],130:[2,158],135:[2,158],136:[2,158],137:[2,158],138:[2,158],139:[2,158],140:[2,158],141:[2,158]},{7:244,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:245,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,52],25:[2,52],53:246,54:[1,247],78:[2,52]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,38],25:[2,38],26:[2,38],43:[1,248],54:[2,38],78:[2,38]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],78:[2,41]},{6:[2,42],25:[2,42],26:[2,42],43:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],103:85,104:[2,200],105:[2,200],106:[2,200],109:86,110:[2,200],111:69,118:[2,200],126:[2,200],129:[2,200],130:[2,200],135:[1,75],136:[1,78],137:[1,79],138:[2,200],139:[2,200],140:[2,200],141:[2,200]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],103:85,104:[2,201],105:[2,201],106:[2,201],109:86,110:[2,201],111:69,118:[2,201],126:[2,201],129:[2,201],130:[2,201],135:[1,75],136:[1,78],137:[1,79],138:[2,201],139:[2,201],140:[2,201],141:[2,201]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],103:85,104:[2,202],105:[2,202],106:[2,202],109:86,110:[2,202],111:69,118:[2,202],126:[2,202],129:[2,202],130:[2,202],135:[1,75],136:[2,202],137:[1,79],138:[2,202],139:[2,202],140:[2,202],141:[2,202]},{1:[2,203],6:[2,203],25:[2,203],26:[2,203],49:[2,203],54:[2,203],57:[2,203],73:[2,203],78:[2,203],86:[2,203],91:[2,203],93:[2,203],102:[2,203],103:85,104:[2,203],105:[2,203],106:[2,203],109:86,110:[2,203],111:69,118:[2,203],126:[2,203],129:[2,203],130:[2,203],135:[1,75],136:[2,203],137:[1,79],138:[2,203],139:[2,203],140:[2,203],141:[2,203]},{1:[2,204],6:[2,204],25:[2,204],26:[2,204],49:[2,204],54:[2,204],57:[2,204],73:[2,204],78:[2,204],86:[2,204],91:[2,204],93:[2,204],102:[2,204],103:85,104:[2,204],105:[2,204],106:[2,204],109:86,110:[2,204],111:69,118:[2,204],126:[2,204],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[2,204],139:[2,204],140:[2,204],141:[2,204]},{1:[2,205],6:[2,205],25:[2,205],26:[2,205],49:[2,205],54:[2,205],57:[2,205],73:[2,205],78:[2,205],86:[2,205],91:[2,205],93:[2,205],102:[2,205],103:85,104:[2,205],105:[2,205],106:[2,205],109:86,110:[2,205],111:69,118:[2,205],126:[2,205],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[2,205],140:[2,205],141:[1,83]},{1:[2,206],6:[2,206],25:[2,206],26:[2,206],49:[2,206],54:[2,206],57:[2,206],73:[2,206],78:[2,206],86:[2,206],91:[2,206],93:[2,206],102:[2,206],103:85,104:[2,206],105:[2,206],106:[2,206],109:86,110:[2,206],111:69,118:[2,206],126:[2,206],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[2,206],141:[1,83]},{1:[2,207],6:[2,207],25:[2,207],26:[2,207],49:[2,207],54:[2,207],57:[2,207],73:[2,207],78:[2,207],86:[2,207],91:[2,207],93:[2,207],102:[2,207],103:85,104:[2,207],105:[2,207],106:[2,207],109:86,110:[2,207],111:69,118:[2,207],126:[2,207],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[2,207],140:[2,207],141:[2,207]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:85,104:[1,65],105:[2,187],106:[1,66],109:86,110:[1,68],111:69,118:[2,187],126:[2,187],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:85,104:[1,65],105:[2,186],106:[1,66],109:86,110:[1,68],111:69,118:[2,186],126:[2,186],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],129:[2,104],130:[2,104],135:[2,104],136:[2,104],137:[2,104],138:[2,104],139:[2,104],140:[2,104],141:[2,104]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],129:[2,80],130:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80],139:[2,80],140:[2,80],141:[2,80],142:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],129:[2,81],130:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81],139:[2,81],140:[2,81],141:[2,81],142:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],129:[2,82],130:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82],139:[2,82],140:[2,82],141:[2,82],142:[2,82]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],129:[2,83],130:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83],139:[2,83],140:[2,83],141:[2,83],142:[2,83]},{73:[1,249]},{57:[1,199],73:[2,88],92:250,93:[1,198],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{73:[2,89]},{7:251,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,73:[2,123],76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{11:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117],133:[2,117],134:[2,117]},{11:[2,118],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],73:[2,118],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],133:[2,118],134:[2,118]},{1:[2,87],6:[2,87],25:[2,87],26:[2,87],40:[2,87],49:[2,87],54:[2,87],57:[2,87],66:[2,87],67:[2,87],68:[2,87],69:[2,87],71:[2,87],73:[2,87],74:[2,87],78:[2,87],80:[2,87],84:[2,87],85:[2,87],86:[2,87],91:[2,87],93:[2,87],102:[2,87],104:[2,87],105:[2,87],106:[2,87],110:[2,87],118:[2,87],126:[2,87],129:[2,87],130:[2,87],133:[2,87],134:[2,87],135:[2,87],136:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87],141:[2,87],142:[2,87]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],84:[2,105],85:[2,105],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],129:[2,105],130:[2,105],135:[2,105],136:[2,105],137:[2,105],138:[2,105],139:[2,105],140:[2,105],141:[2,105]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],73:[2,35],78:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],103:85,104:[2,35],105:[2,35],106:[2,35],109:86,110:[2,35],111:69,118:[2,35],126:[2,35],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:252,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:253,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],129:[2,110],130:[2,110],135:[2,110],136:[2,110],137:[2,110],138:[2,110],139:[2,110],140:[2,110],141:[2,110]},{6:[2,52],25:[2,52],53:254,54:[1,237],86:[2,52]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],57:[1,255],86:[2,129],91:[2,129],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{50:256,51:[1,60],52:[1,61]},{6:[2,53],25:[2,53],26:[2,53],27:109,28:[1,73],44:110,55:257,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{6:[1,258],25:[1,259]},{6:[2,60],25:[2,60],26:[2,60],49:[2,60],54:[2,60]},{7:260,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,23],91:[2,23],93:[2,23],98:[2,23],99:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],121:[2,23],123:[2,23],126:[2,23],129:[2,23],130:[2,23],135:[2,23],136:[2,23],137:[2,23],138:[2,23],139:[2,23],140:[2,23],141:[2,23]},{6:[1,74],26:[1,261]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],103:85,104:[2,194],105:[2,194],106:[2,194],109:86,110:[2,194],111:69,118:[2,194],126:[2,194],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,208],6:[2,208],25:[2,208],26:[2,208],49:[2,208],54:[2,208],57:[2,208],73:[2,208],78:[2,208],86:[2,208],91:[2,208],93:[2,208],102:[2,208],103:85,104:[2,208],105:[2,208],106:[2,208],109:86,110:[2,208],111:69,118:[2,208],126:[2,208],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:262,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:263,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,211],6:[2,211],25:[2,211],26:[2,211],49:[2,211],54:[2,211],57:[2,211],73:[2,211],78:[2,211],86:[2,211],91:[2,211],93:[2,211],102:[2,211],103:85,104:[2,211],105:[2,211],106:[2,211],109:86,110:[2,211],111:69,118:[2,211],126:[2,211],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185],78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],104:[2,185],105:[2,185],106:[2,185],110:[2,185],118:[2,185],126:[2,185],129:[2,185],130:[2,185],135:[2,185],136:[2,185],137:[2,185],138:[2,185],139:[2,185],140:[2,185],141:[2,185]},{7:264,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],73:[2,135],78:[2,135],86:[2,135],91:[2,135],93:[2,135],98:[1,265],102:[2,135],104:[2,135],105:[2,135],106:[2,135],110:[2,135],118:[2,135],126:[2,135],129:[2,135],130:[2,135],135:[2,135],136:[2,135],137:[2,135],138:[2,135],139:[2,135],140:[2,135],141:[2,135]},{24:266,25:[1,116]},{24:269,25:[1,116],27:267,28:[1,73],59:268,76:[1,70]},{120:270,122:227,123:[1,228]},{26:[1,271],121:[1,272],122:273,123:[1,228]},{26:[2,178],121:[2,178],123:[2,178]},{7:275,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],95:274,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,98],6:[2,98],24:276,25:[1,116],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],103:85,104:[1,65],105:[2,98],106:[1,66],109:86,110:[1,68],111:69,118:[2,98],126:[2,98],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],104:[2,101],105:[2,101],106:[2,101],110:[2,101],118:[2,101],126:[2,101],129:[2,101],130:[2,101],135:[2,101],136:[2,101],137:[2,101],138:[2,101],139:[2,101],140:[2,101],141:[2,101]},{7:277,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],66:[2,142],67:[2,142],68:[2,142],69:[2,142],71:[2,142],73:[2,142],74:[2,142],78:[2,142],84:[2,142],85:[2,142],86:[2,142],91:[2,142],93:[2,142],102:[2,142],104:[2,142],105:[2,142],106:[2,142],110:[2,142],118:[2,142],126:[2,142],129:[2,142],130:[2,142],135:[2,142],136:[2,142],137:[2,142],138:[2,142],139:[2,142],140:[2,142],141:[2,142]},{6:[1,74],26:[1,278]},{7:279,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,67],11:[2,118],25:[2,67],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],54:[2,67],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],91:[2,67],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],133:[2,118],134:[2,118]},{6:[1,281],25:[1,282],91:[1,280]},{6:[2,53],7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,53],26:[2,53],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],86:[2,53],88:[1,58],89:[1,59],90:[1,57],91:[2,53],94:283,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,52],25:[2,52],26:[2,52],53:284,54:[1,237]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],73:[2,182],78:[2,182],86:[2,182],91:[2,182],93:[2,182],102:[2,182],104:[2,182],105:[2,182],106:[2,182],110:[2,182],118:[2,182],121:[2,182],126:[2,182],129:[2,182],130:[2,182],135:[2,182],136:[2,182],137:[2,182],138:[2,182],139:[2,182],140:[2,182],141:[2,182]},{7:285,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:286,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{116:[2,160],117:[2,160]},{27:164,28:[1,73],44:165,58:166,59:167,76:[1,70],89:[1,113],90:[1,114],115:287},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],73:[2,167],78:[2,167],86:[2,167],91:[2,167],93:[2,167],102:[2,167],103:85,104:[2,167],105:[1,288],106:[2,167],109:86,110:[2,167],111:69,118:[1,289],126:[2,167],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],73:[2,168],78:[2,168],86:[2,168],91:[2,168],93:[2,168],102:[2,168],103:85,104:[2,168],105:[1,290],106:[2,168],109:86,110:[2,168],111:69,118:[2,168],126:[2,168],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,292],25:[1,293],78:[1,291]},{6:[2,53],10:174,25:[2,53],26:[2,53],27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:294,42:173,44:177,46:[1,46],78:[2,53],89:[1,113]},{7:295,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,296],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],69:[2,86],71:[2,86],73:[2,86],74:[2,86],78:[2,86],80:[2,86],84:[2,86],85:[2,86],86:[2,86],91:[2,86],93:[2,86],102:[2,86],104:[2,86],105:[2,86],106:[2,86],110:[2,86],118:[2,86],126:[2,86],129:[2,86],130:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86],141:[2,86],142:[2,86]},{7:297,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,73:[2,121],76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{73:[2,122],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:85,104:[2,36],105:[2,36],106:[2,36],109:86,110:[2,36],111:69,118:[2,36],126:[2,36],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{26:[1,298],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,281],25:[1,282],86:[1,299]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],86:[2,67],91:[2,67]},{24:300,25:[1,116]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{27:109,28:[1,73],44:110,55:301,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{6:[2,54],25:[2,54],26:[2,54],27:109,28:[1,73],44:110,48:302,54:[2,54],55:106,56:107,57:[1,108],58:111,59:112,76:[1,70],89:[1,113],90:[1,114]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],129:[2,24],130:[2,24],135:[2,24],136:[2,24],137:[2,24],138:[2,24],139:[2,24],140:[2,24],141:[2,24]},{26:[1,303],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,210],6:[2,210],25:[2,210],26:[2,210],49:[2,210],54:[2,210],57:[2,210],73:[2,210],78:[2,210],86:[2,210],91:[2,210],93:[2,210],102:[2,210],103:85,104:[2,210],105:[2,210],106:[2,210],109:86,110:[2,210],111:69,118:[2,210],126:[2,210],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{24:304,25:[1,116],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{24:305,25:[1,116]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],73:[2,136],78:[2,136],86:[2,136],91:[2,136],93:[2,136],102:[2,136],104:[2,136],105:[2,136],106:[2,136],110:[2,136],118:[2,136],126:[2,136],129:[2,136],130:[2,136],135:[2,136],136:[2,136],137:[2,136],138:[2,136],139:[2,136],140:[2,136],141:[2,136]},{24:306,25:[1,116]},{24:307,25:[1,116]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],73:[2,140],78:[2,140],86:[2,140],91:[2,140],93:[2,140],98:[2,140],102:[2,140],104:[2,140],105:[2,140],106:[2,140],110:[2,140],118:[2,140],126:[2,140],129:[2,140],130:[2,140],135:[2,140],136:[2,140],137:[2,140],138:[2,140],139:[2,140],140:[2,140],141:[2,140]},{26:[1,308],121:[1,309],122:273,123:[1,228]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],49:[2,176],54:[2,176],57:[2,176],73:[2,176],78:[2,176],86:[2,176],91:[2,176],93:[2,176],102:[2,176],104:[2,176],105:[2,176],106:[2,176],110:[2,176],118:[2,176],126:[2,176],129:[2,176],130:[2,176],135:[2,176],136:[2,176],137:[2,176],138:[2,176],139:[2,176],140:[2,176],141:[2,176]},{24:310,25:[1,116]},{26:[2,179],121:[2,179],123:[2,179]},{24:311,25:[1,116],54:[1,312]},{25:[2,132],54:[2,132],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],49:[2,99],54:[2,99],57:[2,99],73:[2,99],78:[2,99],86:[2,99],91:[2,99],93:[2,99],102:[2,99],104:[2,99],105:[2,99],106:[2,99],110:[2,99],118:[2,99],126:[2,99],129:[2,99],130:[2,99],135:[2,99],136:[2,99],137:[2,99],138:[2,99],139:[2,99],140:[2,99],141:[2,99]},{1:[2,102],6:[2,102],24:313,25:[1,116],26:[2,102],49:[2,102],54:[2,102],57:[2,102],73:[2,102],78:[2,102],86:[2,102],91:[2,102],93:[2,102],102:[2,102],103:85,104:[1,65],105:[2,102],106:[1,66],109:86,110:[1,68],111:69,118:[2,102],126:[2,102],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{102:[1,314]},{91:[1,315],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,116],6:[2,116],25:[2,116],26:[2,116],40:[2,116],49:[2,116],54:[2,116],57:[2,116],66:[2,116],67:[2,116],68:[2,116],69:[2,116],71:[2,116],73:[2,116],74:[2,116],78:[2,116],84:[2,116],85:[2,116],86:[2,116],91:[2,116],93:[2,116],102:[2,116],104:[2,116],105:[2,116],106:[2,116],110:[2,116],116:[2,116],117:[2,116],118:[2,116],126:[2,116],129:[2,116],130:[2,116],135:[2,116],136:[2,116],137:[2,116],138:[2,116],139:[2,116],140:[2,116],141:[2,116]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],94:316,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:207,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,151],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],57:[1,153],58:47,59:48,60:152,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],87:317,88:[1,58],89:[1,59],90:[1,57],94:150,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],86:[2,125],91:[2,125]},{6:[1,281],25:[1,282],26:[1,318]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:85,104:[1,65],105:[2,145],106:[1,66],109:86,110:[1,68],111:69,118:[2,145],126:[2,145],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,147],103:85,104:[1,65],105:[2,147],106:[1,66],109:86,110:[1,68],111:69,118:[2,147],126:[2,147],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{116:[2,166],117:[2,166]},{7:319,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:320,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:321,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,90],6:[2,90],25:[2,90],26:[2,90],40:[2,90],49:[2,90],54:[2,90],57:[2,90],66:[2,90],67:[2,90],68:[2,90],69:[2,90],71:[2,90],73:[2,90],74:[2,90],78:[2,90],84:[2,90],85:[2,90],86:[2,90],91:[2,90],93:[2,90],102:[2,90],104:[2,90],105:[2,90],106:[2,90],110:[2,90],116:[2,90],117:[2,90],118:[2,90],126:[2,90],129:[2,90],130:[2,90],135:[2,90],136:[2,90],137:[2,90],138:[2,90],139:[2,90],140:[2,90],141:[2,90]},{10:174,27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:322,42:173,44:177,46:[1,46],89:[1,113]},{6:[2,91],10:174,25:[2,91],26:[2,91],27:175,28:[1,73],29:176,30:[1,71],31:[1,72],41:172,42:173,44:177,46:[1,46],54:[2,91],77:323,89:[1,113]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],78:[2,93]},{6:[2,39],25:[2,39],26:[2,39],54:[2,39],78:[2,39],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{7:324,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{73:[2,120],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],73:[2,37],78:[2,37],86:[2,37],91:[2,37],93:[2,37],102:[2,37],104:[2,37],105:[2,37],106:[2,37],110:[2,37],118:[2,37],126:[2,37],129:[2,37],130:[2,37],135:[2,37],136:[2,37],137:[2,37],138:[2,37],139:[2,37],140:[2,37],141:[2,37]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],69:[2,111],71:[2,111],73:[2,111],74:[2,111],78:[2,111],84:[2,111],85:[2,111],86:[2,111],91:[2,111],93:[2,111],102:[2,111],104:[2,111],105:[2,111],106:[2,111],110:[2,111],118:[2,111],126:[2,111],129:[2,111],130:[2,111],135:[2,111],136:[2,111],137:[2,111],138:[2,111],139:[2,111],140:[2,111],141:[2,111]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],49:[2,48],54:[2,48],57:[2,48],73:[2,48],78:[2,48],86:[2,48],91:[2,48],93:[2,48],102:[2,48],104:[2,48],105:[2,48],106:[2,48],110:[2,48],118:[2,48],126:[2,48],129:[2,48],130:[2,48],135:[2,48],136:[2,48],137:[2,48],138:[2,48],139:[2,48],140:[2,48],141:[2,48]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{6:[2,52],25:[2,52],26:[2,52],53:325,54:[1,209]},{1:[2,209],6:[2,209],25:[2,209],26:[2,209],49:[2,209],54:[2,209],57:[2,209],73:[2,209],78:[2,209],86:[2,209],91:[2,209],93:[2,209],102:[2,209],104:[2,209],105:[2,209],106:[2,209],110:[2,209],118:[2,209],126:[2,209],129:[2,209],130:[2,209],135:[2,209],136:[2,209],137:[2,209],138:[2,209],139:[2,209],140:[2,209],141:[2,209]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],121:[2,183],126:[2,183],129:[2,183],130:[2,183],135:[2,183],136:[2,183],137:[2,183],138:[2,183],139:[2,183],140:[2,183],141:[2,183]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],73:[2,137],78:[2,137],86:[2,137],91:[2,137],93:[2,137],102:[2,137],104:[2,137],105:[2,137],106:[2,137],110:[2,137],118:[2,137],126:[2,137],129:[2,137],130:[2,137],135:[2,137],136:[2,137],137:[2,137],138:[2,137],139:[2,137],140:[2,137],141:[2,137]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],73:[2,138],78:[2,138],86:[2,138],91:[2,138],93:[2,138],98:[2,138],102:[2,138],104:[2,138],105:[2,138],106:[2,138],110:[2,138],118:[2,138],126:[2,138],129:[2,138],130:[2,138],135:[2,138],136:[2,138],137:[2,138],138:[2,138],139:[2,138],140:[2,138],141:[2,138]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],73:[2,139],78:[2,139],86:[2,139],91:[2,139],93:[2,139],98:[2,139],102:[2,139],104:[2,139],105:[2,139],106:[2,139],110:[2,139],118:[2,139],126:[2,139],129:[2,139],130:[2,139],135:[2,139],136:[2,139],137:[2,139],138:[2,139],139:[2,139],140:[2,139],141:[2,139]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],49:[2,174],54:[2,174],57:[2,174],73:[2,174],78:[2,174],86:[2,174],91:[2,174],93:[2,174],102:[2,174],104:[2,174],105:[2,174],106:[2,174],110:[2,174],118:[2,174],126:[2,174],129:[2,174],130:[2,174],135:[2,174],136:[2,174],137:[2,174],138:[2,174],139:[2,174],140:[2,174],141:[2,174]},{24:326,25:[1,116]},{26:[1,327]},{6:[1,328],26:[2,180],121:[2,180],123:[2,180]},{7:329,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],73:[2,103],78:[2,103],86:[2,103],91:[2,103],93:[2,103],102:[2,103],104:[2,103],105:[2,103],106:[2,103],110:[2,103],118:[2,103],126:[2,103],129:[2,103],130:[2,103],135:[2,103],136:[2,103],137:[2,103],138:[2,103],139:[2,103],140:[2,103],141:[2,103]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],66:[2,143],67:[2,143],68:[2,143],69:[2,143],71:[2,143],73:[2,143],74:[2,143],78:[2,143],84:[2,143],85:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],104:[2,143],105:[2,143],106:[2,143],110:[2,143],118:[2,143],126:[2,143],129:[2,143],130:[2,143],135:[2,143],136:[2,143],137:[2,143],138:[2,143],139:[2,143],140:[2,143],141:[2,143]},{1:[2,119],6:[2,119],25:[2,119],26:[2,119],49:[2,119],54:[2,119],57:[2,119],66:[2,119],67:[2,119],68:[2,119],69:[2,119],71:[2,119],73:[2,119],74:[2,119],78:[2,119],84:[2,119],85:[2,119],86:[2,119],91:[2,119],93:[2,119],102:[2,119],104:[2,119],105:[2,119],106:[2,119],110:[2,119],118:[2,119],126:[2,119],129:[2,119],130:[2,119],135:[2,119],136:[2,119],137:[2,119],138:[2,119],139:[2,119],140:[2,119],141:[2,119]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],86:[2,126],91:[2,126]},{6:[2,52],25:[2,52],26:[2,52],53:330,54:[1,237]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],86:[2,127],91:[2,127]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],73:[2,169],78:[2,169],86:[2,169],91:[2,169],93:[2,169],102:[2,169],103:85,104:[2,169],105:[2,169],106:[2,169],109:86,110:[2,169],111:69,118:[1,331],126:[2,169],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],73:[2,171],78:[2,171],86:[2,171],91:[2,171],93:[2,171],102:[2,171],103:85,104:[2,171],105:[1,332],106:[2,171],109:86,110:[2,171],111:69,118:[2,171],126:[2,171],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],73:[2,170],78:[2,170],86:[2,170],91:[2,170],93:[2,170],102:[2,170],103:85,104:[2,170],105:[2,170],106:[2,170],109:86,110:[2,170],111:69,118:[2,170],126:[2,170],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],78:[2,94]},{6:[2,52],25:[2,52],26:[2,52],53:333,54:[1,247]},{26:[1,334],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,258],25:[1,259],26:[1,335]},{26:[1,336]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],49:[2,177],54:[2,177],57:[2,177],73:[2,177],78:[2,177],86:[2,177],91:[2,177],93:[2,177],102:[2,177],104:[2,177],105:[2,177],106:[2,177],110:[2,177],118:[2,177],126:[2,177],129:[2,177],130:[2,177],135:[2,177],136:[2,177],137:[2,177],138:[2,177],139:[2,177],140:[2,177],141:[2,177]},{26:[2,181],121:[2,181],123:[2,181]},{25:[2,133],54:[2,133],103:85,104:[1,65],106:[1,66],109:86,110:[1,68],111:69,126:[1,84],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[1,281],25:[1,282],26:[1,337]},{7:338,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{7:339,8:118,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:22,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:21,44:63,45:[1,45],46:[1,46],47:[1,27],50:28,51:[1,60],52:[1,61],58:47,59:48,61:36,63:23,64:24,65:25,76:[1,70],79:[1,43],83:[1,26],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35]},{6:[1,292],25:[1,293],26:[1,340]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],78:[2,40]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],49:[2,175],54:[2,175],57:[2,175],73:[2,175],78:[2,175],86:[2,175],91:[2,175],93:[2,175],102:[2,175],104:[2,175],105:[2,175],106:[2,175],110:[2,175],118:[2,175],126:[2,175],129:[2,175],130:[2,175],135:[2,175],136:[2,175],137:[2,175],138:[2,175],139:[2,175],140:[2,175],141:[2,175]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],86:[2,128],91:[2,128]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],73:[2,172],78:[2,172],86:[2,172],91:[2,172],93:[2,172],102:[2,172],103:85,104:[2,172],105:[2,172],106:[2,172],109:86,110:[2,172],111:69,118:[2,172],126:[2,172],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],73:[2,173],78:[2,173],86:[2,173],91:[2,173],93:[2,173],102:[2,173],103:85,104:[2,173],105:[2,173],106:[2,173],109:86,110:[2,173],111:69,118:[2,173],126:[2,173],129:[1,77],130:[1,76],135:[1,75],136:[1,78],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83]},{6:[2,95],25:[2,95],26:[2,95],54:[2,95],78:[2,95]}], -defaultActions: {60:[2,50],61:[2,51],92:[2,109],196:[2,89]}, +table: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[3]},{1:[2,2],6:[1,75]},{1:[2,3],6:[2,3],26:[2,3],102:[2,3]},{1:[2,6],6:[2,6],26:[2,6],102:[2,6],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:89,104:[1,66],106:[1,67],109:90,110:[1,69],111:70,126:[1,88]},{1:[2,11],6:[2,11],25:[2,11],26:[2,11],49:[2,11],54:[2,11],57:[2,11],62:92,66:[1,94],67:[1,95],68:[1,96],69:[1,97],70:98,71:[1,99],73:[2,11],74:[1,100],78:[2,11],81:91,84:[1,93],85:[2,108],86:[2,11],91:[2,11],93:[2,11],102:[2,11],104:[2,11],105:[2,11],106:[2,11],110:[2,11],118:[2,11],126:[2,11],129:[2,11],130:[2,11],136:[2,11],137:[2,11],138:[2,11],139:[2,11],140:[2,11],141:[2,11],142:[2,11]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:102,66:[1,94],67:[1,95],68:[1,96],69:[1,97],70:98,71:[1,99],73:[2,12],74:[1,100],78:[2,12],81:101,84:[1,93],85:[2,108],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],129:[2,12],130:[2,12],136:[2,12],137:[2,12],138:[2,12],139:[2,12],140:[2,12],141:[2,12],142:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],73:[2,13],78:[2,13],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],129:[2,13],130:[2,13],136:[2,13],137:[2,13],138:[2,13],139:[2,13],140:[2,13],141:[2,13],142:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],129:[2,14],130:[2,14],136:[2,14],137:[2,14],138:[2,14],139:[2,14],140:[2,14],141:[2,14],142:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],129:[2,15],130:[2,15],136:[2,15],137:[2,15],138:[2,15],139:[2,15],140:[2,15],141:[2,15],142:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,16],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],129:[2,16],130:[2,16],136:[2,16],137:[2,16],138:[2,16],139:[2,16],140:[2,16],141:[2,16],142:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],129:[2,17],130:[2,17],136:[2,17],137:[2,17],138:[2,17],139:[2,17],140:[2,17],141:[2,17],142:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],129:[2,18],130:[2,18],136:[2,18],137:[2,18],138:[2,18],139:[2,18],140:[2,18],141:[2,18],142:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],129:[2,19],130:[2,19],136:[2,19],137:[2,19],138:[2,19],139:[2,19],140:[2,19],141:[2,19],142:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],129:[2,20],130:[2,20],136:[2,20],137:[2,20],138:[2,20],139:[2,20],140:[2,20],141:[2,20],142:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],129:[2,21],130:[2,21],136:[2,21],137:[2,21],138:[2,21],139:[2,21],140:[2,21],141:[2,21],142:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],129:[2,22],130:[2,22],136:[2,22],137:[2,22],138:[2,22],139:[2,22],140:[2,22],141:[2,22],142:[2,22]},{1:[2,8],6:[2,8],25:[2,8],26:[2,8],49:[2,8],54:[2,8],57:[2,8],73:[2,8],78:[2,8],86:[2,8],91:[2,8],93:[2,8],102:[2,8],104:[2,8],105:[2,8],106:[2,8],110:[2,8],118:[2,8],126:[2,8],129:[2,8],130:[2,8],136:[2,8],137:[2,8],138:[2,8],139:[2,8],140:[2,8],141:[2,8],142:[2,8]},{1:[2,9],6:[2,9],25:[2,9],26:[2,9],49:[2,9],54:[2,9],57:[2,9],73:[2,9],78:[2,9],86:[2,9],91:[2,9],93:[2,9],102:[2,9],104:[2,9],105:[2,9],106:[2,9],110:[2,9],118:[2,9],126:[2,9],129:[2,9],130:[2,9],136:[2,9],137:[2,9],138:[2,9],139:[2,9],140:[2,9],141:[2,9],142:[2,9]},{1:[2,10],6:[2,10],25:[2,10],26:[2,10],49:[2,10],54:[2,10],57:[2,10],73:[2,10],78:[2,10],86:[2,10],91:[2,10],93:[2,10],102:[2,10],104:[2,10],105:[2,10],106:[2,10],110:[2,10],118:[2,10],126:[2,10],129:[2,10],130:[2,10],136:[2,10],137:[2,10],138:[2,10],139:[2,10],140:[2,10],141:[2,10],142:[2,10]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,103],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],129:[2,75],130:[2,75],136:[2,75],137:[2,75],138:[2,75],139:[2,75],140:[2,75],141:[2,75],142:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],129:[2,76],130:[2,76],136:[2,76],137:[2,76],138:[2,76],139:[2,76],140:[2,76],141:[2,76],142:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],129:[2,77],130:[2,77],136:[2,77],137:[2,77],138:[2,77],139:[2,77],140:[2,77],141:[2,77],142:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],129:[2,78],130:[2,78],136:[2,78],137:[2,78],138:[2,78],139:[2,78],140:[2,78],141:[2,78],142:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],129:[2,79],130:[2,79],136:[2,79],137:[2,79],138:[2,79],139:[2,79],140:[2,79],141:[2,79],142:[2,79]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],82:104,84:[2,106],85:[1,105],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],129:[2,106],130:[2,106],136:[2,106],137:[2,106],138:[2,106],139:[2,106],140:[2,106],141:[2,106],142:[2,106]},{6:[2,54],25:[2,54],27:110,28:[1,74],44:111,48:106,49:[2,54],54:[2,54],55:107,56:108,57:[1,109],58:112,59:113,76:[1,71],89:[1,114],90:[1,115]},{24:116,25:[1,117]},{7:118,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:120,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:121,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:122,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:124,8:123,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],132:[1,125],133:[1,34],134:[1,35],135:[1,36]},{7:127,8:126,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{12:129,13:130,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:131,44:64,58:48,59:49,61:128,63:23,64:24,65:25,76:[1,71],83:[1,26],88:[1,59],89:[1,60],90:[1,58],101:[1,57]},{12:129,13:130,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:131,44:64,58:48,59:49,61:132,63:23,64:24,65:25,76:[1,71],83:[1,26],88:[1,59],89:[1,60],90:[1,58],101:[1,57]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],80:[1,136],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],129:[2,72],130:[2,72],134:[1,133],135:[1,134],136:[2,72],137:[2,72],138:[2,72],139:[2,72],140:[2,72],141:[2,72],142:[2,72],143:[1,135]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],104:[2,184],105:[2,184],106:[2,184],110:[2,184],118:[2,184],121:[1,137],126:[2,184],129:[2,184],130:[2,184],136:[2,184],137:[2,184],138:[2,184],139:[2,184],140:[2,184],141:[2,184],142:[2,184]},{24:138,25:[1,117]},{24:139,25:[1,117]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],104:[2,151],105:[2,151],106:[2,151],110:[2,151],118:[2,151],126:[2,151],129:[2,151],130:[2,151],136:[2,151],137:[2,151],138:[2,151],139:[2,151],140:[2,151],141:[2,151],142:[2,151]},{24:140,25:[1,117]},{7:141,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,142],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,96],6:[2,96],12:129,13:130,24:143,25:[1,117],26:[2,96],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:131,44:64,49:[2,96],54:[2,96],57:[2,96],58:48,59:49,61:145,63:23,64:24,65:25,73:[2,96],76:[1,71],78:[2,96],80:[1,144],83:[1,26],86:[2,96],88:[1,59],89:[1,60],90:[1,58],91:[2,96],93:[2,96],101:[1,57],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],129:[2,96],130:[2,96],136:[2,96],137:[2,96],138:[2,96],139:[2,96],140:[2,96],141:[2,96],142:[2,96]},{7:146,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,46],6:[2,46],7:147,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,46],26:[2,46],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],49:[2,46],50:28,51:[1,61],52:[1,62],54:[2,46],57:[2,46],58:48,59:49,61:37,63:23,64:24,65:25,73:[2,46],76:[1,71],78:[2,46],79:[1,44],83:[1,26],86:[2,46],88:[1,59],89:[1,60],90:[1,58],91:[2,46],93:[2,46],96:[1,39],100:[1,45],101:[1,57],102:[2,46],103:40,104:[2,46],105:[2,46],106:[2,46],107:41,108:[1,68],109:42,110:[2,46],111:70,118:[2,46],119:[1,43],124:38,125:[1,65],126:[2,46],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36],136:[2,46],137:[2,46],138:[2,46],139:[2,46],140:[2,46],141:[2,46],142:[2,46]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],49:[2,47],54:[2,47],57:[2,47],73:[2,47],78:[2,47],86:[2,47],91:[2,47],93:[2,47],102:[2,47],104:[2,47],105:[2,47],106:[2,47],110:[2,47],118:[2,47],126:[2,47],129:[2,47],130:[2,47],136:[2,47],137:[2,47],138:[2,47],139:[2,47],140:[2,47],141:[2,47],142:[2,47]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],129:[2,73],130:[2,73],136:[2,73],137:[2,73],138:[2,73],139:[2,73],140:[2,73],141:[2,73],142:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],129:[2,74],130:[2,74],136:[2,74],137:[2,74],138:[2,74],139:[2,74],140:[2,74],141:[2,74],142:[2,74]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],129:[2,28],130:[2,28],136:[2,28],137:[2,28],138:[2,28],139:[2,28],140:[2,28],141:[2,28],142:[2,28]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],129:[2,29],130:[2,29],136:[2,29],137:[2,29],138:[2,29],139:[2,29],140:[2,29],141:[2,29],142:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],129:[2,30],130:[2,30],136:[2,30],137:[2,30],138:[2,30],139:[2,30],140:[2,30],141:[2,30],142:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],129:[2,31],130:[2,31],136:[2,31],137:[2,31],138:[2,31],139:[2,31],140:[2,31],141:[2,31],142:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],129:[2,32],130:[2,32],136:[2,32],137:[2,32],138:[2,32],139:[2,32],140:[2,32],141:[2,32],142:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],110:[2,33],118:[2,33],126:[2,33],129:[2,33],130:[2,33],136:[2,33],137:[2,33],138:[2,33],139:[2,33],140:[2,33],141:[2,33],142:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],129:[2,34],130:[2,34],136:[2,34],137:[2,34],138:[2,34],139:[2,34],140:[2,34],141:[2,34],142:[2,34]},{4:148,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,149],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:150,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,154],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,156],58:48,59:49,60:155,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],87:152,88:[1,59],89:[1,60],90:[1,58],91:[1,151],94:153,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],129:[2,112],130:[2,112],136:[2,112],137:[2,112],138:[2,112],139:[2,112],140:[2,112],141:[2,112],142:[2,112]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],27:157,28:[1,74],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],118:[2,113],126:[2,113],129:[2,113],130:[2,113],136:[2,113],137:[2,113],138:[2,113],139:[2,113],140:[2,113],141:[2,113],142:[2,113]},{25:[2,50]},{25:[2,51]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],129:[2,68],130:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68],139:[2,68],140:[2,68],141:[2,68],142:[2,68],143:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[2,71],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],129:[2,71],130:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[2,71],139:[2,71],140:[2,71],141:[2,71],142:[2,71],143:[2,71]},{7:158,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:159,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:160,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:162,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:161,25:[1,117],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{27:167,28:[1,74],44:168,58:169,59:170,64:163,76:[1,71],89:[1,114],90:[1,58],113:164,114:[1,165],115:166},{112:171,116:[1,172],117:[1,173]},{6:[2,91],10:177,25:[2,91],27:178,28:[1,74],29:179,30:[1,72],31:[1,73],41:175,42:176,44:180,46:[1,47],54:[2,91],77:174,78:[2,91],89:[1,114]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],118:[2,26],126:[2,26],129:[2,26],130:[2,26],136:[2,26],137:[2,26],138:[2,26],139:[2,26],140:[2,26],141:[2,26],142:[2,26]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],129:[2,27],130:[2,27],136:[2,27],137:[2,27],138:[2,27],139:[2,27],140:[2,27],141:[2,27],142:[2,27]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],40:[2,25],43:[2,25],49:[2,25],54:[2,25],57:[2,25],66:[2,25],67:[2,25],68:[2,25],69:[2,25],71:[2,25],73:[2,25],74:[2,25],78:[2,25],80:[2,25],84:[2,25],85:[2,25],86:[2,25],91:[2,25],93:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],116:[2,25],117:[2,25],118:[2,25],126:[2,25],129:[2,25],130:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25],138:[2,25],139:[2,25],140:[2,25],141:[2,25],142:[2,25],143:[2,25]},{1:[2,5],5:181,6:[2,5],7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[2,5],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],102:[2,5],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],104:[2,201],105:[2,201],106:[2,201],110:[2,201],118:[2,201],126:[2,201],129:[2,201],130:[2,201],136:[2,201],137:[2,201],138:[2,201],139:[2,201],140:[2,201],141:[2,201],142:[2,201]},{7:182,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:183,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:184,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:185,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:186,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:187,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:188,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:189,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:190,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],126:[2,150],129:[2,150],130:[2,150],136:[2,150],137:[2,150],138:[2,150],139:[2,150],140:[2,150],141:[2,150],142:[2,150]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],129:[2,155],130:[2,155],136:[2,155],137:[2,155],138:[2,155],139:[2,155],140:[2,155],141:[2,155],142:[2,155]},{7:191,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],129:[2,149],130:[2,149],136:[2,149],137:[2,149],138:[2,149],139:[2,149],140:[2,149],141:[2,149],142:[2,149]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],129:[2,154],130:[2,154],136:[2,154],137:[2,154],138:[2,154],139:[2,154],140:[2,154],141:[2,154],142:[2,154]},{82:192,85:[1,105]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],129:[2,69],130:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69],139:[2,69],140:[2,69],141:[2,69],142:[2,69],143:[2,69]},{85:[2,109]},{27:193,28:[1,74]},{27:194,28:[1,74]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],27:195,28:[1,74],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],129:[2,84],130:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84],139:[2,84],140:[2,84],141:[2,84],142:[2,84],143:[2,84]},{27:196,28:[1,74]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],129:[2,85],130:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85],139:[2,85],140:[2,85],141:[2,85],142:[2,85],143:[2,85]},{7:198,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,202],58:48,59:49,61:37,63:23,64:24,65:25,72:197,75:199,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],92:200,93:[1,201],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{70:203,71:[1,99],74:[1,100]},{82:204,85:[1,105]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],129:[2,70],130:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70],139:[2,70],140:[2,70],141:[2,70],142:[2,70],143:[2,70]},{6:[1,206],7:205,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,207],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],49:[2,107],54:[2,107],57:[2,107],66:[2,107],67:[2,107],68:[2,107],69:[2,107],71:[2,107],73:[2,107],74:[2,107],78:[2,107],84:[2,107],85:[2,107],86:[2,107],91:[2,107],93:[2,107],102:[2,107],104:[2,107],105:[2,107],106:[2,107],110:[2,107],118:[2,107],126:[2,107],129:[2,107],130:[2,107],136:[2,107],137:[2,107],138:[2,107],139:[2,107],140:[2,107],141:[2,107],142:[2,107]},{7:210,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,154],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,156],58:48,59:49,60:155,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],86:[1,208],87:209,88:[1,59],89:[1,60],90:[1,58],94:153,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[2,52],25:[2,52],49:[1,211],53:213,54:[1,212]},{6:[2,55],25:[2,55],26:[2,55],49:[2,55],54:[2,55]},{6:[2,59],25:[2,59],26:[2,59],40:[1,215],49:[2,59],54:[2,59],57:[1,214]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:157,28:[1,74]},{7:210,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,154],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,156],58:48,59:49,60:155,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],87:152,88:[1,59],89:[1,60],90:[1,58],91:[1,151],94:153,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],73:[2,49],78:[2,49],86:[2,49],91:[2,49],93:[2,49],102:[2,49],104:[2,49],105:[2,49],106:[2,49],110:[2,49],118:[2,49],126:[2,49],129:[2,49],130:[2,49],136:[2,49],137:[2,49],138:[2,49],139:[2,49],140:[2,49],141:[2,49],142:[2,49]},{4:217,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,216],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:86,104:[2,188],105:[2,188],106:[2,188],109:87,110:[2,188],111:70,118:[2,188],126:[2,188],129:[2,188],130:[2,188],136:[1,76],137:[2,188],138:[2,188],139:[2,188],140:[2,188],141:[2,188],142:[2,188]},{103:89,104:[1,66],106:[1,67],109:90,110:[1,69],111:70,126:[1,88]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],73:[2,189],78:[2,189],86:[2,189],91:[2,189],93:[2,189],102:[2,189],103:86,104:[2,189],105:[2,189],106:[2,189],109:87,110:[2,189],111:70,118:[2,189],126:[2,189],129:[2,189],130:[2,189],136:[1,76],137:[2,189],138:[1,80],139:[2,189],140:[2,189],141:[2,189],142:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],73:[2,190],78:[2,190],86:[2,190],91:[2,190],93:[2,190],102:[2,190],103:86,104:[2,190],105:[2,190],106:[2,190],109:87,110:[2,190],111:70,118:[2,190],126:[2,190],129:[2,190],130:[2,190],136:[1,76],137:[2,190],138:[1,80],139:[2,190],140:[2,190],141:[2,190],142:[2,190]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],73:[2,191],78:[2,191],86:[2,191],91:[2,191],93:[2,191],102:[2,191],103:86,104:[2,191],105:[2,191],106:[2,191],109:87,110:[2,191],111:70,118:[2,191],126:[2,191],129:[2,191],130:[2,191],136:[1,76],137:[2,191],138:[1,80],139:[2,191],140:[2,191],141:[2,191],142:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],73:[2,192],78:[2,192],86:[2,192],91:[2,192],93:[2,192],102:[2,192],103:89,104:[2,192],105:[2,192],106:[2,192],109:90,110:[2,192],111:70,118:[2,192],126:[2,192],129:[2,192],130:[2,192],136:[2,192],137:[2,192],138:[2,192],139:[2,192],140:[2,192],141:[2,192],142:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],73:[2,193],78:[2,193],86:[2,193],91:[2,193],93:[2,193],102:[2,193],103:86,104:[2,193],105:[2,193],106:[2,193],109:87,110:[2,193],111:70,118:[2,193],126:[2,193],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{7:218,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],73:[2,195],78:[2,195],86:[2,195],91:[2,195],93:[2,195],102:[2,195],103:89,104:[2,195],105:[2,195],106:[2,195],109:90,110:[2,195],111:70,118:[2,195],126:[2,195],129:[2,195],130:[2,195],136:[2,195],137:[2,195],138:[2,195],139:[2,195],140:[2,195],141:[2,195],142:[2,195]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],73:[2,196],78:[2,196],86:[2,196],91:[2,196],93:[2,196],102:[2,196],103:86,104:[2,196],105:[2,196],106:[2,196],109:87,110:[2,196],111:70,118:[2,196],126:[2,196],129:[2,196],130:[2,196],136:[1,76],137:[2,196],138:[2,196],139:[2,196],140:[2,196],141:[2,196],142:[2,196]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,197],74:[2,72],78:[2,197],84:[2,72],85:[2,72],86:[2,197],91:[2,197],93:[2,197],102:[2,197],104:[2,197],105:[2,197],106:[2,197],110:[2,197],118:[2,197],126:[2,197],129:[2,197],130:[2,197],136:[2,197],137:[2,197],138:[2,197],139:[2,197],140:[2,197],141:[2,197],142:[2,197]},{62:92,66:[1,94],67:[1,95],68:[1,96],69:[1,97],70:98,71:[1,99],74:[1,100],81:91,84:[1,93],85:[2,108]},{62:102,66:[1,94],67:[1,95],68:[1,96],69:[1,97],70:98,71:[1,99],74:[1,100],81:101,84:[1,93],85:[2,108]},{66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],74:[2,75],84:[2,75],85:[2,75]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,198],74:[2,72],78:[2,198],84:[2,72],85:[2,72],86:[2,198],91:[2,198],93:[2,198],102:[2,198],104:[2,198],105:[2,198],106:[2,198],110:[2,198],118:[2,198],126:[2,198],129:[2,198],130:[2,198],136:[2,198],137:[2,198],138:[2,198],139:[2,198],140:[2,198],141:[2,198],142:[2,198]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],104:[2,199],105:[2,199],106:[2,199],110:[2,199],118:[2,199],126:[2,199],129:[2,199],130:[2,199],136:[2,199],137:[2,199],138:[2,199],139:[2,199],140:[2,199],141:[2,199],142:[2,199]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],104:[2,200],105:[2,200],106:[2,200],110:[2,200],118:[2,200],126:[2,200],129:[2,200],130:[2,200],136:[2,200],137:[2,200],138:[2,200],139:[2,200],140:[2,200],141:[2,200],142:[2,200]},{6:[1,221],7:219,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,220],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:222,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{24:223,25:[1,117],125:[1,224]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],97:225,98:[1,226],99:[1,227],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],129:[2,134],130:[2,134],136:[2,134],137:[2,134],138:[2,134],139:[2,134],140:[2,134],141:[2,134],142:[2,134]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],129:[2,148],130:[2,148],136:[2,148],137:[2,148],138:[2,148],139:[2,148],140:[2,148],141:[2,148],142:[2,148]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],129:[2,156],130:[2,156],136:[2,156],137:[2,156],138:[2,156],139:[2,156],140:[2,156],141:[2,156],142:[2,156]},{25:[1,228],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{120:229,122:230,123:[1,231]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],104:[2,97],105:[2,97],106:[2,97],110:[2,97],118:[2,97],126:[2,97],129:[2,97],130:[2,97],136:[2,97],137:[2,97],138:[2,97],139:[2,97],140:[2,97],141:[2,97],142:[2,97]},{7:232,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,100],6:[2,100],24:233,25:[1,117],26:[2,100],49:[2,100],54:[2,100],57:[2,100],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,100],74:[2,72],78:[2,100],80:[1,234],84:[2,72],85:[2,72],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],129:[2,100],130:[2,100],136:[2,100],137:[2,100],138:[2,100],139:[2,100],140:[2,100],141:[2,100],142:[2,100]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],73:[2,141],78:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],103:86,104:[2,141],105:[2,141],106:[2,141],109:87,110:[2,141],111:70,118:[2,141],126:[2,141],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],49:[2,45],54:[2,45],57:[2,45],73:[2,45],78:[2,45],86:[2,45],91:[2,45],93:[2,45],102:[2,45],103:86,104:[2,45],105:[2,45],106:[2,45],109:87,110:[2,45],111:70,118:[2,45],126:[2,45],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{6:[1,75],102:[1,235]},{4:236,5:3,7:4,8:5,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[2,129],25:[2,129],54:[2,129],57:[1,238],91:[2,129],92:237,93:[1,201],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],129:[2,115],130:[2,115],136:[2,115],137:[2,115],138:[2,115],139:[2,115],140:[2,115],141:[2,115],142:[2,115]},{6:[2,52],25:[2,52],53:239,54:[1,240],91:[2,52]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{7:210,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,154],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,156],58:48,59:49,60:155,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],87:241,88:[1,59],89:[1,60],90:[1,58],94:153,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[2,130],25:[2,130],26:[2,130],54:[2,130],86:[2,130],91:[2,130]},{6:[2,131],25:[2,131],26:[2,131],54:[2,131],86:[2,131],91:[2,131]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],43:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],80:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],129:[2,114],130:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114],138:[2,114],139:[2,114],140:[2,114],141:[2,114],142:[2,114],143:[2,114]},{24:242,25:[1,117],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],73:[2,144],78:[2,144],86:[2,144],91:[2,144],93:[2,144],102:[2,144],103:86,104:[1,66],105:[1,243],106:[1,67],109:87,110:[1,69],111:70,118:[2,144],126:[2,144],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],73:[2,146],78:[2,146],86:[2,146],91:[2,146],93:[2,146],102:[2,146],103:86,104:[1,66],105:[1,244],106:[1,67],109:87,110:[1,69],111:70,118:[2,146],126:[2,146],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],104:[2,152],105:[2,152],106:[2,152],110:[2,152],118:[2,152],126:[2,152],129:[2,152],130:[2,152],136:[2,152],137:[2,152],138:[2,152],139:[2,152],140:[2,152],141:[2,152],142:[2,152]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],103:86,104:[1,66],105:[2,153],106:[1,67],109:87,110:[1,69],111:70,118:[2,153],126:[2,153],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],49:[2,157],54:[2,157],57:[2,157],73:[2,157],78:[2,157],86:[2,157],91:[2,157],93:[2,157],102:[2,157],104:[2,157],105:[2,157],106:[2,157],110:[2,157],118:[2,157],126:[2,157],129:[2,157],130:[2,157],136:[2,157],137:[2,157],138:[2,157],139:[2,157],140:[2,157],141:[2,157],142:[2,157]},{116:[2,159],117:[2,159]},{27:167,28:[1,74],44:168,58:169,59:170,76:[1,71],89:[1,114],90:[1,115],113:245,115:166},{54:[1,246],116:[2,165],117:[2,165]},{54:[2,161],116:[2,161],117:[2,161]},{54:[2,162],116:[2,162],117:[2,162]},{54:[2,163],116:[2,163],117:[2,163]},{54:[2,164],116:[2,164],117:[2,164]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],49:[2,158],54:[2,158],57:[2,158],73:[2,158],78:[2,158],86:[2,158],91:[2,158],93:[2,158],102:[2,158],104:[2,158],105:[2,158],106:[2,158],110:[2,158],118:[2,158],126:[2,158],129:[2,158],130:[2,158],136:[2,158],137:[2,158],138:[2,158],139:[2,158],140:[2,158],141:[2,158],142:[2,158]},{7:247,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:248,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[2,52],25:[2,52],53:249,54:[1,250],78:[2,52]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,38],25:[2,38],26:[2,38],43:[1,251],54:[2,38],78:[2,38]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],78:[2,41]},{6:[2,42],25:[2,42],26:[2,42],43:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],103:86,104:[2,202],105:[2,202],106:[2,202],109:87,110:[2,202],111:70,118:[2,202],126:[2,202],129:[2,202],130:[2,202],136:[1,76],137:[1,79],138:[1,80],139:[2,202],140:[2,202],141:[2,202],142:[2,202]},{1:[2,203],6:[2,203],25:[2,203],26:[2,203],49:[2,203],54:[2,203],57:[2,203],73:[2,203],78:[2,203],86:[2,203],91:[2,203],93:[2,203],102:[2,203],103:86,104:[2,203],105:[2,203],106:[2,203],109:87,110:[2,203],111:70,118:[2,203],126:[2,203],129:[2,203],130:[2,203],136:[1,76],137:[1,79],138:[1,80],139:[2,203],140:[2,203],141:[2,203],142:[2,203]},{1:[2,204],6:[2,204],25:[2,204],26:[2,204],49:[2,204],54:[2,204],57:[2,204],73:[2,204],78:[2,204],86:[2,204],91:[2,204],93:[2,204],102:[2,204],103:86,104:[2,204],105:[2,204],106:[2,204],109:87,110:[2,204],111:70,118:[2,204],126:[2,204],129:[2,204],130:[2,204],136:[1,76],137:[2,204],138:[1,80],139:[2,204],140:[2,204],141:[2,204],142:[2,204]},{1:[2,205],6:[2,205],25:[2,205],26:[2,205],49:[2,205],54:[2,205],57:[2,205],73:[2,205],78:[2,205],86:[2,205],91:[2,205],93:[2,205],102:[2,205],103:86,104:[2,205],105:[2,205],106:[2,205],109:87,110:[2,205],111:70,118:[2,205],126:[2,205],129:[2,205],130:[2,205],136:[1,76],137:[2,205],138:[1,80],139:[2,205],140:[2,205],141:[2,205],142:[2,205]},{1:[2,206],6:[2,206],25:[2,206],26:[2,206],49:[2,206],54:[2,206],57:[2,206],73:[2,206],78:[2,206],86:[2,206],91:[2,206],93:[2,206],102:[2,206],103:86,104:[2,206],105:[2,206],106:[2,206],109:87,110:[2,206],111:70,118:[2,206],126:[2,206],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[2,206],140:[2,206],141:[2,206],142:[2,206]},{1:[2,207],6:[2,207],25:[2,207],26:[2,207],49:[2,207],54:[2,207],57:[2,207],73:[2,207],78:[2,207],86:[2,207],91:[2,207],93:[2,207],102:[2,207],103:86,104:[2,207],105:[2,207],106:[2,207],109:87,110:[2,207],111:70,118:[2,207],126:[2,207],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[2,207],141:[2,207],142:[1,84]},{1:[2,208],6:[2,208],25:[2,208],26:[2,208],49:[2,208],54:[2,208],57:[2,208],73:[2,208],78:[2,208],86:[2,208],91:[2,208],93:[2,208],102:[2,208],103:86,104:[2,208],105:[2,208],106:[2,208],109:87,110:[2,208],111:70,118:[2,208],126:[2,208],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[2,208],142:[1,84]},{1:[2,209],6:[2,209],25:[2,209],26:[2,209],49:[2,209],54:[2,209],57:[2,209],73:[2,209],78:[2,209],86:[2,209],91:[2,209],93:[2,209],102:[2,209],103:86,104:[2,209],105:[2,209],106:[2,209],109:87,110:[2,209],111:70,118:[2,209],126:[2,209],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[2,209],141:[2,209],142:[2,209]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:86,104:[1,66],105:[2,187],106:[1,67],109:87,110:[1,69],111:70,118:[2,187],126:[2,187],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:86,104:[1,66],105:[2,186],106:[1,67],109:87,110:[1,69],111:70,118:[2,186],126:[2,186],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],129:[2,104],130:[2,104],136:[2,104],137:[2,104],138:[2,104],139:[2,104],140:[2,104],141:[2,104],142:[2,104]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],129:[2,80],130:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80],139:[2,80],140:[2,80],141:[2,80],142:[2,80],143:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],129:[2,81],130:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81],139:[2,81],140:[2,81],141:[2,81],142:[2,81],143:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],129:[2,82],130:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82],139:[2,82],140:[2,82],141:[2,82],142:[2,82],143:[2,82]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],129:[2,83],130:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83],139:[2,83],140:[2,83],141:[2,83],142:[2,83],143:[2,83]},{73:[1,252]},{57:[1,202],73:[2,88],92:253,93:[1,201],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{73:[2,89]},{7:254,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,73:[2,123],76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{11:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117],133:[2,117],134:[2,117],135:[2,117]},{11:[2,118],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],73:[2,118],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],133:[2,118],134:[2,118],135:[2,118]},{1:[2,87],6:[2,87],25:[2,87],26:[2,87],40:[2,87],49:[2,87],54:[2,87],57:[2,87],66:[2,87],67:[2,87],68:[2,87],69:[2,87],71:[2,87],73:[2,87],74:[2,87],78:[2,87],80:[2,87],84:[2,87],85:[2,87],86:[2,87],91:[2,87],93:[2,87],102:[2,87],104:[2,87],105:[2,87],106:[2,87],110:[2,87],118:[2,87],126:[2,87],129:[2,87],130:[2,87],134:[2,87],135:[2,87],136:[2,87],137:[2,87],138:[2,87],139:[2,87],140:[2,87],141:[2,87],142:[2,87],143:[2,87]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],84:[2,105],85:[2,105],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],129:[2,105],130:[2,105],136:[2,105],137:[2,105],138:[2,105],139:[2,105],140:[2,105],141:[2,105],142:[2,105]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],73:[2,35],78:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],103:86,104:[2,35],105:[2,35],106:[2,35],109:87,110:[2,35],111:70,118:[2,35],126:[2,35],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{7:255,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:256,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],129:[2,110],130:[2,110],136:[2,110],137:[2,110],138:[2,110],139:[2,110],140:[2,110],141:[2,110],142:[2,110]},{6:[2,52],25:[2,52],53:257,54:[1,240],86:[2,52]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],57:[1,258],86:[2,129],91:[2,129],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{50:259,51:[1,61],52:[1,62]},{6:[2,53],25:[2,53],26:[2,53],27:110,28:[1,74],44:111,55:260,56:108,57:[1,109],58:112,59:113,76:[1,71],89:[1,114],90:[1,115]},{6:[1,261],25:[1,262]},{6:[2,60],25:[2,60],26:[2,60],49:[2,60],54:[2,60]},{7:263,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,23],91:[2,23],93:[2,23],98:[2,23],99:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],121:[2,23],123:[2,23],126:[2,23],129:[2,23],130:[2,23],136:[2,23],137:[2,23],138:[2,23],139:[2,23],140:[2,23],141:[2,23],142:[2,23]},{6:[1,75],26:[1,264]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],103:86,104:[2,194],105:[2,194],106:[2,194],109:87,110:[2,194],111:70,118:[2,194],126:[2,194],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,210],6:[2,210],25:[2,210],26:[2,210],49:[2,210],54:[2,210],57:[2,210],73:[2,210],78:[2,210],86:[2,210],91:[2,210],93:[2,210],102:[2,210],103:86,104:[2,210],105:[2,210],106:[2,210],109:87,110:[2,210],111:70,118:[2,210],126:[2,210],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{7:265,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:266,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,213],6:[2,213],25:[2,213],26:[2,213],49:[2,213],54:[2,213],57:[2,213],73:[2,213],78:[2,213],86:[2,213],91:[2,213],93:[2,213],102:[2,213],103:86,104:[2,213],105:[2,213],106:[2,213],109:87,110:[2,213],111:70,118:[2,213],126:[2,213],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185],78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],104:[2,185],105:[2,185],106:[2,185],110:[2,185],118:[2,185],126:[2,185],129:[2,185],130:[2,185],136:[2,185],137:[2,185],138:[2,185],139:[2,185],140:[2,185],141:[2,185],142:[2,185]},{7:267,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],73:[2,135],78:[2,135],86:[2,135],91:[2,135],93:[2,135],98:[1,268],102:[2,135],104:[2,135],105:[2,135],106:[2,135],110:[2,135],118:[2,135],126:[2,135],129:[2,135],130:[2,135],136:[2,135],137:[2,135],138:[2,135],139:[2,135],140:[2,135],141:[2,135],142:[2,135]},{24:269,25:[1,117]},{24:272,25:[1,117],27:270,28:[1,74],59:271,76:[1,71]},{120:273,122:230,123:[1,231]},{26:[1,274],121:[1,275],122:276,123:[1,231]},{26:[2,178],121:[2,178],123:[2,178]},{7:278,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],95:277,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,98],6:[2,98],24:279,25:[1,117],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],103:86,104:[1,66],105:[2,98],106:[1,67],109:87,110:[1,69],111:70,118:[2,98],126:[2,98],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],104:[2,101],105:[2,101],106:[2,101],110:[2,101],118:[2,101],126:[2,101],129:[2,101],130:[2,101],136:[2,101],137:[2,101],138:[2,101],139:[2,101],140:[2,101],141:[2,101],142:[2,101]},{7:280,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],66:[2,142],67:[2,142],68:[2,142],69:[2,142],71:[2,142],73:[2,142],74:[2,142],78:[2,142],84:[2,142],85:[2,142],86:[2,142],91:[2,142],93:[2,142],102:[2,142],104:[2,142],105:[2,142],106:[2,142],110:[2,142],118:[2,142],126:[2,142],129:[2,142],130:[2,142],136:[2,142],137:[2,142],138:[2,142],139:[2,142],140:[2,142],141:[2,142],142:[2,142]},{6:[1,75],26:[1,281]},{7:282,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[2,67],11:[2,118],25:[2,67],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],54:[2,67],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],91:[2,67],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118],133:[2,118],134:[2,118],135:[2,118]},{6:[1,284],25:[1,285],91:[1,283]},{6:[2,53],7:210,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[2,53],26:[2,53],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,156],58:48,59:49,60:155,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],86:[2,53],88:[1,59],89:[1,60],90:[1,58],91:[2,53],94:286,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[2,52],25:[2,52],26:[2,52],53:287,54:[1,240]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],73:[2,182],78:[2,182],86:[2,182],91:[2,182],93:[2,182],102:[2,182],104:[2,182],105:[2,182],106:[2,182],110:[2,182],118:[2,182],121:[2,182],126:[2,182],129:[2,182],130:[2,182],136:[2,182],137:[2,182],138:[2,182],139:[2,182],140:[2,182],141:[2,182],142:[2,182]},{7:288,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:289,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{116:[2,160],117:[2,160]},{27:167,28:[1,74],44:168,58:169,59:170,76:[1,71],89:[1,114],90:[1,115],115:290},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],73:[2,167],78:[2,167],86:[2,167],91:[2,167],93:[2,167],102:[2,167],103:86,104:[2,167],105:[1,291],106:[2,167],109:87,110:[2,167],111:70,118:[1,292],126:[2,167],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],73:[2,168],78:[2,168],86:[2,168],91:[2,168],93:[2,168],102:[2,168],103:86,104:[2,168],105:[1,293],106:[2,168],109:87,110:[2,168],111:70,118:[2,168],126:[2,168],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{6:[1,295],25:[1,296],78:[1,294]},{6:[2,53],10:177,25:[2,53],26:[2,53],27:178,28:[1,74],29:179,30:[1,72],31:[1,73],41:297,42:176,44:180,46:[1,47],78:[2,53],89:[1,114]},{7:298,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,299],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],69:[2,86],71:[2,86],73:[2,86],74:[2,86],78:[2,86],80:[2,86],84:[2,86],85:[2,86],86:[2,86],91:[2,86],93:[2,86],102:[2,86],104:[2,86],105:[2,86],106:[2,86],110:[2,86],118:[2,86],126:[2,86],129:[2,86],130:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86],138:[2,86],139:[2,86],140:[2,86],141:[2,86],142:[2,86],143:[2,86]},{7:300,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,73:[2,121],76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{73:[2,122],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:86,104:[2,36],105:[2,36],106:[2,36],109:87,110:[2,36],111:70,118:[2,36],126:[2,36],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{26:[1,301],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{6:[1,284],25:[1,285],86:[1,302]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],86:[2,67],91:[2,67]},{24:303,25:[1,117]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{27:110,28:[1,74],44:111,55:304,56:108,57:[1,109],58:112,59:113,76:[1,71],89:[1,114],90:[1,115]},{6:[2,54],25:[2,54],26:[2,54],27:110,28:[1,74],44:111,48:305,54:[2,54],55:107,56:108,57:[1,109],58:112,59:113,76:[1,71],89:[1,114],90:[1,115]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],129:[2,24],130:[2,24],136:[2,24],137:[2,24],138:[2,24],139:[2,24],140:[2,24],141:[2,24],142:[2,24]},{26:[1,306],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,212],6:[2,212],25:[2,212],26:[2,212],49:[2,212],54:[2,212],57:[2,212],73:[2,212],78:[2,212],86:[2,212],91:[2,212],93:[2,212],102:[2,212],103:86,104:[2,212],105:[2,212],106:[2,212],109:87,110:[2,212],111:70,118:[2,212],126:[2,212],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{24:307,25:[1,117],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{24:308,25:[1,117]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],73:[2,136],78:[2,136],86:[2,136],91:[2,136],93:[2,136],102:[2,136],104:[2,136],105:[2,136],106:[2,136],110:[2,136],118:[2,136],126:[2,136],129:[2,136],130:[2,136],136:[2,136],137:[2,136],138:[2,136],139:[2,136],140:[2,136],141:[2,136],142:[2,136]},{24:309,25:[1,117]},{24:310,25:[1,117]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],73:[2,140],78:[2,140],86:[2,140],91:[2,140],93:[2,140],98:[2,140],102:[2,140],104:[2,140],105:[2,140],106:[2,140],110:[2,140],118:[2,140],126:[2,140],129:[2,140],130:[2,140],136:[2,140],137:[2,140],138:[2,140],139:[2,140],140:[2,140],141:[2,140],142:[2,140]},{26:[1,311],121:[1,312],122:276,123:[1,231]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],49:[2,176],54:[2,176],57:[2,176],73:[2,176],78:[2,176],86:[2,176],91:[2,176],93:[2,176],102:[2,176],104:[2,176],105:[2,176],106:[2,176],110:[2,176],118:[2,176],126:[2,176],129:[2,176],130:[2,176],136:[2,176],137:[2,176],138:[2,176],139:[2,176],140:[2,176],141:[2,176],142:[2,176]},{24:313,25:[1,117]},{26:[2,179],121:[2,179],123:[2,179]},{24:314,25:[1,117],54:[1,315]},{25:[2,132],54:[2,132],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],49:[2,99],54:[2,99],57:[2,99],73:[2,99],78:[2,99],86:[2,99],91:[2,99],93:[2,99],102:[2,99],104:[2,99],105:[2,99],106:[2,99],110:[2,99],118:[2,99],126:[2,99],129:[2,99],130:[2,99],136:[2,99],137:[2,99],138:[2,99],139:[2,99],140:[2,99],141:[2,99],142:[2,99]},{1:[2,102],6:[2,102],24:316,25:[1,117],26:[2,102],49:[2,102],54:[2,102],57:[2,102],73:[2,102],78:[2,102],86:[2,102],91:[2,102],93:[2,102],102:[2,102],103:86,104:[1,66],105:[2,102],106:[1,67],109:87,110:[1,69],111:70,118:[2,102],126:[2,102],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{102:[1,317]},{91:[1,318],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,116],6:[2,116],25:[2,116],26:[2,116],40:[2,116],49:[2,116],54:[2,116],57:[2,116],66:[2,116],67:[2,116],68:[2,116],69:[2,116],71:[2,116],73:[2,116],74:[2,116],78:[2,116],84:[2,116],85:[2,116],86:[2,116],91:[2,116],93:[2,116],102:[2,116],104:[2,116],105:[2,116],106:[2,116],110:[2,116],116:[2,116],117:[2,116],118:[2,116],126:[2,116],129:[2,116],130:[2,116],136:[2,116],137:[2,116],138:[2,116],139:[2,116],140:[2,116],141:[2,116],142:[2,116]},{7:210,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,156],58:48,59:49,60:155,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],94:319,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:210,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,154],27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],57:[1,156],58:48,59:49,60:155,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],87:320,88:[1,59],89:[1,60],90:[1,58],94:153,96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],86:[2,125],91:[2,125]},{6:[1,284],25:[1,285],26:[1,321]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:86,104:[1,66],105:[2,145],106:[1,67],109:87,110:[1,69],111:70,118:[2,145],126:[2,145],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,147],103:86,104:[1,66],105:[2,147],106:[1,67],109:87,110:[1,69],111:70,118:[2,147],126:[2,147],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{116:[2,166],117:[2,166]},{7:322,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:323,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:324,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,90],6:[2,90],25:[2,90],26:[2,90],40:[2,90],49:[2,90],54:[2,90],57:[2,90],66:[2,90],67:[2,90],68:[2,90],69:[2,90],71:[2,90],73:[2,90],74:[2,90],78:[2,90],84:[2,90],85:[2,90],86:[2,90],91:[2,90],93:[2,90],102:[2,90],104:[2,90],105:[2,90],106:[2,90],110:[2,90],116:[2,90],117:[2,90],118:[2,90],126:[2,90],129:[2,90],130:[2,90],136:[2,90],137:[2,90],138:[2,90],139:[2,90],140:[2,90],141:[2,90],142:[2,90]},{10:177,27:178,28:[1,74],29:179,30:[1,72],31:[1,73],41:325,42:176,44:180,46:[1,47],89:[1,114]},{6:[2,91],10:177,25:[2,91],26:[2,91],27:178,28:[1,74],29:179,30:[1,72],31:[1,73],41:175,42:176,44:180,46:[1,47],54:[2,91],77:326,89:[1,114]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],78:[2,93]},{6:[2,39],25:[2,39],26:[2,39],54:[2,39],78:[2,39],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{7:327,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{73:[2,120],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],73:[2,37],78:[2,37],86:[2,37],91:[2,37],93:[2,37],102:[2,37],104:[2,37],105:[2,37],106:[2,37],110:[2,37],118:[2,37],126:[2,37],129:[2,37],130:[2,37],136:[2,37],137:[2,37],138:[2,37],139:[2,37],140:[2,37],141:[2,37],142:[2,37]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],69:[2,111],71:[2,111],73:[2,111],74:[2,111],78:[2,111],84:[2,111],85:[2,111],86:[2,111],91:[2,111],93:[2,111],102:[2,111],104:[2,111],105:[2,111],106:[2,111],110:[2,111],118:[2,111],126:[2,111],129:[2,111],130:[2,111],136:[2,111],137:[2,111],138:[2,111],139:[2,111],140:[2,111],141:[2,111],142:[2,111]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],49:[2,48],54:[2,48],57:[2,48],73:[2,48],78:[2,48],86:[2,48],91:[2,48],93:[2,48],102:[2,48],104:[2,48],105:[2,48],106:[2,48],110:[2,48],118:[2,48],126:[2,48],129:[2,48],130:[2,48],136:[2,48],137:[2,48],138:[2,48],139:[2,48],140:[2,48],141:[2,48],142:[2,48]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{6:[2,52],25:[2,52],26:[2,52],53:328,54:[1,212]},{1:[2,211],6:[2,211],25:[2,211],26:[2,211],49:[2,211],54:[2,211],57:[2,211],73:[2,211],78:[2,211],86:[2,211],91:[2,211],93:[2,211],102:[2,211],104:[2,211],105:[2,211],106:[2,211],110:[2,211],118:[2,211],126:[2,211],129:[2,211],130:[2,211],136:[2,211],137:[2,211],138:[2,211],139:[2,211],140:[2,211],141:[2,211],142:[2,211]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],121:[2,183],126:[2,183],129:[2,183],130:[2,183],136:[2,183],137:[2,183],138:[2,183],139:[2,183],140:[2,183],141:[2,183],142:[2,183]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],73:[2,137],78:[2,137],86:[2,137],91:[2,137],93:[2,137],102:[2,137],104:[2,137],105:[2,137],106:[2,137],110:[2,137],118:[2,137],126:[2,137],129:[2,137],130:[2,137],136:[2,137],137:[2,137],138:[2,137],139:[2,137],140:[2,137],141:[2,137],142:[2,137]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],73:[2,138],78:[2,138],86:[2,138],91:[2,138],93:[2,138],98:[2,138],102:[2,138],104:[2,138],105:[2,138],106:[2,138],110:[2,138],118:[2,138],126:[2,138],129:[2,138],130:[2,138],136:[2,138],137:[2,138],138:[2,138],139:[2,138],140:[2,138],141:[2,138],142:[2,138]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],73:[2,139],78:[2,139],86:[2,139],91:[2,139],93:[2,139],98:[2,139],102:[2,139],104:[2,139],105:[2,139],106:[2,139],110:[2,139],118:[2,139],126:[2,139],129:[2,139],130:[2,139],136:[2,139],137:[2,139],138:[2,139],139:[2,139],140:[2,139],141:[2,139],142:[2,139]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],49:[2,174],54:[2,174],57:[2,174],73:[2,174],78:[2,174],86:[2,174],91:[2,174],93:[2,174],102:[2,174],104:[2,174],105:[2,174],106:[2,174],110:[2,174],118:[2,174],126:[2,174],129:[2,174],130:[2,174],136:[2,174],137:[2,174],138:[2,174],139:[2,174],140:[2,174],141:[2,174],142:[2,174]},{24:329,25:[1,117]},{26:[1,330]},{6:[1,331],26:[2,180],121:[2,180],123:[2,180]},{7:332,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],73:[2,103],78:[2,103],86:[2,103],91:[2,103],93:[2,103],102:[2,103],104:[2,103],105:[2,103],106:[2,103],110:[2,103],118:[2,103],126:[2,103],129:[2,103],130:[2,103],136:[2,103],137:[2,103],138:[2,103],139:[2,103],140:[2,103],141:[2,103],142:[2,103]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],66:[2,143],67:[2,143],68:[2,143],69:[2,143],71:[2,143],73:[2,143],74:[2,143],78:[2,143],84:[2,143],85:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],104:[2,143],105:[2,143],106:[2,143],110:[2,143],118:[2,143],126:[2,143],129:[2,143],130:[2,143],136:[2,143],137:[2,143],138:[2,143],139:[2,143],140:[2,143],141:[2,143],142:[2,143]},{1:[2,119],6:[2,119],25:[2,119],26:[2,119],49:[2,119],54:[2,119],57:[2,119],66:[2,119],67:[2,119],68:[2,119],69:[2,119],71:[2,119],73:[2,119],74:[2,119],78:[2,119],84:[2,119],85:[2,119],86:[2,119],91:[2,119],93:[2,119],102:[2,119],104:[2,119],105:[2,119],106:[2,119],110:[2,119],118:[2,119],126:[2,119],129:[2,119],130:[2,119],136:[2,119],137:[2,119],138:[2,119],139:[2,119],140:[2,119],141:[2,119],142:[2,119]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],86:[2,126],91:[2,126]},{6:[2,52],25:[2,52],26:[2,52],53:333,54:[1,240]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],86:[2,127],91:[2,127]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],73:[2,169],78:[2,169],86:[2,169],91:[2,169],93:[2,169],102:[2,169],103:86,104:[2,169],105:[2,169],106:[2,169],109:87,110:[2,169],111:70,118:[1,334],126:[2,169],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],73:[2,171],78:[2,171],86:[2,171],91:[2,171],93:[2,171],102:[2,171],103:86,104:[2,171],105:[1,335],106:[2,171],109:87,110:[2,171],111:70,118:[2,171],126:[2,171],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],73:[2,170],78:[2,170],86:[2,170],91:[2,170],93:[2,170],102:[2,170],103:86,104:[2,170],105:[2,170],106:[2,170],109:87,110:[2,170],111:70,118:[2,170],126:[2,170],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],78:[2,94]},{6:[2,52],25:[2,52],26:[2,52],53:336,54:[1,250]},{26:[1,337],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{6:[1,261],25:[1,262],26:[1,338]},{26:[1,339]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],49:[2,177],54:[2,177],57:[2,177],73:[2,177],78:[2,177],86:[2,177],91:[2,177],93:[2,177],102:[2,177],104:[2,177],105:[2,177],106:[2,177],110:[2,177],118:[2,177],126:[2,177],129:[2,177],130:[2,177],136:[2,177],137:[2,177],138:[2,177],139:[2,177],140:[2,177],141:[2,177],142:[2,177]},{26:[2,181],121:[2,181],123:[2,181]},{25:[2,133],54:[2,133],103:86,104:[1,66],106:[1,67],109:87,110:[1,69],111:70,126:[1,85],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{6:[1,284],25:[1,285],26:[1,340]},{7:341,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{7:342,8:119,9:18,10:19,11:[1,20],12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:63,28:[1,74],29:50,30:[1,72],31:[1,73],32:22,33:[1,51],34:[1,52],35:[1,53],36:[1,54],37:[1,55],38:[1,56],39:21,44:64,45:[1,46],46:[1,47],47:[1,27],50:28,51:[1,61],52:[1,62],58:48,59:49,61:37,63:23,64:24,65:25,76:[1,71],79:[1,44],83:[1,26],88:[1,59],89:[1,60],90:[1,58],96:[1,39],100:[1,45],101:[1,57],103:40,104:[1,66],106:[1,67],107:41,108:[1,68],109:42,110:[1,69],111:70,119:[1,43],124:38,125:[1,65],127:[1,29],128:[1,30],129:[1,31],130:[1,32],131:[1,33],133:[1,34],134:[1,35],135:[1,36]},{6:[1,295],25:[1,296],26:[1,343]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],78:[2,40]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],49:[2,175],54:[2,175],57:[2,175],73:[2,175],78:[2,175],86:[2,175],91:[2,175],93:[2,175],102:[2,175],104:[2,175],105:[2,175],106:[2,175],110:[2,175],118:[2,175],126:[2,175],129:[2,175],130:[2,175],136:[2,175],137:[2,175],138:[2,175],139:[2,175],140:[2,175],141:[2,175],142:[2,175]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],86:[2,128],91:[2,128]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],73:[2,172],78:[2,172],86:[2,172],91:[2,172],93:[2,172],102:[2,172],103:86,104:[2,172],105:[2,172],106:[2,172],109:87,110:[2,172],111:70,118:[2,172],126:[2,172],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],73:[2,173],78:[2,173],86:[2,173],91:[2,173],93:[2,173],102:[2,173],103:86,104:[2,173],105:[2,173],106:[2,173],109:87,110:[2,173],111:70,118:[2,173],126:[2,173],129:[1,78],130:[1,77],136:[1,76],137:[1,79],138:[1,80],139:[1,81],140:[1,82],141:[1,83],142:[1,84]},{6:[2,95],25:[2,95],26:[2,95],54:[2,95],78:[2,95]}], +defaultActions: {61:[2,50],62:[2,51],93:[2,109],199:[2,89]}, parseError: function parseError(str, hash) { throw new Error(str); }, diff --git a/lib/coffee-script/rewriter.js b/lib/coffee-script/rewriter.js index ebe668baf2..a3a87cae35 100644 --- a/lib/coffee-script/rewriter.js +++ b/lib/coffee-script/rewriter.js @@ -458,7 +458,7 @@ IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; - IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; + IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'AWAIT', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++']; IMPLICIT_UNSPACED_CALL = ['+', '-']; diff --git a/src/nodes.coffee b/src/nodes.coffee index ddc24fe271..81ffb90d6d 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -91,7 +91,7 @@ exports.Base = class Base meth = 'call' func = new Value func, [new Access new Literal meth] parts = (new Call func, args).compileNode o - if func.isGenerator + if func.isGenerator or func.isAsync parts.unshift @makeCode "(yield* " parts.push @makeCode ")" parts @@ -2201,12 +2201,12 @@ UTILITIES = # for async functions containing `await` async: -> " (function(){ - var async = function(gennerator) { + var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); - tracker.iterator = gennerator.apply(self, args); + tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); diff --git a/test/async.coffee b/test/async.coffee new file mode 100644 index 0000000000..4c7577d8f6 --- /dev/null +++ b/test/async.coffee @@ -0,0 +1,192 @@ + +### +For testing purposes pseudo-promises are used. These +execute the then method snchronously when sync promises are used. +All promises used here are sync, as they resolve/reject immediately, +and use no callbacks. +### +global.Promise = require "./promise.js" # override native Promise + +# always fulfills +winning = (val)-> + new Promise (win, fail)-> + win(val) + return + +# always is rejected +failing = (val)-> + new Promise (win, fail)-> + fail(val) + return + +test "async as argument", -> + ok -> + await winning() + +test "explicit async", -> + a = do -> + await return [1, 2, 3] + + eq a.constructor, Promise + +test "implicit async", -> + a = do -> + x = await winning(5) + y = await winning(4) + z = await winning(3) + return [x, y, z] + + eq a.constructor, Promise + +test "async return value (implicit)", -> + out = null + a = -> + x = await winning(5) + y = await winning(4) + z = await winning(3) + return [x, y, z] + + do -> + out = await a() + + arrayEq out, [5, 4, 3] + +test "async return value (explicit)", -> + out = null + a = -> + await return [5, 2, 3] + + do -> + out = await a() + + arrayEq out, [5, 2, 3] + + +test "async parameters", -> + [out1, out2] = [null, null] + a = (a, [b, c])-> + arr = [a] + arr.push b + arr.push c + await return arr + + b = (a, b, c = 5)-> + arr = [a] + arr.push b + arr.push c + await return arr + + do -> + out1 = await a(5, [4, 3]) + out2 = await b(4, 4) + + arrayEq out1, [5, 4, 3] + arrayEq out2, [4, 4, 5] + +test "async `this` scoping", -> + bnd = null + ubnd = null + nst = null + obj = + bound: -> + return do => + await return this + unbound: -> + return do -> + await return this + nested: -> + return do => + await do => + await do => + await return this + + do -> + bnd = await obj.bound() + ubnd = await obj.unbound() + nst = await obj.nested() + + eq bnd, obj + ok ubnd isnt obj + eq nst, obj + +test "await precedence", -> + out = null + + fn = (win, fail) -> + win(3) + + do -> + # assert precedence between unary (new) and power (**) operators + out = 1 + await new Promise(fn) ** 2 + + eq out, 10 + +test "`await` inside IIFEs", -> + [x, y, z] = new Array(3) + + a = do -> + x = switch (4) # switch 4 + when 2 + await winning(1) + when 4 + await winning(5) + when 7 + await winning(2) + + y = try + text = "this should be caught" + throw new Error(text) + await winning(1) + catch e + await winning(4) + + z = for i in [0..5] + a = i * i + await winning(a) + + eq x, 5 + eq y, 4 + + arrayEq z, [0, 1, 4, 9, 16, 25] + + + + +test "error if `await` occurs outside of a function", -> + throws -> CoffeeScript.compile 'await 1' + +test "error propagation", -> + res = null + a = -> + v1 = await winning(3) + v2 = await failing("err") + v3 = await failing(5) + return 5 + + b = -> + v1 = await winning(1) + v2 = await a() + v3 = await failing(6) + return v2 + + promise = b() + promise.then( + (val) -> + res = val + , + (err) -> + res = err + ) + + ok res isnt 5 + eq res, "err" + + + + + + + + + + From 6ee97465925e440056d4ece0a35b673ed152eec6 Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Thu, 18 Dec 2014 19:04:47 -0500 Subject: [PATCH 05/35] invalid to have await, yield(from) in same function --- lib/coffee-script/nodes.js | 3 +++ src/nodes.coffee | 3 +++ test/async.coffee | 11 ++++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index f16b8ab0cc..2f80f0252e 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -1830,6 +1830,9 @@ this.isAsync = !!this.body.contains(function(node) { return node instanceof Op && node.isAwait(); }); + if (this.isAsync && this.isGenerator) { + this.err("funtion can be a generator or async, but not both"); + } } Code.prototype.children = ['params', 'body']; diff --git a/src/nodes.coffee b/src/nodes.coffee index 81ffb90d6d..67a24d00f7 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -1328,6 +1328,9 @@ exports.Code = class Code extends Base @isAsync = !!@body.contains (node) -> node instanceof Op and node.isAwait() + if @isAsync and @isGenerator + @err "funtion can be a generator or async, but not both" + children: ['params', 'body'] # a closure containing `await` should simply compile to a generator function diff --git a/test/async.coffee b/test/async.coffee index 4c7577d8f6..ca15657b7a 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -34,7 +34,7 @@ test "implicit async", -> x = await winning(5) y = await winning(4) z = await winning(3) - return [x, y, z] + [x, y, z] eq a.constructor, Promise @@ -44,7 +44,7 @@ test "async return value (implicit)", -> x = await winning(5) y = await winning(4) z = await winning(3) - return [x, y, z] + [x, y, z] do -> out = await a() @@ -149,11 +149,12 @@ test "`await` inside IIFEs", -> arrayEq z, [0, 1, 4, 9, 16, 25] - - +test "error if function contains both `await`, and `yield` or `yieldfrom`", -> + throws -> CoffeeScript.compile '()-> yield 5; await a;' + throws -> CoffeeScript.compile '()-> yield from a; await b;' test "error if `await` occurs outside of a function", -> - throws -> CoffeeScript.compile 'await 1' + throws -> CoffeeScript.compile 'await 1' test "error propagation", -> res = null From 0c06e15ead05d842529d48199400e0ff243dd4fa Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Fri, 19 Dec 2014 01:00:52 -0500 Subject: [PATCH 06/35] changed error handling and tests --- lib/coffee-script/nodes.js | 2 +- src/nodes.coffee | 18 +++++++++++------- test/async.coffee | 38 ++++++++++++++------------------------ 3 files changed, 26 insertions(+), 32 deletions(-) diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index 2f80f0252e..8ab9171e19 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -3129,7 +3129,7 @@ UTILITIES = { async: function() { - return "(function(){ var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); }); }; }; function Tracker() { var self = this; this.thenHandle = function(value) { self.result = value; self.tick(); }; this.failHandle = function(value) { self.fail(value); }; this.send = false; this.result = undefined; this.iterator = undefined; this.win = undefined; this.fail = undefined; }; Tracker.prototype = { tick: function() { var next; if (this.send) { next = this.iterator.next(this.result); } else { next = this.iterator.next(); this.send = true; } if (next.done) { this.win(next.value); } else { next.value.then(this.thenHandle, this.failHandle); } } }; return async; }())"; + return "(function(){ var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); }); }; }; function Tracker() { var self = this; this.thenHandle = function(value) { self.result = value; self.tick(); }; this.failHandle = function(err) { self.result = err; self.throw = true; self.tick(); }; this.throw = false; this.result = undefined; this.iterator = undefined; this.win = undefined; this.fail = undefined; }; Tracker.prototype = { tick: function() { var next; if (this.throw) { next = this.iterator.throw(this.result); this.throw = false; } else { next = this.iterator.next(this.result); } this.type = 1; if (next.done) { this.win(next.value); } else { next.value.then(this.thenHandle, this.failHandle); } } }; return async; }())"; }, "extends": function() { return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"; diff --git a/src/nodes.coffee b/src/nodes.coffee index 67a24d00f7..23f4fccad4 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -2225,11 +2225,13 @@ UTILITIES = self.tick(); }; - this.failHandle = function(value) { - self.fail(value); + this.failHandle = function(err) { + self.result = err; + self.throw = true; + self.tick(); }; - this.send = false; + this.throw = false; this.result = undefined; this.iterator = undefined; @@ -2240,13 +2242,15 @@ UTILITIES = Tracker.prototype = { tick: function() { var next; - if (this.send) { - next = this.iterator.next(this.result); + if (this.throw) { + next = this.iterator.throw(this.result); + this.throw = false; } else { - next = this.iterator.next(); - this.send = true; + next = this.iterator.next(this.result); } + this.type = 1; + if (next.done) { this.win(next.value); } else { diff --git a/test/async.coffee b/test/async.coffee index ca15657b7a..154c33637c 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -16,7 +16,7 @@ winning = (val)-> # always is rejected failing = (val)-> new Promise (win, fail)-> - fail(val) + fail(new Error(val)) return test "async as argument", -> @@ -156,32 +156,22 @@ test "error if function contains both `await`, and `yield` or `yieldfrom`", -> test "error if `await` occurs outside of a function", -> throws -> CoffeeScript.compile 'await 1' -test "error propagation", -> +test "error throwing", -> + throws -> + await failing(2) + +test "error handling", -> res = null a = -> - v1 = await winning(3) - v2 = await failing("err") - v3 = await failing(5) - return 5 - - b = -> - v1 = await winning(1) - v2 = await a() - v3 = await failing(6) - return v2 - - promise = b() - promise.then( - (val) -> - res = val - , - (err) -> - res = err - ) - - ok res isnt 5 - eq res, "err" + try + await failing(2) + catch e + 7 + + do -> + res = await a() + eq res, 7 From 0b03216c054bcb39cbb4c8c0b6de1e3b50d1ac6f Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Fri, 19 Dec 2014 01:02:06 -0500 Subject: [PATCH 07/35] bug fix --- lib/coffee-script/nodes.js | 2 +- src/nodes.coffee | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index 8ab9171e19..1c2332087d 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -3129,7 +3129,7 @@ UTILITIES = { async: function() { - return "(function(){ var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); }); }; }; function Tracker() { var self = this; this.thenHandle = function(value) { self.result = value; self.tick(); }; this.failHandle = function(err) { self.result = err; self.throw = true; self.tick(); }; this.throw = false; this.result = undefined; this.iterator = undefined; this.win = undefined; this.fail = undefined; }; Tracker.prototype = { tick: function() { var next; if (this.throw) { next = this.iterator.throw(this.result); this.throw = false; } else { next = this.iterator.next(this.result); } this.type = 1; if (next.done) { this.win(next.value); } else { next.value.then(this.thenHandle, this.failHandle); } } }; return async; }())"; + return "(function(){ var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); }); }; }; function Tracker() { var self = this; this.thenHandle = function(value) { self.result = value; self.tick(); }; this.failHandle = function(err) { self.result = err; self.throw = true; self.tick(); }; this.throw = false; this.result = undefined; this.iterator = undefined; this.win = undefined; this.fail = undefined; }; Tracker.prototype = { tick: function() { var next; if (this.throw) { next = this.iterator.throw(this.result); this.throw = false; } else { next = this.iterator.next(this.result); } if (next.done) { this.win(next.value); } else { next.value.then(this.thenHandle, this.failHandle); } } }; return async; }())"; }, "extends": function() { return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"; diff --git a/src/nodes.coffee b/src/nodes.coffee index 23f4fccad4..2871799236 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -2249,8 +2249,6 @@ UTILITIES = next = this.iterator.next(this.result); } - this.type = 1; - if (next.done) { this.win(next.value); } else { From d83b5654467e73cddcca1f451d3ebe75ceb15ff9 Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Fri, 19 Dec 2014 10:53:55 -0500 Subject: [PATCH 08/35] made error handling test more rigorous --- test/async.coffee | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/test/async.coffee b/test/async.coffee index 154c33637c..5f028cac0c 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -162,22 +162,19 @@ test "error throwing", -> test "error handling", -> res = null + val = 0 a = -> try - await failing(2) + await failing("fail") catch e - 7 + val = 7 # to assure the catch block runs + return e + do -> res = await a() - eq res, 7 - - - - - - - - + eq val, 7 + ok res.message? + eq res.message, "fail" \ No newline at end of file From 361ee23158ad324419432b45c82d9a2ec60a9f6f Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Fri, 16 Jan 2015 13:16:50 -0800 Subject: [PATCH 09/35] consolidated harmony test files --- Cakefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Cakefile b/Cakefile index e90dc6527f..e951056c2e 100644 --- a/Cakefile +++ b/Cakefile @@ -80,6 +80,11 @@ monthNames = [ 'December' ] +harmonyFiles = [ + 'async.coffee' + 'generators.coffee' +] + formatDate = (date) -> date.replace /^(\d\d\d\d)-(\d\d)-(\d\d)$/, (match, $1, $2, $3) -> "#{monthNames[$2 - 1]} #{+$3}, #{$1}" @@ -280,8 +285,9 @@ runTests = (CoffeeScript) -> # Ignore generator dependent test files if generators are not available generatorsAreAvailable = '--harmony' in process.execArgv or '--harmony-generators' in process.execArgv - files.splice files.indexOf('generators.coffee'), 1 if not generatorsAreAvailable - files.splice files.indexOf('async.coffee'), 1 if not generatorsAreAvailable + unless generatorsAreAvailable + for harmonyFile in harmonyFiles + files.splice files.indexOf(harmonyFile), 1 for file in files when helpers.isCoffee file literate = helpers.isLiterate file From 5a04d02a34a4bd36780e72e15eb24dd5b0053181 Mon Sep 17 00:00:00 2001 From: Gabriel Ratener Date: Thu, 29 Jan 2015 11:41:23 -0800 Subject: [PATCH 10/35] added async constructor support and tests --- lib/coffee-script/lexer.js | 2 +- lib/coffee-script/nodes.js | 16 ++++++++++---- src/lexer.coffee | 2 +- src/nodes.coffee | 14 +++++++++--- test/async.coffee | 45 +++++++++++++++++++++++++++++++++++++- 5 files changed, 69 insertions(+), 10 deletions(-) diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index d4446c63d6..bf18457315 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -787,7 +787,7 @@ })(); - JS_KEYWORDS = ['await', 'true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super']; + JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super']; COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when', 'await']; diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index a82fa61cb0..2b3465785c 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -910,7 +910,7 @@ } accesses.push(new Access(new Literal(method.name))); return (new Value(new Literal(method.klass), accesses)).compile(o); - } else if (method != null ? method.ctor : void 0) { + } else if ((method != null) && (method.ctor || method.asyncCtor)) { return method.name + ".__super__.constructor"; } else { return this.error('cannot call super outside of an instance method.'); @@ -1429,7 +1429,7 @@ }; Class.prototype.addProperties = function(node, name, o) { - var assign, base, exprs, func, props; + var assign, base, exprs, external, func, props; props = node.base.properties.slice(0); exprs = (function() { var _results; @@ -1446,9 +1446,17 @@ if (func.bound) { assign.error('cannot define a constructor as a bound function'); } + external = true; if (func instanceof Code) { - assign = this.ctor = func; - } else { + if (func.isAsync) { + func.asyncCtor = true; + func.name = 'constructor'; + } else { + assign = this.ctor = func; + external = false; + } + } + if (external) { this.externalCtor = o.classScope.freeVariable('class'); assign = new Assign(new Literal(this.externalCtor), func); } diff --git a/src/lexer.coffee b/src/lexer.coffee index 7e50c8da7d..f3bff2ee0b 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -690,7 +690,7 @@ exports.Lexer = class Lexer # Keywords that CoffeeScript shares in common with JavaScript. JS_KEYWORDS = [ - 'await','true', 'false', 'null', 'this' + 'true', 'false', 'null', 'this' 'new', 'delete', 'typeof', 'in', 'instanceof' 'return', 'throw', 'break', 'continue', 'debugger', 'yield' 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally' diff --git a/src/nodes.coffee b/src/nodes.coffee index 344099e53a..b8d6ee0399 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -618,7 +618,7 @@ exports.Call = class Call extends Base accesses.push new Access new Literal 'constructor' if method.static accesses.push new Access new Literal method.name (new Value (new Literal method.klass), accesses).compile o - else if method?.ctor + else if method? and (method.ctor or method.asyncCtor) "#{method.name}.__super__.constructor" else @error 'cannot call super outside of an instance method.' @@ -1035,11 +1035,19 @@ exports.Class = class Class extends Base assign.error 'cannot define more than one constructor in a class' if func.bound assign.error 'cannot define a constructor as a bound function' + + external = yes if func instanceof Code - assign = @ctor = func - else + if func.isAsync + func.asyncCtor = yes + func.name = 'constructor' + else + assign = @ctor = func + external = no + if external @externalCtor = o.classScope.freeVariable 'class' assign = new Assign new Literal(@externalCtor), func + else if assign.variable.this func.static = yes diff --git a/test/async.coffee b/test/async.coffee index 5f028cac0c..4415b03333 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -177,4 +177,47 @@ test "error handling", -> eq val, 7 ok res.message? - eq res.message, "fail" \ No newline at end of file + eq res.message, "fail" + +test "async constructor definition", -> + class DeferedCtr + constructor: ()-> + await return @ + otherasyncfunc: ()-> + await winning(4) + return 2 + +test "async constructor initialization", -> + class DeferedCtr + constructor: ()-> + await return @ + otherasyncfunc: ()-> + await winning(4) + return 2 + do -> + instance = await new DeferedCtr() + a = await instance.otherasyncfunc() + eq a, 2 + +test "async inheritance", -> + class DeferedCtr + constructor: ()-> + await return @ + otherasyncfunc: ()-> + await winning(4) + return 2 + + class Defered2 extends DeferedCtr + constructor: (a, b)-> + await winning(2) + await winning(1) + await super + otherasyncfunc: ()-> + b = await winning(2) + a = await super + return a + b + + do -> + instance = await new Defered2() + a = await instance.otherasyncfunc() + eq a, 4 From 4e0ff11df13855776c6dd4e7e14f2502b6031d6e Mon Sep 17 00:00:00 2001 From: Gabe Date: Thu, 8 Sep 2016 22:20:42 -0700 Subject: [PATCH 11/35] removed .orig files --- src/lexer.coffee.orig | 965 -------------- src/nodes.coffee.orig | 2567 -------------------------------------- src/rewriter.coffee.orig | 515 -------- 3 files changed, 4047 deletions(-) delete mode 100644 src/lexer.coffee.orig delete mode 100644 src/nodes.coffee.orig delete mode 100644 src/rewriter.coffee.orig diff --git a/src/lexer.coffee.orig b/src/lexer.coffee.orig deleted file mode 100644 index 3c92436eaf..0000000000 --- a/src/lexer.coffee.orig +++ /dev/null @@ -1,965 +0,0 @@ -# The CoffeeScript Lexer. Uses a series of token-matching regexes to attempt -# matches against the beginning of the source code. When a match is found, -# a token is produced, we consume the match, and start again. Tokens are in the -# form: -# -# [tag, value, locationData] -# -# where locationData is {first_line, first_column, last_line, last_column}, which is a -# format that can be fed directly into [Jison](http://github.com/zaach/jison). These -# are read by jison in the `parser.lexer` function defined in coffee-script.coffee. - -{Rewriter, INVERSES} = require './rewriter' - -# Import the helpers we need. -{count, starts, compact, repeat, invertLiterate, -locationDataToString, throwSyntaxError} = require './helpers' - -# The Lexer Class -# --------------- - -# The Lexer class reads a stream of CoffeeScript and divvies it up into tagged -# tokens. Some potential ambiguity in the grammar has been avoided by -# pushing some extra smarts into the Lexer. -exports.Lexer = class Lexer - - # **tokenize** is the Lexer's main method. Scan by attempting to match tokens - # one at a time, using a regular expression anchored at the start of the - # remaining code, or a custom recursive token-matching method - # (for interpolations). When the next token has been recorded, we move forward - # within the code past the token, and begin again. - # - # Each tokenizing method is responsible for returning the number of characters - # it has consumed. - # - # Before returning the token stream, run it through the [Rewriter](rewriter.html). - tokenize: (code, opts = {}) -> - @literate = opts.literate # Are we lexing literate CoffeeScript? - @indent = 0 # The current indentation level. - @baseIndent = 0 # The overall minimum indentation level - @indebt = 0 # The over-indentation at the current level. - @outdebt = 0 # The under-outdentation at the current level. - @indents = [] # The stack of all current indentation levels. - @ends = [] # The stack for pairing up tokens. - @tokens = [] # Stream of parsed tokens in the form `['TYPE', value, location data]`. - @seenFor = no # Used to recognize FORIN and FOROF tokens. - - @chunkLine = - opts.line or 0 # The start line for the current @chunk. - @chunkColumn = - opts.column or 0 # The start column of the current @chunk. - code = @clean code # The stripped, cleaned original source code. - - # At every position, run through this list of attempted matches, - # short-circuiting if any of them succeed. Their order determines precedence: - # `@literalToken` is the fallback catch-all. - i = 0 - while @chunk = code[i..] - consumed = \ - @identifierToken() or - @commentToken() or - @whitespaceToken() or - @lineToken() or - @stringToken() or - @numberToken() or - @regexToken() or - @jsToken() or - @literalToken() - - # Update position - [@chunkLine, @chunkColumn] = @getLineAndColumnFromChunk consumed - - i += consumed - - return {@tokens, index: i} if opts.untilBalanced and @ends.length is 0 - - @closeIndentation() - @error "missing #{end.tag}", end.origin[2] if end = @ends.pop() - return @tokens if opts.rewrite is off - (new Rewriter).rewrite @tokens - - # Preprocess the code to remove leading and trailing whitespace, carriage - # returns, etc. If we're lexing literate CoffeeScript, strip external Markdown - # by removing all lines that aren't indented by at least four spaces or a tab. - clean: (code) -> - code = code.slice(1) if code.charCodeAt(0) is BOM - code = code.replace(/\r/g, '').replace TRAILING_SPACES, '' - if WHITESPACE.test code - code = "\n#{code}" - @chunkLine-- - code = invertLiterate code if @literate - code - - # Tokenizers - # ---------- - - # Matches identifying literals: variables, keywords, method names, etc. - # Check to ensure that JavaScript reserved words aren't being used as - # identifiers. Because CoffeeScript reserves a handful of keywords that are - # allowed in JavaScript, we're careful not to tag them as keywords when - # referenced as property names here, so you can still do `jQuery.is()` even - # though `is` means `===` otherwise. - identifierToken: -> - return 0 unless match = IDENTIFIER.exec @chunk - [input, id, colon] = match - - # Preserve length of id for location data - idLength = id.length - poppedToken = undefined - - if id is 'own' and @tag() is 'FOR' - @token 'OWN', id - return id.length - if id is 'from' and @tag() is 'YIELD' - @token 'FROM', id - return id.length - [..., prev] = @tokens - tag = - if colon or prev? and - (prev[0] in ['.', '?.', '::', '?::'] or - not prev.spaced and prev[0] is '@') - 'PROPERTY' - else - 'IDENTIFIER' - - if tag is 'IDENTIFIER' and (id in JS_KEYWORDS or id in COFFEE_KEYWORDS) - tag = id.toUpperCase() - if tag is 'WHEN' and @tag() in LINE_BREAK - tag = 'LEADING_WHEN' - else if tag is 'FOR' - @seenFor = yes - else if tag is 'UNLESS' - tag = 'IF' - else if tag in UNARY - tag = 'UNARY' - else if tag in RELATION - if tag isnt 'INSTANCEOF' and @seenFor - tag = 'FOR' + tag - @seenFor = no - else - tag = 'RELATION' - if @value() is '!' - poppedToken = @tokens.pop() - id = '!' + id - - if tag is 'IDENTIFIER' and id in RESERVED - @error "reserved word '#{id}'", length: id.length - - unless tag is 'PROPERTY' - if id in COFFEE_ALIASES - alias = id - id = COFFEE_ALIAS_MAP[id] - tag = switch id - when '!' then 'UNARY' - when '==', '!=' then 'COMPARE' - when '&&', '||' then 'LOGIC' - when 'true', 'false' then 'BOOL' - when 'break', 'continue', \ - 'debugger' then 'STATEMENT' - else tag - - tagToken = @token tag, id, 0, idLength - tagToken.origin = [tag, alias, tagToken[2]] if alias - if poppedToken - [tagToken[2].first_line, tagToken[2].first_column] = - [poppedToken[2].first_line, poppedToken[2].first_column] - if colon - colonOffset = input.lastIndexOf ':' - @token ':', ':', colonOffset, colon.length - - input.length - - # Matches numbers, including decimals, hex, and exponential notation. - # Be careful not to interfere with ranges-in-progress. - numberToken: -> - return 0 unless match = NUMBER.exec @chunk - number = match[0] - lexedLength = number.length - if /^0[BOX]/.test number - @error "radix prefix in '#{number}' must be lowercase", offset: 1 - else if /E/.test(number) and not /^0x/.test number - @error "exponential notation in '#{number}' must be indicated with a lowercase 'e'", - offset: number.indexOf('E') - else if /^0\d*[89]/.test number - @error "decimal literal '#{number}' must not be prefixed with '0'", length: lexedLength - else if /^0\d+/.test number - @error "octal literal '#{number}' must be prefixed with '0o'", length: lexedLength - if octalLiteral = /^0o([0-7]+)/.exec number - numberValue = parseInt(octalLiteral[1], 8) - number = "0x#{numberValue.toString 16}" - else if binaryLiteral = /^0b([01]+)/.exec number - numberValue = parseInt(binaryLiteral[1], 2) - number = "0x#{numberValue.toString 16}" - else - numberValue = parseFloat(number) - tag = if numberValue is Infinity then 'INFINITY' else 'NUMBER' - @token tag, number, 0, lexedLength - lexedLength - - # Matches strings, including multi-line strings, as well as heredocs, with or without - # interpolation. - stringToken: -> - [quote] = STRING_START.exec(@chunk) || [] - return 0 unless quote - regex = switch quote - when "'" then STRING_SINGLE - when '"' then STRING_DOUBLE - when "'''" then HEREDOC_SINGLE - when '"""' then HEREDOC_DOUBLE - heredoc = quote.length is 3 - - {tokens, index: end} = @matchWithInterpolations regex, quote - $ = tokens.length - 1 - - delimiter = quote.charAt(0) - if heredoc - # Find the smallest indentation. It will be removed from all lines later. - indent = null - doc = (token[1] for token, i in tokens when token[0] is 'NEOSTRING').join '#{}' - while match = HEREDOC_INDENT.exec doc - attempt = match[1] - indent = attempt if indent is null or 0 < attempt.length < indent.length - indentRegex = /// ^#{indent} ///gm if indent - @mergeInterpolationTokens tokens, {delimiter}, (value, i) => - value = @formatString value - value = value.replace LEADING_BLANK_LINE, '' if i is 0 - value = value.replace TRAILING_BLANK_LINE, '' if i is $ - value = value.replace indentRegex, '' if indentRegex - value - else - @mergeInterpolationTokens tokens, {delimiter}, (value, i) => - value = @formatString value - value = value.replace SIMPLE_STRING_OMIT, (match, offset) -> - if (i is 0 and offset is 0) or - (i is $ and offset + match.length is value.length) - '' - else - ' ' - value - - end - - # Matches and consumes comments. - commentToken: -> - return 0 unless match = @chunk.match COMMENT - [comment, here] = match - if here - if match = HERECOMMENT_ILLEGAL.exec comment - @error "block comments cannot contain #{match[0]}", - offset: match.index, length: match[0].length - if here.indexOf('\n') >= 0 - here = here.replace /// \n #{repeat ' ', @indent} ///g, '\n' - @token 'HERECOMMENT', here, 0, comment.length - comment.length - - # Matches JavaScript interpolated directly into the source via backticks. - jsToken: -> - return 0 unless @chunk.charAt(0) is '`' and match = JSTOKEN.exec @chunk - @token 'JS', (script = match[0])[1...-1], 0, script.length - script.length - - # Matches regular expression literals, as well as multiline extended ones. - # Lexing regular expressions is difficult to distinguish from division, so we - # borrow some basic heuristics from JavaScript and Ruby. - regexToken: -> - switch - when match = REGEX_ILLEGAL.exec @chunk - @error "regular expressions cannot begin with #{match[2]}", - offset: match.index + match[1].length - when match = @matchWithInterpolations HEREGEX, '///' - {tokens, index} = match - when match = REGEX.exec @chunk - [regex, body, closed] = match - @validateEscapes body, isRegex: yes, offsetInChunk: 1 - index = regex.length - [..., prev] = @tokens - if prev - if prev.spaced and prev[0] in CALLABLE - return 0 if not closed or POSSIBLY_DIVISION.test regex - else if prev[0] in NOT_REGEX - return 0 - @error 'missing / (unclosed regex)' unless closed - else - return 0 - - [flags] = REGEX_FLAGS.exec @chunk[index..] - end = index + flags.length - origin = @makeToken 'REGEX', null, 0, end - switch - when not VALID_FLAGS.test flags - @error "invalid regular expression flags #{flags}", offset: index, length: flags.length - when regex or tokens.length is 1 - body ?= @formatHeregex tokens[0][1] - @token 'REGEX', "#{@makeDelimitedLiteral body, delimiter: '/'}#{flags}", 0, end, origin - else - @token 'REGEX_START', '(', 0, 0, origin - @token 'IDENTIFIER', 'RegExp', 0, 0 - @token 'CALL_START', '(', 0, 0 - @mergeInterpolationTokens tokens, {delimiter: '"', double: yes}, @formatHeregex - if flags - @token ',', ',', index, 0 - @token 'STRING', '"' + flags + '"', index, flags.length - @token ')', ')', end, 0 - @token 'REGEX_END', ')', end, 0 - - end - - # Matches newlines, indents, and outdents, and determines which is which. - # If we can detect that the current line is continued onto the next line, - # then the newline is suppressed: - # - # elements - # .each( ... ) - # .map( ... ) - # - # Keeps track of the level of indentation, because a single outdent token - # can close multiple indents, so we need to know how far in we happen to be. - lineToken: -> - return 0 unless match = MULTI_DENT.exec @chunk - indent = match[0] - @seenFor = no - size = indent.length - 1 - indent.lastIndexOf '\n' - noNewlines = @unfinished() - if size - @indebt is @indent - if noNewlines then @suppressNewlines() else @newlineToken 0 - return indent.length - - if size > @indent - if noNewlines - @indebt = size - @indent - @suppressNewlines() - return indent.length - unless @tokens.length - @baseIndent = @indent = size - return indent.length - diff = size - @indent + @outdebt - @token 'INDENT', diff, indent.length - size, size - @indents.push diff - @ends.push {tag: 'OUTDENT'} - @outdebt = @indebt = 0 - @indent = size - else if size < @baseIndent - @error 'missing indentation', offset: indent.length - else - @indebt = 0 - @outdentToken @indent - size, noNewlines, indent.length - indent.length - - # Record an outdent token or multiple tokens, if we happen to be moving back - # inwards past several recorded indents. Sets new @indent value. - outdentToken: (moveOut, noNewlines, outdentLength) -> - decreasedIndent = @indent - moveOut - while moveOut > 0 - lastIndent = @indents[@indents.length - 1] - if not lastIndent - moveOut = 0 - else if lastIndent is @outdebt - moveOut -= @outdebt - @outdebt = 0 - else if lastIndent < @outdebt - @outdebt -= lastIndent - moveOut -= lastIndent - else - dent = @indents.pop() + @outdebt - if outdentLength and @chunk[outdentLength] in INDENTABLE_CLOSERS - decreasedIndent -= dent - moveOut - moveOut = dent - @outdebt = 0 - # pair might call outdentToken, so preserve decreasedIndent - @pair 'OUTDENT' - @token 'OUTDENT', moveOut, 0, outdentLength - moveOut -= dent - @outdebt -= moveOut if dent - @tokens.pop() while @value() is ';' - - @token 'TERMINATOR', '\n', outdentLength, 0 unless @tag() is 'TERMINATOR' or noNewlines - @indent = decreasedIndent - this - - # Matches and consumes non-meaningful whitespace. Tag the previous token - # as being "spaced", because there are some cases where it makes a difference. - whitespaceToken: -> - return 0 unless (match = WHITESPACE.exec @chunk) or - (nline = @chunk.charAt(0) is '\n') - [..., prev] = @tokens - prev[if match then 'spaced' else 'newLine'] = true if prev - if match then match[0].length else 0 - - # Generate a newline token. Consecutive newlines get merged together. - newlineToken: (offset) -> - @tokens.pop() while @value() is ';' - @token 'TERMINATOR', '\n', offset, 0 unless @tag() is 'TERMINATOR' - this - - # Use a `\` at a line-ending to suppress the newline. - # The slash is removed here once its job is done. - suppressNewlines: -> - @tokens.pop() if @value() is '\\' - this - - # We treat all other single characters as a token. E.g.: `( ) , . !` - # Multi-character operators are also literal tokens, so that Jison can assign - # the proper order of operations. There are some symbols that we tag specially - # here. `;` and newlines are both treated as a `TERMINATOR`, we distinguish - # parentheses that indicate a method call from regular parentheses, and so on. - literalToken: -> - if match = OPERATOR.exec @chunk - [value] = match - @tagParameters() if CODE.test value - else - value = @chunk.charAt 0 - tag = value - [..., prev] = @tokens - - if prev and value in ['=', COMPOUND_ASSIGN...] - skipToken = false - if value is '=' and prev[1] in ['||', '&&'] and not prev.spaced - prev[0] = 'COMPOUND_ASSIGN' - prev[1] += '=' - prev = @tokens[@tokens.length - 2] - skipToken = true - if prev and prev[0] isnt 'PROPERTY' - origin = prev.origin ? prev - message = isUnassignable prev[1], origin[1] - @error message, origin[2] if message - return value.length if skipToken - - if value is ';' - @seenFor = no - tag = 'TERMINATOR' - else if value in MATH then tag = 'MATH' - else if value in COMPARE then tag = 'COMPARE' - else if value in COMPOUND_ASSIGN then tag = 'COMPOUND_ASSIGN' - else if value in UNARY then tag = 'UNARY' - else if value in UNARY_MATH then tag = 'UNARY_MATH' - else if value in SHIFT then tag = 'SHIFT' - else if value in LOGIC or value is '?' and prev?.spaced then tag = 'LOGIC' - else if prev and not prev.spaced - if value is '(' and prev[0] in CALLABLE - prev[0] = 'FUNC_EXIST' if prev[0] is '?' - tag = 'CALL_START' - else if value is '[' and prev[0] in INDEXABLE - tag = 'INDEX_START' - switch prev[0] - when '?' then prev[0] = 'INDEX_SOAK' - token = @makeToken tag, value - switch value - when '(', '{', '[' then @ends.push {tag: INVERSES[value], origin: token} - when ')', '}', ']' then @pair value - @tokens.push token - value.length - - # Token Manipulators - # ------------------ - - # A source of ambiguity in our grammar used to be parameter lists in function - # definitions versus argument lists in function calls. Walk backwards, tagging - # parameters specially in order to make things easier for the parser. - tagParameters: -> - return this if @tag() isnt ')' - stack = [] - {tokens} = this - i = tokens.length - tokens[--i][0] = 'PARAM_END' - while tok = tokens[--i] - switch tok[0] - when ')' - stack.push tok - when '(', 'CALL_START' - if stack.length then stack.pop() - else if tok[0] is '(' - tok[0] = 'PARAM_START' - return this - else return this - this - - # Close up all remaining open blocks at the end of the file. - closeIndentation: -> - @outdentToken @indent - - # Match the contents of a delimited token and expand variables and expressions - # inside it using Ruby-like notation for substitution of arbitrary - # expressions. - # - # "Hello #{name.capitalize()}." - # - # If it encounters an interpolation, this method will recursively create a new - # Lexer and tokenize until the `{` of `#{` is balanced with a `}`. - # - # - `regex` matches the contents of a token (but not `delimiter`, and not - # `#{` if interpolations are desired). - # - `delimiter` is the delimiter of the token. Examples are `'`, `"`, `'''`, - # `"""` and `///`. - # - # This method allows us to have strings within interpolations within strings, - # ad infinitum. - matchWithInterpolations: (regex, delimiter) -> - tokens = [] - offsetInChunk = delimiter.length - return null unless @chunk[...offsetInChunk] is delimiter - str = @chunk[offsetInChunk..] - loop - [strPart] = regex.exec str - - @validateEscapes strPart, {isRegex: delimiter.charAt(0) is '/', offsetInChunk} - - # Push a fake 'NEOSTRING' token, which will get turned into a real string later. - tokens.push @makeToken 'NEOSTRING', strPart, offsetInChunk - - str = str[strPart.length..] - offsetInChunk += strPart.length - - break unless str[...2] is '#{' - - # The `1`s are to remove the `#` in `#{`. - [line, column] = @getLineAndColumnFromChunk offsetInChunk + 1 - {tokens: nested, index} = - new Lexer().tokenize str[1..], line: line, column: column, untilBalanced: on - # Skip the trailing `}`. - index += 1 - - # Turn the leading and trailing `{` and `}` into parentheses. Unnecessary - # parentheses will be removed later. - [open, ..., close] = nested - open[0] = open[1] = '(' - close[0] = close[1] = ')' - close.origin = ['', 'end of interpolation', close[2]] - - # Remove leading 'TERMINATOR' (if any). - nested.splice 1, 1 if nested[1]?[0] is 'TERMINATOR' - - # Push a fake 'TOKENS' token, which will get turned into real tokens later. - tokens.push ['TOKENS', nested] - - str = str[index..] - offsetInChunk += index - - unless str[...delimiter.length] is delimiter - @error "missing #{delimiter}", length: delimiter.length - - [firstToken, ..., lastToken] = tokens - firstToken[2].first_column -= delimiter.length - lastToken[2].last_column += delimiter.length - lastToken[2].last_column -= 1 if lastToken[1].length is 0 - - {tokens, index: offsetInChunk + delimiter.length} - - # Merge the array `tokens` of the fake token types 'TOKENS' and 'NEOSTRING' - # (as returned by `matchWithInterpolations`) into the token stream. The value - # of 'NEOSTRING's are converted using `fn` and turned into strings using - # `options` first. - mergeInterpolationTokens: (tokens, options, fn) -> - if tokens.length > 1 - lparen = @token 'STRING_START', '(', 0, 0 - - firstIndex = @tokens.length - for token, i in tokens - [tag, value] = token - switch tag - when 'TOKENS' - # Optimize out empty interpolations (an empty pair of parentheses). - continue if value.length is 2 - # Push all the tokens in the fake 'TOKENS' token. These already have - # sane location data. - locationToken = value[0] - tokensToPush = value - when 'NEOSTRING' - # Convert 'NEOSTRING' into 'STRING'. - converted = fn token[1], i - # Optimize out empty strings. We ensure that the tokens stream always - # starts with a string token, though, to make sure that the result - # really is a string. - if converted.length is 0 - if i is 0 - firstEmptyStringIndex = @tokens.length - else - continue - # However, there is one case where we can optimize away a starting - # empty string. - if i is 2 and firstEmptyStringIndex? - @tokens.splice firstEmptyStringIndex, 2 # Remove empty string and the plus. - token[0] = 'STRING' - token[1] = @makeDelimitedLiteral converted, options - locationToken = token - tokensToPush = [token] - if @tokens.length > firstIndex - # Create a 0-length "+" token. - plusToken = @token '+', '+' - plusToken[2] = - first_line: locationToken[2].first_line - first_column: locationToken[2].first_column - last_line: locationToken[2].first_line - last_column: locationToken[2].first_column - @tokens.push tokensToPush... - - if lparen - [..., lastToken] = tokens - lparen.origin = ['STRING', null, - first_line: lparen[2].first_line - first_column: lparen[2].first_column - last_line: lastToken[2].last_line - last_column: lastToken[2].last_column - ] - rparen = @token 'STRING_END', ')' - rparen[2] = - first_line: lastToken[2].last_line - first_column: lastToken[2].last_column - last_line: lastToken[2].last_line - last_column: lastToken[2].last_column - - # Pairs up a closing token, ensuring that all listed pairs of tokens are - # correctly balanced throughout the course of the token stream. - pair: (tag) -> - [..., prev] = @ends - unless tag is wanted = prev?.tag - @error "unmatched #{tag}" unless 'OUTDENT' is wanted - # Auto-close INDENT to support syntax like this: - # - # el.click((event) -> - # el.hide()) - # - [..., lastIndent] = @indents - @outdentToken lastIndent, true - return @pair tag - @ends.pop() - - # Helpers - # ------- - - # Returns the line and column number from an offset into the current chunk. - # - # `offset` is a number of characters into @chunk. - getLineAndColumnFromChunk: (offset) -> - if offset is 0 - return [@chunkLine, @chunkColumn] - - if offset >= @chunk.length - string = @chunk - else - string = @chunk[..offset-1] - - lineCount = count string, '\n' - - column = @chunkColumn - if lineCount > 0 - [..., lastLine] = string.split '\n' - column = lastLine.length - else - column += string.length - - [@chunkLine + lineCount, column] - - # Same as "token", exception this just returns the token without adding it - # to the results. - makeToken: (tag, value, offsetInChunk = 0, length = value.length) -> - locationData = {} - [locationData.first_line, locationData.first_column] = - @getLineAndColumnFromChunk offsetInChunk - - # Use length - 1 for the final offset - we're supplying the last_line and the last_column, - # so if last_column == first_column, then we're looking at a character of length 1. - lastCharacter = Math.max 0, length - 1 - [locationData.last_line, locationData.last_column] = - @getLineAndColumnFromChunk offsetInChunk + lastCharacter - - token = [tag, value, locationData] - - token - - # Add a token to the results. - # `offset` is the offset into the current @chunk where the token starts. - # `length` is the length of the token in the @chunk, after the offset. If - # not specified, the length of `value` will be used. - # - # Returns the new token. - token: (tag, value, offsetInChunk, length, origin) -> - token = @makeToken tag, value, offsetInChunk, length - token.origin = origin if origin - @tokens.push token - token - - # Peek at the last tag in the token stream. - tag: -> - [..., token] = @tokens - token?[0] - - # Peek at the last value in the token stream. - value: -> - [..., token] = @tokens - token?[1] - - # Are we in the midst of an unfinished expression? - unfinished: -> - LINE_CONTINUER.test(@chunk) or - @tag() in ['\\', '.', '?.', '?::', 'UNARY', 'MATH', 'UNARY_MATH', '+', '-', - '**', 'SHIFT', 'RELATION', 'COMPARE', 'LOGIC', 'THROW', 'EXTENDS'] - - formatString: (str) -> - str.replace STRING_OMIT, '$1' - - formatHeregex: (str) -> - str.replace HEREGEX_OMIT, '$1$2' - - # Validates escapes in strings and regexes. - validateEscapes: (str, options = {}) -> - match = INVALID_ESCAPE.exec str - return unless match - [[], before, octal, hex, unicode] = match - return if options.isRegex and octal and octal.charAt(0) isnt '0' - message = - if octal - "octal escape sequences are not allowed" - else - "invalid escape sequence" - invalidEscape = "\\#{octal or hex or unicode}" - @error "#{message} #{invalidEscape}", - offset: (options.offsetInChunk ? 0) + match.index + before.length - length: invalidEscape.length - - # Constructs a string or regex by escaping certain characters. - makeDelimitedLiteral: (body, options = {}) -> - body = '(?:)' if body is '' and options.delimiter is '/' - regex = /// - (\\\\) # escaped backslash - | (\\0(?=[1-7])) # nul character mistaken as octal escape - | \\?(#{options.delimiter}) # (possibly escaped) delimiter - | \\?(?: (\n)|(\r)|(\u2028)|(\u2029) ) # (possibly escaped) newlines - | (\\.) # other escapes - ///g - body = body.replace regex, (match, backslash, nul, delimiter, lf, cr, ls, ps, other) -> switch - # Ignore escaped backslashes. - when backslash then (if options.double then backslash + backslash else backslash) - when nul then '\\x00' - when delimiter then "\\#{delimiter}" - when lf then '\\n' - when cr then '\\r' - when ls then '\\u2028' - when ps then '\\u2029' - when other then (if options.double then "\\#{other}" else other) - "#{options.delimiter}#{body}#{options.delimiter}" - - # Throws an error at either a given offset from the current chunk or at the - # location of a token (`token[2]`). - error: (message, options = {}) -> - location = - if 'first_line' of options - options - else - [first_line, first_column] = @getLineAndColumnFromChunk options.offset ? 0 - {first_line, first_column, last_column: first_column + (options.length ? 1) - 1} - throwSyntaxError message, location - -# Helper functions -# ---------------- - -isUnassignable = (name, displayName = name) -> switch - when name in [JS_KEYWORDS..., COFFEE_KEYWORDS...] - "keyword '#{displayName}' can't be assigned" - when name in STRICT_PROSCRIBED - "'#{displayName}' can't be assigned" - when name in RESERVED - "reserved word '#{displayName}' can't be assigned" - else - false - -exports.isUnassignable = isUnassignable - -# Constants -# --------- - -# Keywords that CoffeeScript shares in common with JavaScript. -JS_KEYWORDS = [ - 'true', 'false', 'null', 'this' - 'new', 'delete', 'typeof', 'in', 'instanceof' - 'return', 'throw', 'break', 'continue', 'debugger', 'yield' - 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally' - 'class', 'extends', 'super' -] - -# CoffeeScript-only keywords. -<<<<<<< HEAD -COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when', 'await'] -======= -COFFEE_KEYWORDS = [ - 'undefined', 'Infinity', 'NaN' - 'then', 'unless', 'until', 'loop', 'of', 'by', 'when' -] ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa - -COFFEE_ALIAS_MAP = - and : '&&' - or : '||' - is : '==' - isnt : '!=' - not : '!' - yes : 'true' - no : 'false' - on : 'true' - off : 'false' - -COFFEE_ALIASES = (key for key of COFFEE_ALIAS_MAP) -COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat COFFEE_ALIASES - -# The list of keywords that are reserved by JavaScript, but not used, or are -# used by CoffeeScript internally. We throw an error when these are encountered, -# to avoid having a JavaScript error at runtime. -RESERVED = [ - 'case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum' - 'export', 'import', 'native', 'implements', 'interface', 'package', 'private' - 'protected', 'public', 'static' -] - -STRICT_PROSCRIBED = ['arguments', 'eval'] - -# The superset of both JavaScript keywords and reserved words, none of which may -# be used as identifiers or properties. -exports.JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED) - -# The character code of the nasty Microsoft madness otherwise known as the BOM. -BOM = 65279 - -# Token matching regexes. -IDENTIFIER = /// ^ - (?!\d) - ( (?: (?!\s)[$\w\x7f-\uffff] )+ ) - ( [^\n\S]* : (?!:) )? # Is this a property name? -/// - -NUMBER = /// - ^ 0b[01]+ | # binary - ^ 0o[0-7]+ | # octal - ^ 0x[\da-f]+ | # hex - ^ \d*\.?\d+ (?:e[+-]?\d+)? # decimal -///i - -OPERATOR = /// ^ ( - ?: [-=]> # function - | [-+*/%<>&|^!?=]= # compound assign / compare - | >>>=? # zero-fill right shift - | ([-+:])\1 # doubles - | ([&|<>*/%])\2=? # logic / shift / power / floor division / modulo - | \?(\.|::) # soak access - | \.{2,3} # range or splat -) /// - -WHITESPACE = /^[^\n\S]+/ - -COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/ - -CODE = /^[-=]>/ - -MULTI_DENT = /^(?:\n[^\n\S]*)+/ - -JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/ - -# String-matching-regexes. -STRING_START = /^(?:'''|"""|'|")/ - -STRING_SINGLE = /// ^(?: [^\\'] | \\[\s\S] )* /// -STRING_DOUBLE = /// ^(?: [^\\"#] | \\[\s\S] | \#(?!\{) )* /// -HEREDOC_SINGLE = /// ^(?: [^\\'] | \\[\s\S] | '(?!'') )* /// -HEREDOC_DOUBLE = /// ^(?: [^\\"#] | \\[\s\S] | "(?!"") | \#(?!\{) )* /// - -STRING_OMIT = /// - ((?:\\\\)+) # consume (and preserve) an even number of backslashes - | \\[^\S\n]*\n\s* # remove escaped newlines -///g -SIMPLE_STRING_OMIT = /\s*\n\s*/g -HEREDOC_INDENT = /\n+([^\n\S]*)(?=\S)/g - -# Regex-matching-regexes. -REGEX = /// ^ - / (?!/) (( - ?: [^ [ / \n \\ ] # every other thing - | \\[^\n] # anything but newlines escaped - | \[ # character class - (?: \\[^\n] | [^ \] \n \\ ] )* - \] - )*) (/)? -/// - -REGEX_FLAGS = /^\w*/ -VALID_FLAGS = /^(?!.*(.).*\1)[imgy]*$/ - -HEREGEX = /// ^(?: [^\\/#] | \\[\s\S] | /(?!//) | \#(?!\{) )* /// - -HEREGEX_OMIT = /// - ((?:\\\\)+) # consume (and preserve) an even number of backslashes - | \\(\s) # preserve escaped whitespace - | \s+(?:#.*)? # remove whitespace and comments -///g - -REGEX_ILLEGAL = /// ^ ( / | /{3}\s*) (\*) /// - -POSSIBLY_DIVISION = /// ^ /=?\s /// - -# Other regexes. -HERECOMMENT_ILLEGAL = /\*\// - -LINE_CONTINUER = /// ^ \s* (?: , | \??\.(?![.\d]) | :: ) /// - -INVALID_ESCAPE = /// - ( (?:^|[^\\]) (?:\\\\)* ) # make sure the escape isn’t escaped - \\ ( - ?: (0[0-7]|[1-7]) # octal escape - | (x(?![\da-fA-F]{2}).{0,2}) # hex escape - | (u(?![\da-fA-F]{4}).{0,4}) # unicode escape - ) -/// - -LEADING_BLANK_LINE = /^[^\n\S]*\n/ -TRAILING_BLANK_LINE = /\n[^\n\S]*$/ - -TRAILING_SPACES = /\s+$/ - -# Compound assignment tokens. -COMPOUND_ASSIGN = [ - '-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=' - '&=', '^=', '|=', '**=', '//=', '%%=' -] - -# Unary tokens. -UNARY = ['NEW', 'TYPEOF', 'DELETE', 'DO'] - -UNARY_MATH = ['!', '~'] - -# Logical tokens. -LOGIC = ['&&', '||', '&', '|', '^'] - -# Bit-shifting tokens. -SHIFT = ['<<', '>>', '>>>'] - -# Comparison tokens. -COMPARE = ['==', '!=', '<', '>', '<=', '>='] - -# Mathematical tokens. -MATH = ['*', '/', '%', '//', '%%'] - -# Relational tokens that are negatable with `not` prefix. -RELATION = ['IN', 'OF', 'INSTANCEOF'] - -# Boolean tokens. -BOOL = ['TRUE', 'FALSE'] - -# Tokens which could legitimately be invoked or indexed. An opening -# parentheses or bracket following these tokens will be recorded as the start -# of a function invocation or indexing operation. -CALLABLE = ['IDENTIFIER', 'PROPERTY', ')', ']', '?', '@', 'THIS', 'SUPER'] -INDEXABLE = CALLABLE.concat [ - 'NUMBER', 'INFINITY', 'NAN', 'STRING', 'STRING_END', 'REGEX', 'REGEX_END' - 'BOOL', 'NULL', 'UNDEFINED', '}', '::' -] - -# Tokens which a regular expression will never immediately follow (except spaced -# CALLABLEs in some cases), but which a division operator can. -# -# See: http://www-archive.mozilla.org/js/language/js20-2002-04/rationale/syntax.html#regular-expressions -NOT_REGEX = INDEXABLE.concat ['++', '--'] - -# Tokens that, when immediately preceding a `WHEN`, indicate that the `WHEN` -# occurs at the start of a line. We disambiguate these from trailing whens to -# avoid an ambiguity in the grammar. -LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR'] - -# Additional indent in front of these is ignored. -INDENTABLE_CLOSERS = [')', '}', ']'] \ No newline at end of file diff --git a/src/nodes.coffee.orig b/src/nodes.coffee.orig deleted file mode 100644 index 1e71b46a16..0000000000 --- a/src/nodes.coffee.orig +++ /dev/null @@ -1,2567 +0,0 @@ -# `nodes.coffee` contains all of the node classes for the syntax tree. Most -# nodes are created as the result of actions in the [grammar](grammar.html), -# but some are created by other nodes as a method of code generation. To convert -# the syntax tree into a string of JavaScript code, call `compile()` on the root. - -Error.stackTraceLimit = Infinity - -{Scope} = require './scope' -{isUnassignable, JS_FORBIDDEN} = require './lexer' - -# Import the helpers we plan to use. -{compact, flatten, extend, merge, del, starts, ends, some, -addLocationDataFn, locationDataToString, throwSyntaxError} = require './helpers' - -# Functions required by parser -exports.extend = extend -exports.addLocationDataFn = addLocationDataFn - -# Constant functions for nodes that don't need customization. -YES = -> yes -NO = -> no -THIS = -> this -NEGATE = -> @negated = not @negated; this - -#### CodeFragment - -# The various nodes defined below all compile to a collection of **CodeFragment** objects. -# A CodeFragments is a block of generated code, and the location in the source file where the code -# came from. CodeFragments can be assembled together into working code just by catting together -# all the CodeFragments' `code` snippets, in order. -exports.CodeFragment = class CodeFragment - constructor: (parent, code) -> - @code = "#{code}" - @locationData = parent?.locationData - @type = parent?.constructor?.name or 'unknown' - - toString: -> - "#{@code}#{if @locationData then ": " + locationDataToString(@locationData) else ''}" - -# Convert an array of CodeFragments into a string. -fragmentsToText = (fragments) -> - (fragment.code for fragment in fragments).join('') - -#### Base - -# The **Base** is the abstract base class for all nodes in the syntax tree. -# Each subclass implements the `compileNode` method, which performs the -# code generation for that node. To compile a node to JavaScript, -# call `compile` on it, which wraps `compileNode` in some generic extra smarts, -# to know when the generated code needs to be wrapped up in a closure. -# An options hash is passed and cloned throughout, containing information about -# the environment from higher in the tree (such as if a returned value is -# being requested by the surrounding function), information about the current -# scope, and indentation level. -exports.Base = class Base - - compile: (o, lvl) -> - fragmentsToText @compileToFragments o, lvl - - # Common logic for determining whether to wrap this node in a closure before - # compiling it, or to compile directly. We need to wrap if this node is a - # *statement*, and it's not a *pureStatement*, and we're not at - # the top level of a block (which would be unnecessary), and we haven't - # already been asked to return the result (because statements know how to - # return results). - compileToFragments: (o, lvl) -> - o = extend {}, o - o.level = lvl if lvl - node = @unfoldSoak(o) or this - node.tab = o.indent - if o.level is LEVEL_TOP or not node.isStatement(o) - node.compileNode o - else - node.compileClosure o - - # Statements converted into expressions via closure-wrapping share a scope - # object with their parent closure, to preserve the expected lexical scope. - compileClosure: (o) -> - if jumpNode = @jumps() - jumpNode.error 'cannot use a pure statement in an expression' - o.sharedScope = yes - func = new Code [], Block.wrap [this] - func.purify() # make sure function is kept simple for closure modification - args = [] - if (argumentsNode = @contains isLiteralArguments) or @contains isLiteralThis - args = [new ThisLiteral] - if argumentsNode - meth = 'apply' - args.push new IdentifierLiteral 'arguments' - else - meth = 'call' - func = new Value func, [new Access new PropertyName meth] - parts = (new Call func, args).compileNode o -<<<<<<< HEAD - if func.isGenerator or func.isAsync -======= - if func.isGenerator or func.base?.isGenerator ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa - parts.unshift @makeCode "(yield* " - parts.push @makeCode ")" - parts - - # If the code generation wishes to use the result of a complex expression - # in multiple places, ensure that the expression is only ever evaluated once, - # by assigning it to a temporary variable. Pass a level to precompile. - # - # If `level` is passed, then returns `[val, ref]`, where `val` is the compiled value, and `ref` - # is the compiled reference. If `level` is not passed, this returns `[val, ref]` where - # the two values are raw nodes which have not been compiled. - cache: (o, level, isComplex) -> - complex = if isComplex? then isComplex this else @isComplex() - if complex - ref = new IdentifierLiteral o.scope.freeVariable 'ref' - sub = new Assign ref, this - if level then [sub.compileToFragments(o, level), [@makeCode(ref.value)]] else [sub, ref] - else - ref = if level then @compileToFragments o, level else this - [ref, ref] - - cacheToCodeFragments: (cacheValues) -> - [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])] - - # Construct a node that returns the current node's result. - # Note that this is overridden for smarter behavior for - # many statement nodes (e.g. If, For)... - makeReturn: (res) -> - me = @unwrapAll() - if res - new Call new Literal("#{res}.push"), [me] - else - new Return me - - # Does this node, or any of its children, contain a node of a certain kind? - # Recursively traverses down the *children* nodes and returns the first one - # that verifies `pred`. Otherwise return undefined. `contains` does not cross - # scope boundaries. - contains: (pred) -> - node = undefined - @traverseChildren no, (n) -> - if pred n - node = n - return no - node - - # Pull out the last non-comment node of a node list. - lastNonComment: (list) -> - i = list.length - return list[i] while i-- when list[i] not instanceof Comment - null - - # `toString` representation of the node, for inspecting the parse tree. - # This is what `coffee --nodes` prints out. - toString: (idt = '', name = @constructor.name) -> - tree = '\n' + idt + name - tree += '?' if @soak - @eachChild (node) -> tree += node.toString idt + TAB - tree - - # Passes each child to a function, breaking when the function returns `false`. - eachChild: (func) -> - return this unless @children - for attr in @children when @[attr] - for child in flatten [@[attr]] - return this if func(child) is false - this - - traverseChildren: (crossScope, func) -> - @eachChild (child) -> - recur = func(child) - child.traverseChildren(crossScope, func) unless recur is no - - invert: -> - new Op '!', this - - unwrapAll: -> - node = this - continue until node is node = node.unwrap() - node - - # Default implementations of the common node properties and methods. Nodes - # will override these with custom logic, if needed. - children: [] - - isStatement : NO - jumps : NO - isComplex : YES - isChainable : NO - isAssignable : NO - isNumber : NO - - unwrap : THIS - unfoldSoak : NO - - # Is this node used to assign a certain variable? - assigns: NO - - # For this node and all descendents, set the location data to `locationData` - # if the location data is not already set. - updateLocationDataIfMissing: (locationData) -> - return this if @locationData - @locationData = locationData - - @eachChild (child) -> - child.updateLocationDataIfMissing locationData - - # Throw a SyntaxError associated with this node's location. - error: (message) -> - throwSyntaxError message, @locationData - - makeCode: (code) -> - new CodeFragment this, code - - wrapInBraces: (fragments) -> - [].concat @makeCode('('), fragments, @makeCode(')') - - # `fragmentsList` is an array of arrays of fragments. Each array in fragmentsList will be - # concatonated together, with `joinStr` added in between each, to produce a final flat array - # of fragments. - joinFragmentArrays: (fragmentsList, joinStr) -> - answer = [] - for fragments,i in fragmentsList - if i then answer.push @makeCode joinStr - answer = answer.concat fragments - answer - -#### Block - -# The block is the list of expressions that forms the body of an -# indented block of code -- the implementation of a function, a clause in an -# `if`, `switch`, or `try`, and so on... -exports.Block = class Block extends Base - constructor: (nodes) -> - @expressions = compact flatten nodes or [] - - children: ['expressions'] - - # Tack an expression on to the end of this expression list. - push: (node) -> - @expressions.push node - this - - # Remove and return the last expression of this expression list. - pop: -> - @expressions.pop() - - # Add an expression at the beginning of this expression list. - unshift: (node) -> - @expressions.unshift node - this - - # If this Block consists of just a single node, unwrap it by pulling - # it back out. - unwrap: -> - if @expressions.length is 1 then @expressions[0] else this - - # Is this an empty block of code? - isEmpty: -> - not @expressions.length - - isStatement: (o) -> - for exp in @expressions when exp.isStatement o - return yes - no - - jumps: (o) -> - for exp in @expressions - return jumpNode if jumpNode = exp.jumps o - - # A Block node does not return its entire body, rather it - # ensures that the final expression is returned. - makeReturn: (res) -> - len = @expressions.length - while len-- - expr = @expressions[len] - if expr not instanceof Comment - @expressions[len] = expr.makeReturn res - @expressions.splice(len, 1) if expr instanceof Return and not expr.expression - break - this - - # A **Block** is the only node that can serve as the root. - compileToFragments: (o = {}, level) -> - if o.scope then super o, level else @compileRoot o - - # Compile all expressions within the **Block** body. If we need to - # return the result, and it's an expression, simply return it. If it's a - # statement, ask the statement to do so. - compileNode: (o) -> - @tab = o.indent - top = o.level is LEVEL_TOP - compiledNodes = [] - - for node, index in @expressions - - node = node.unwrapAll() - node = (node.unfoldSoak(o) or node) - if node instanceof Block - # This is a nested block. We don't do anything special here like enclose - # it in a new scope; we just compile the statements in this block along with - # our own - compiledNodes.push node.compileNode o - else if top - node.front = true - fragments = node.compileToFragments o - unless node.isStatement o - fragments.unshift @makeCode "#{@tab}" - fragments.push @makeCode ";" - compiledNodes.push fragments - else - compiledNodes.push node.compileToFragments o, LEVEL_LIST - if top - if @spaced - return [].concat @joinFragmentArrays(compiledNodes, '\n\n'), @makeCode("\n") - else - return @joinFragmentArrays(compiledNodes, '\n') - if compiledNodes.length - answer = @joinFragmentArrays(compiledNodes, ', ') - else - answer = [@makeCode "void 0"] - if compiledNodes.length > 1 and o.level >= LEVEL_LIST then @wrapInBraces answer else answer - - # If we happen to be the top-level **Block**, wrap everything in - # a safety closure, unless requested not to. - # It would be better not to generate them in the first place, but for now, - # clean up obvious double-parentheses. - compileRoot: (o) -> - o.indent = if o.bare then '' else TAB - o.level = LEVEL_TOP - @spaced = yes - o.scope = new Scope null, this, null, o.referencedVars ? [] - # Mark given local variables in the root scope as parameters so they don't - # end up being declared on this block. - o.scope.parameter name for name in o.locals or [] - prelude = [] - unless o.bare - preludeExps = for exp, i in @expressions - break unless exp.unwrap() instanceof Comment - exp - rest = @expressions[preludeExps.length...] - @expressions = preludeExps - if preludeExps.length - prelude = @compileNode merge(o, indent: '') - prelude.push @makeCode "\n" - @expressions = rest - fragments = @compileWithDeclarations o - return fragments if o.bare - [].concat prelude, @makeCode("(function() {\n"), fragments, @makeCode("\n}).call(this);\n") - - # Compile the expressions body for the contents of a function, with - # declarations of all inner variables pushed up to the top. - compileWithDeclarations: (o) -> - fragments = [] - post = [] - for exp, i in @expressions - exp = exp.unwrap() - break unless exp instanceof Comment or exp instanceof Literal - o = merge(o, level: LEVEL_TOP) - if i - rest = @expressions.splice i, 9e9 - [spaced, @spaced] = [@spaced, no] - [fragments, @spaced] = [@compileNode(o), spaced] - @expressions = rest - post = @compileNode o - {scope} = o - if scope.expressions is this - declars = o.scope.hasDeclarations() - assigns = scope.hasAssignments - if declars or assigns - fragments.push @makeCode '\n' if i - fragments.push @makeCode "#{@tab}var " - if declars - fragments.push @makeCode scope.declaredVariables().join(', ') - if assigns - fragments.push @makeCode ",\n#{@tab + TAB}" if declars - fragments.push @makeCode scope.assignedVariables().join(",\n#{@tab + TAB}") - fragments.push @makeCode ";\n#{if @spaced then '\n' else ''}" - else if fragments.length and post.length - fragments.push @makeCode "\n" - fragments.concat post - - # Wrap up the given nodes as a **Block**, unless it already happens - # to be one. - @wrap: (nodes) -> - return nodes[0] if nodes.length is 1 and nodes[0] instanceof Block - new Block nodes - -#### Literal - -# `Literal` is a base class for static values that can be passed through -# directly into JavaScript without translation, such as: strings, numbers, -# `true`, `false`, `null`... -exports.Literal = class Literal extends Base - constructor: (@value) -> - - isComplex: NO - - assigns: (name) -> - name is @value - - compileNode: (o) -> - [@makeCode @value] - - toString: -> - " #{if @isStatement() then super else @constructor.name}: #{@value}" - -exports.NumberLiteral = class NumberLiteral extends Literal - -exports.InfinityLiteral = class InfinityLiteral extends NumberLiteral - compileNode: -> - [@makeCode '2e308'] - -exports.NaNLiteral = class NaNLiteral extends NumberLiteral - constructor: -> - super 'NaN' - - compileNode: (o) -> - code = [@makeCode '0/0'] - if o.level >= LEVEL_OP then @wrapInBraces code else code - -exports.StringLiteral = class StringLiteral extends Literal - -exports.RegexLiteral = class RegexLiteral extends Literal - -exports.PassthroughLiteral = class PassthroughLiteral extends Literal - -exports.IdentifierLiteral = class IdentifierLiteral extends Literal - isAssignable: YES - -exports.PropertyName = class PropertyName extends Literal - isAssignable: YES - -exports.StatementLiteral = class StatementLiteral extends Literal - isStatement: YES - - makeReturn: THIS - - jumps: (o) -> - return this if @value is 'break' and not (o?.loop or o?.block) - return this if @value is 'continue' and not o?.loop - - compileNode: (o) -> - [@makeCode "#{@tab}#{@value};"] - -exports.ThisLiteral = class ThisLiteral extends Literal - constructor: -> - super 'this' - - compileNode: (o) -> - code = if o.scope.method?.bound then o.scope.method.context else @value - [@makeCode code] - -exports.UndefinedLiteral = class UndefinedLiteral extends Literal - constructor: -> - super 'undefined' - - compileNode: (o) -> - [@makeCode if o.level >= LEVEL_ACCESS then '(void 0)' else 'void 0'] - -exports.NullLiteral = class NullLiteral extends Literal - constructor: -> - super 'null' - -exports.BooleanLiteral = class BooleanLiteral extends Literal - -#### Return - -# A `return` is a *pureStatement* -- wrapping it in a closure wouldn't -# make sense. -exports.Return = class Return extends Base - constructor: (@expression) -> - - children: ['expression'] - - isStatement: YES - makeReturn: THIS - jumps: THIS - - compileToFragments: (o, level) -> - expr = @expression?.makeReturn() - if expr and expr not instanceof Return then expr.compileToFragments o, level else super o, level - - compileNode: (o) -> - answer = [] - # TODO: If we call expression.compile() here twice, we'll sometimes get back different results! - answer.push @makeCode @tab + "return#{if @expression then " " else ""}" - if @expression - answer = answer.concat @expression.compileToFragments o, LEVEL_PAREN - answer.push @makeCode ";" - return answer - -# `yield return` works exactly like `return`, except that it turns the function -# into a generator. -exports.YieldReturn = class YieldReturn extends Return - compileNode: (o) -> - unless o.scope.parent? - @error 'yield can only occur inside functions' - super - -#### Value - -# A value, variable or literal or parenthesized, indexed or dotted into, -# or vanilla. -exports.Value = class Value extends Base - constructor: (base, props, tag) -> - return base if not props and base instanceof Value - @base = base - @properties = props or [] - @[tag] = true if tag - return this - - children: ['base', 'properties'] - - # Add a property (or *properties* ) `Access` to the list. - add: (props) -> - @properties = @properties.concat props - this - - hasProperties: -> - !!@properties.length - - bareLiteral: (type) -> - not @properties.length and @base instanceof type - - # Some boolean checks for the benefit of other nodes. - isArray : -> @bareLiteral(Arr) - isRange : -> @bareLiteral(Range) - isComplex : -> @hasProperties() or @base.isComplex() - isAssignable : -> @hasProperties() or @base.isAssignable() - isNumber : -> @bareLiteral(NumberLiteral) - isString : -> @bareLiteral(StringLiteral) - isRegex : -> @bareLiteral(RegexLiteral) - isUndefined : -> @bareLiteral(UndefinedLiteral) - isNull : -> @bareLiteral(NullLiteral) - isBoolean : -> @bareLiteral(BooleanLiteral) - isAtomic : -> - for node in @properties.concat @base - return no if node.soak or node instanceof Call - yes - - isNotCallable : -> @isNumber() or @isString() or @isRegex() or - @isArray() or @isRange() or @isSplice() or @isObject() or - @isUndefined() or @isNull() or @isBoolean() - - isStatement : (o) -> not @properties.length and @base.isStatement o - assigns : (name) -> not @properties.length and @base.assigns name - jumps : (o) -> not @properties.length and @base.jumps o - - isObject: (onlyGenerated) -> - return no if @properties.length - (@base instanceof Obj) and (not onlyGenerated or @base.generated) - - isSplice: -> - [..., lastProp] = @properties - lastProp instanceof Slice - - looksStatic: (className) -> - @base.value is className and @properties.length is 1 and - @properties[0].name?.value isnt 'prototype' - - # The value can be unwrapped as its inner node, if there are no attached - # properties. - unwrap: -> - if @properties.length then this else @base - - # A reference has base part (`this` value) and name part. - # We cache them separately for compiling complex expressions. - # `a()[b()] ?= c` -> `(_base = a())[_name = b()] ? _base[_name] = c` - cacheReference: (o) -> - [..., name] = @properties - if @properties.length < 2 and not @base.isComplex() and not name?.isComplex() - return [this, this] # `a` `a.b` - base = new Value @base, @properties[...-1] - if base.isComplex() # `a().b` - bref = new IdentifierLiteral o.scope.freeVariable 'base' - base = new Value new Parens new Assign bref, base - return [base, bref] unless name # `a()` - if name.isComplex() # `a[b()]` - nref = new IdentifierLiteral o.scope.freeVariable 'name' - name = new Index new Assign nref, name.index - nref = new Index nref - [base.add(name), new Value(bref or base.base, [nref or name])] - - # We compile a value to JavaScript by compiling and joining each property. - # Things get much more interesting if the chain of properties has *soak* - # operators `?.` interspersed. Then we have to take care not to accidentally - # evaluate anything twice when building the soak chain. - compileNode: (o) -> - @base.front = @front - props = @properties - fragments = @base.compileToFragments o, (if props.length then LEVEL_ACCESS else null) - if props.length and SIMPLENUM.test fragmentsToText fragments - fragments.push @makeCode '.' - for prop in props - fragments.push (prop.compileToFragments o)... - fragments - - # Unfold a soak into an `If`: `a?.b` -> `a.b if a?` - unfoldSoak: (o) -> - @unfoldedSoak ?= do => - if ifn = @base.unfoldSoak o - ifn.body.properties.push @properties... - return ifn - for prop, i in @properties when prop.soak - prop.soak = off - fst = new Value @base, @properties[...i] - snd = new Value @base, @properties[i..] - if fst.isComplex() - ref = new IdentifierLiteral o.scope.freeVariable 'ref' - fst = new Parens new Assign ref, fst - snd.base = ref - return new If new Existence(fst), snd, soak: on - no - -#### Comment - -# CoffeeScript passes through block comments as JavaScript block comments -# at the same position. -exports.Comment = class Comment extends Base - constructor: (@comment) -> - - isStatement: YES - makeReturn: THIS - - compileNode: (o, level) -> - comment = @comment.replace /^(\s*)#(?=\s)/gm, "$1 *" - code = "/*#{multident comment, @tab}#{if '\n' in comment then "\n#{@tab}" else ''} */" - code = o.indent + code if (level or o.level) is LEVEL_TOP - [@makeCode("\n"), @makeCode(code)] - -#### Call - -# Node for a function invocation. -exports.Call = class Call extends Base - constructor: (@variable, @args = [], @soak) -> - @isNew = false - if @variable instanceof Value and @variable.isNotCallable() - @variable.error "literal is not a function" - - children: ['variable', 'args'] - - # Tag this invocation as creating a new instance. - newInstance: -> - base = @variable?.base or @variable - if base instanceof Call and not base.isNew - base.newInstance() - else - @isNew = true - this - -<<<<<<< HEAD - # Grab the reference to the superclass's implementation of the current - # method. - superReference: (o) -> - method = o.scope.namedMethod() - if method?.klass - accesses = [new Access(new Literal '__super__')] - accesses.push new Access new Literal 'constructor' if method.static - accesses.push new Access new Literal method.name - (new Value (new Literal method.klass), accesses).compile o - else if method? and (method.ctor or method.asyncCtor) - "#{method.name}.__super__.constructor" - else - @error 'cannot call super outside of an instance method.' - - # The appropriate `this` value for a `super` call. - superThis : (o) -> - method = o.scope.method - (method and not method.klass and method.context) or "this" - -======= ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa - # Soaked chained invocations unfold into if/else ternary structures. - unfoldSoak: (o) -> - if @soak - if this instanceof SuperCall - left = new Literal @superReference o - rite = new Value left - else - return ifn if ifn = unfoldSoak o, this, 'variable' - [left, rite] = new Value(@variable).cacheReference o - rite = new Call rite, @args - rite.isNew = @isNew - left = new Literal "typeof #{ left.compile o } === \"function\"" - return new If left, new Value(rite), soak: yes - call = this - list = [] - loop - if call.variable instanceof Call - list.push call - call = call.variable - continue - break unless call.variable instanceof Value - list.push call - break unless (call = call.variable.base) instanceof Call - for call in list.reverse() - if ifn - if call.variable instanceof Call - call.variable = ifn - else - call.variable.base = ifn - ifn = unfoldSoak o, call, 'variable' - ifn - - # Compile a vanilla function call. - compileNode: (o) -> - @variable?.front = @front - compiledArray = Splat.compileSplattedArray o, @args, true - if compiledArray.length - return @compileSplat o, compiledArray - compiledArgs = [] - for arg, argIndex in @args - if argIndex then compiledArgs.push @makeCode ", " - compiledArgs.push (arg.compileToFragments o, LEVEL_LIST)... - - fragments = [] - if this instanceof SuperCall - preface = @superReference(o) + ".call(#{@superThis(o)}" - if compiledArgs.length then preface += ", " - fragments.push @makeCode preface - else - if @isNew then fragments.push @makeCode 'new ' - fragments.push @variable.compileToFragments(o, LEVEL_ACCESS)... - fragments.push @makeCode "(" - fragments.push compiledArgs... - fragments.push @makeCode ")" - fragments - - # If you call a function with a splat, it's converted into a JavaScript - # `.apply()` call to allow an array of arguments to be passed. - # If it's a constructor, then things get real tricky. We have to inject an - # inner constructor in order to be able to pass the varargs. - # - # splatArgs is an array of CodeFragments to put into the 'apply'. - compileSplat: (o, splatArgs) -> - if this instanceof SuperCall - return [].concat @makeCode("#{ @superReference o }.apply(#{@superThis(o)}, "), - splatArgs, @makeCode(")") - - if @isNew - idt = @tab + TAB - return [].concat @makeCode(""" - (function(func, args, ctor) { - #{idt}ctor.prototype = func.prototype; - #{idt}var child = new ctor, result = func.apply(child, args); - #{idt}return Object(result) === result ? result : child; - #{@tab}})("""), - (@variable.compileToFragments o, LEVEL_LIST), - @makeCode(", "), splatArgs, @makeCode(", function(){})") - - answer = [] - base = new Value @variable - if (name = base.properties.pop()) and base.isComplex() - ref = o.scope.freeVariable 'ref' - answer = answer.concat @makeCode("(#{ref} = "), - (base.compileToFragments o, LEVEL_LIST), - @makeCode(")"), - name.compileToFragments(o) - else - fun = base.compileToFragments o, LEVEL_ACCESS - fun = @wrapInBraces fun if SIMPLENUM.test fragmentsToText fun - if name - ref = fragmentsToText fun - fun.push (name.compileToFragments o)... - else - ref = 'null' - answer = answer.concat fun - answer = answer.concat @makeCode(".apply(#{ref}, "), splatArgs, @makeCode(")") - -#### Super - -# Takes care of converting `super()` calls into calls against the prototype's -# function of the same name. -exports.SuperCall = class SuperCall extends Call - constructor: (args) -> - super null, args ? [new Splat new IdentifierLiteral 'arguments'] - # Allow to recognize a bare `super` call without parentheses and arguments. - @isBare = args? - - # Grab the reference to the superclass's implementation of the current - # method. - superReference: (o) -> - method = o.scope.namedMethod() - if method?.klass - {klass, name, variable} = method - if klass.isComplex() - bref = new IdentifierLiteral o.scope.parent.freeVariable 'base' - base = new Value new Parens new Assign bref, klass - variable.base = base - variable.properties.splice 0, klass.properties.length - if name.isComplex() or (name instanceof Index and name.index.isAssignable()) - nref = new IdentifierLiteral o.scope.parent.freeVariable 'name' - name = new Index new Assign nref, name.index - variable.properties.pop() - variable.properties.push name - accesses = [new Access new PropertyName '__super__'] - accesses.push new Access new PropertyName 'constructor' if method.static - accesses.push if nref? then new Index nref else name - (new Value bref ? klass, accesses).compile o - else if method?.ctor - "#{method.name}.__super__.constructor" - else - @error 'cannot call super outside of an instance method.' - - # The appropriate `this` value for a `super` call. - superThis : (o) -> - method = o.scope.method - (method and not method.klass and method.context) or "this" - -#### RegexWithInterpolations - -# Regexes with interpolations are in fact just a variation of a `Call` (a -# `RegExp()` call to be precise) with a `StringWithInterpolations` inside. -exports.RegexWithInterpolations = class RegexWithInterpolations extends Call - constructor: (args = []) -> - super (new Value new IdentifierLiteral 'RegExp'), args, false - -#### Extends - -# Node to extend an object's prototype with an ancestor object. -# After `goog.inherits` from the -# [Closure Library](http://closure-library.googlecode.com/svn/docs/closureGoogBase.js.html). -exports.Extends = class Extends extends Base - constructor: (@child, @parent) -> - - children: ['child', 'parent'] - - # Hooks one constructor into another's prototype chain. - compileToFragments: (o) -> - new Call(new Value(new Literal utility 'extend', o), [@child, @parent]).compileToFragments o - -#### Access - -# A `.` access into a property of a value, or the `::` shorthand for -# an access into the object's prototype. -exports.Access = class Access extends Base - constructor: (@name, tag) -> - @name.asKey = yes - @soak = tag is 'soak' - - children: ['name'] - - compileToFragments: (o) -> - name = @name.compileToFragments o - node = @name.unwrap() - if node instanceof PropertyName - if node.value in JS_FORBIDDEN - [@makeCode('["'), name..., @makeCode('"]')] - else - [@makeCode('.'), name...] - else - [@makeCode('['), name..., @makeCode(']')] - - isComplex: NO - -#### Index - -# A `[ ... ]` indexed access into an array or object. -exports.Index = class Index extends Base - constructor: (@index) -> - - children: ['index'] - - compileToFragments: (o) -> - [].concat @makeCode("["), @index.compileToFragments(o, LEVEL_PAREN), @makeCode("]") - - isComplex: -> - @index.isComplex() - -#### Range - -# A range literal. Ranges can be used to extract portions (slices) of arrays, -# to specify a range for comprehensions, or as a value, to be expanded into the -# corresponding array of integers at runtime. -exports.Range = class Range extends Base - - children: ['from', 'to'] - - constructor: (@from, @to, tag) -> - @exclusive = tag is 'exclusive' - @equals = if @exclusive then '' else '=' - - - - # Compiles the range's source variables -- where it starts and where it ends. - # But only if they need to be cached to avoid double evaluation. - compileVariables: (o) -> - o = merge o, top: true - isComplex = del o, 'isComplex' - [@fromC, @fromVar] = @cacheToCodeFragments @from.cache o, LEVEL_LIST, isComplex - [@toC, @toVar] = @cacheToCodeFragments @to.cache o, LEVEL_LIST, isComplex - [@step, @stepVar] = @cacheToCodeFragments step.cache o, LEVEL_LIST, isComplex if step = del o, 'step' - @fromNum = if @from.isNumber() then Number @fromVar else null - @toNum = if @to.isNumber() then Number @toVar else null - @stepNum = if step?.isNumber() then Number @stepVar else null - - # When compiled normally, the range returns the contents of the *for loop* - # needed to iterate over the values in the range. Used by comprehensions. - compileNode: (o) -> - @compileVariables o unless @fromVar - return @compileArray(o) unless o.index - - # Set up endpoints. - known = @fromNum? and @toNum? - idx = del o, 'index' - idxName = del o, 'name' - namedIndex = idxName and idxName isnt idx - varPart = "#{idx} = #{@fromC}" - varPart += ", #{@toC}" if @toC isnt @toVar - varPart += ", #{@step}" if @step isnt @stepVar - [lt, gt] = ["#{idx} <#{@equals}", "#{idx} >#{@equals}"] - - # Generate the condition. - condPart = if @stepNum? - if @stepNum > 0 then "#{lt} #{@toVar}" else "#{gt} #{@toVar}" - else if known - [from, to] = [@fromNum, @toNum] - if from <= to then "#{lt} #{to}" else "#{gt} #{to}" - else - cond = if @stepVar then "#{@stepVar} > 0" else "#{@fromVar} <= #{@toVar}" - "#{cond} ? #{lt} #{@toVar} : #{gt} #{@toVar}" - - # Generate the step. - stepPart = if @stepVar - "#{idx} += #{@stepVar}" - else if known - if namedIndex - if from <= to then "++#{idx}" else "--#{idx}" - else - if from <= to then "#{idx}++" else "#{idx}--" - else - if namedIndex - "#{cond} ? ++#{idx} : --#{idx}" - else - "#{cond} ? #{idx}++ : #{idx}--" - - varPart = "#{idxName} = #{varPart}" if namedIndex - stepPart = "#{idxName} = #{stepPart}" if namedIndex - - # The final loop body. - [@makeCode "#{varPart}; #{condPart}; #{stepPart}"] - - - # When used as a value, expand the range into the equivalent array. - compileArray: (o) -> - known = @fromNum? and @toNum? - if known and Math.abs(@fromNum - @toNum) <= 20 - range = [@fromNum..@toNum] - range.pop() if @exclusive - return [@makeCode "[#{ range.join(', ') }]"] - idt = @tab + TAB - i = o.scope.freeVariable 'i', single: true - result = o.scope.freeVariable 'results' - pre = "\n#{idt}#{result} = [];" - if known - o.index = i - body = fragmentsToText @compileNode o - else - vars = "#{i} = #{@fromC}" + if @toC isnt @toVar then ", #{@toC}" else '' - cond = "#{@fromVar} <= #{@toVar}" - body = "var #{vars}; #{cond} ? #{i} <#{@equals} #{@toVar} : #{i} >#{@equals} #{@toVar}; #{cond} ? #{i}++ : #{i}--" - post = "{ #{result}.push(#{i}); }\n#{idt}return #{result};\n#{o.indent}" - hasArgs = (node) -> node?.contains isLiteralArguments - args = ', arguments' if hasArgs(@from) or hasArgs(@to) - [@makeCode "(function() {#{pre}\n#{idt}for (#{body})#{post}}).apply(this#{args ? ''})"] - -#### Slice - -# An array slice literal. Unlike JavaScript's `Array#slice`, the second parameter -# specifies the index of the end of the slice, just as the first parameter -# is the index of the beginning. -exports.Slice = class Slice extends Base - - children: ['range'] - - constructor: (@range) -> - super() - - # We have to be careful when trying to slice through the end of the array, - # `9e9` is used because not all implementations respect `undefined` or `1/0`. - # `9e9` should be safe because `9e9` > `2**32`, the max array length. - compileNode: (o) -> - {to, from} = @range - fromCompiled = from and from.compileToFragments(o, LEVEL_PAREN) or [@makeCode '0'] - # TODO: jwalton - move this into the 'if'? - if to - compiled = to.compileToFragments o, LEVEL_PAREN - compiledText = fragmentsToText compiled - if not (not @range.exclusive and +compiledText is -1) - toStr = ', ' + if @range.exclusive - compiledText - else if to.isNumber() - "#{+compiledText + 1}" - else - compiled = to.compileToFragments o, LEVEL_ACCESS - "+#{fragmentsToText compiled} + 1 || 9e9" - [@makeCode ".slice(#{ fragmentsToText fromCompiled }#{ toStr or '' })"] - -#### Obj - -# An object literal, nothing fancy. -exports.Obj = class Obj extends Base - constructor: (props, @generated = false) -> - @objects = @properties = props or [] - - children: ['properties'] - - compileNode: (o) -> - props = @properties - if @generated - for node in props when node instanceof Value - node.error 'cannot have an implicit value in an implicit object' - break for prop, dynamicIndex in props when (prop.variable or prop).base instanceof Parens - hasDynamic = dynamicIndex < props.length - idt = o.indent += TAB - lastNoncom = @lastNonComment @properties - answer = [] - if hasDynamic - oref = o.scope.freeVariable 'obj' - answer.push @makeCode "(\n#{idt}#{oref} = " - answer.push @makeCode "{#{if props.length is 0 or dynamicIndex is 0 then '}' else '\n'}" - for prop, i in props - if i is dynamicIndex - answer.push @makeCode "\n#{idt}}" unless i is 0 - answer.push @makeCode ',\n' - join = if i is props.length - 1 or i is dynamicIndex - 1 - '' - else if prop is lastNoncom or prop instanceof Comment - '\n' - else - ',\n' - indent = if prop instanceof Comment then '' else idt - indent += TAB if hasDynamic and i < dynamicIndex - if prop instanceof Assign - if prop.context isnt 'object' - prop.operatorToken.error "unexpected #{prop.operatorToken.value}" - if prop.variable instanceof Value and prop.variable.hasProperties() - prop.variable.error 'invalid object key' - if prop instanceof Value and prop.this - prop = new Assign prop.properties[0].name, prop, 'object' - if prop not instanceof Comment - if i < dynamicIndex - if prop not instanceof Assign - prop = new Assign prop, prop, 'object' - (prop.variable.base or prop.variable).asKey = yes - else - if prop instanceof Assign - key = prop.variable - value = prop.value - else - [key, value] = prop.base.cache o - prop = new Assign (new Value (new IdentifierLiteral oref), [new Access key]), value - if indent then answer.push @makeCode indent - answer.push prop.compileToFragments(o, LEVEL_TOP)... - if join then answer.push @makeCode join - if hasDynamic - answer.push @makeCode ",\n#{idt}#{oref}\n#{@tab})" - else - answer.push @makeCode "\n#{@tab}}" unless props.length is 0 - if @front and not hasDynamic then @wrapInBraces answer else answer - - assigns: (name) -> - for prop in @properties when prop.assigns name then return yes - no - -#### Arr - -# An array literal. -exports.Arr = class Arr extends Base - constructor: (objs) -> - @objects = objs or [] - - children: ['objects'] - - compileNode: (o) -> - return [@makeCode '[]'] unless @objects.length - o.indent += TAB - answer = Splat.compileSplattedArray o, @objects - return answer if answer.length - - answer = [] - compiledObjs = (obj.compileToFragments o, LEVEL_LIST for obj in @objects) - for fragments, index in compiledObjs - if index - answer.push @makeCode ", " - answer.push fragments... - if fragmentsToText(answer).indexOf('\n') >= 0 - answer.unshift @makeCode "[\n#{o.indent}" - answer.push @makeCode "\n#{@tab}]" - else - answer.unshift @makeCode "[" - answer.push @makeCode "]" - answer - - assigns: (name) -> - for obj in @objects when obj.assigns name then return yes - no - -#### Class - -# The CoffeeScript class definition. -# Initialize a **Class** with its name, an optional superclass, and a -# list of prototype property assignments. -exports.Class = class Class extends Base - constructor: (@variable, @parent, @body = new Block) -> - @boundFuncs = [] - @body.classBody = yes - - children: ['variable', 'parent', 'body'] - - defaultClassVariableName: '_Class' - - # Figure out the appropriate name for the constructor function of this class. - determineName: -> - return @defaultClassVariableName unless @variable - [..., tail] = @variable.properties - node = if tail - tail instanceof Access and tail.name - else - @variable.base - unless node instanceof IdentifierLiteral or node instanceof PropertyName - return @defaultClassVariableName - name = node.value - unless tail - message = isUnassignable name - @variable.error message if message - if name in JS_FORBIDDEN then "_#{name}" else name - - # For all `this`-references and bound functions in the class definition, - # `this` is the Class being constructed. - setContext: (name) -> - @body.traverseChildren false, (node) -> - return false if node.classBody - if node instanceof ThisLiteral - node.value = name - else if node instanceof Code - node.context = name if node.bound - - # Ensure that all functions bound to the instance are proxied in the - # constructor. - addBoundFunctions: (o) -> - for bvar in @boundFuncs - lhs = (new Value (new ThisLiteral), [new Access bvar]).compile o - @ctor.body.unshift new Literal "#{lhs} = #{utility 'bind', o}(#{lhs}, this)" - return - - # Merge the properties from a top-level object as prototypal properties - # on the class. - addProperties: (node, name, o) -> - props = node.base.properties[..] - exprs = while assign = props.shift() - if assign instanceof Assign - base = assign.variable.base - delete assign.context - func = assign.value - if base.value is 'constructor' - if @ctor - assign.error 'cannot define more than one constructor in a class' - if func.bound - assign.error 'cannot define a constructor as a bound function' - - external = yes - if func instanceof Code -<<<<<<< HEAD - if func.isAsync - func.asyncCtor = yes - func.name = 'constructor' - else - assign = @ctor = func - external = no - if external - @externalCtor = o.classScope.freeVariable 'class' - assign = new Assign new Literal(@externalCtor), func - -======= - assign = @ctor = func - else - @externalCtor = o.classScope.freeVariable 'ctor' - assign = new Assign new IdentifierLiteral(@externalCtor), func ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa - else - if assign.variable.this - func.static = yes - else - acc = if base.isComplex() then new Index base else new Access base - assign.variable = new Value(new IdentifierLiteral(name), [(new Access new PropertyName 'prototype'), acc]) - if func instanceof Code and func.bound - @boundFuncs.push base - func.bound = no - assign - compact exprs - - # Walk the body of the class, looking for prototype properties to be converted - # and tagging static assignments. - walkBody: (name, o) -> - @traverseChildren false, (child) => - cont = true - return false if child instanceof Class - if child instanceof Block - for node, i in exps = child.expressions - if node instanceof Assign and node.variable.looksStatic name - node.value.static = yes - else if node instanceof Value and node.isObject(true) - cont = false - exps[i] = @addProperties node, name, o - child.expressions = exps = flatten exps - cont and child not instanceof Class - - # `use strict` (and other directives) must be the first expression statement(s) - # of a function body. This method ensures the prologue is correctly positioned - # above the `constructor`. - hoistDirectivePrologue: -> - index = 0 - {expressions} = @body - ++index while (node = expressions[index]) and node instanceof Comment or - node instanceof Value and node.isString() - @directives = expressions.splice 0, index - - # Make sure that a constructor is defined for the class, and properly - # configured. - ensureConstructor: (name) -> - if not @ctor - @ctor = new Code - if @externalCtor - @ctor.body.push new Literal "#{@externalCtor}.apply(this, arguments)" - else if @parent - @ctor.body.push new Literal "#{name}.__super__.constructor.apply(this, arguments)" - @ctor.body.makeReturn() - @body.expressions.unshift @ctor - @ctor.ctor = @ctor.name = name - @ctor.klass = null - @ctor.noReturn = yes - - # Instead of generating the JavaScript string directly, we build up the - # equivalent syntax tree and compile that, in pieces. You can see the - # constructor, property assignments, and inheritance getting built out below. - compileNode: (o) -> - if jumpNode = @body.jumps() - jumpNode.error 'Class bodies cannot contain pure statements' - if argumentsNode = @body.contains isLiteralArguments - argumentsNode.error "Class bodies shouldn't reference arguments" - - name = @determineName() - lname = new IdentifierLiteral name - func = new Code [], Block.wrap [@body] - args = [] - o.classScope = func.makeScope o.scope - - @hoistDirectivePrologue() - @setContext name - @walkBody name, o - @ensureConstructor name - @addBoundFunctions o - @body.spaced = yes - @body.expressions.push lname - - if @parent - superClass = new IdentifierLiteral o.classScope.freeVariable 'superClass', reserve: no - @body.expressions.unshift new Extends lname, superClass - func.params.push new Param superClass - args.push @parent - - @body.expressions.unshift @directives... - - klass = new Parens new Call func, args - klass = new Assign @variable, klass if @variable - klass.compileToFragments o - -#### Assign - -# The **Assign** is used to assign a local variable to value, or to set the -# property of an object -- including within object literals. -exports.Assign = class Assign extends Base - constructor: (@variable, @value, @context, options = {}) -> - {@param, @subpattern, @operatorToken} = options - - children: ['variable', 'value'] - - isStatement: (o) -> - o?.level is LEVEL_TOP and @context? and "?" in @context - - assigns: (name) -> - @[if @context is 'object' then 'value' else 'variable'].assigns name - - unfoldSoak: (o) -> - unfoldSoak o, this, 'variable' - - # Compile an assignment, delegating to `compilePatternMatch` or - # `compileSplice` if appropriate. Keep track of the name of the base object - # we've been assigned to, for correct internal references. If the variable - # has not been seen yet within the current scope, declare it. - compileNode: (o) -> - if isValue = @variable instanceof Value - return @compilePatternMatch o if @variable.isArray() or @variable.isObject() - return @compileSplice o if @variable.isSplice() - return @compileConditional o if @context in ['||=', '&&=', '?='] - return @compileSpecialMath o if @context in ['**=', '//=', '%%='] - if @value instanceof Code - if @value.static - @value.klass = @variable.base - @value.name = @variable.properties[0] - @value.variable = @variable - else if @variable.properties?.length >= 2 - [properties..., prototype, name] = @variable.properties - if prototype.name?.value is 'prototype' - @value.klass = new Value @variable.base, properties - @value.name = name - @value.variable = @variable - unless @context - varBase = @variable.unwrapAll() - unless varBase.isAssignable() - @variable.error "'#{@variable.compile o}' can't be assigned" - unless varBase.hasProperties?() - if @param - o.scope.add varBase.value, 'var' - else - o.scope.find varBase.value - val = @value.compileToFragments o, LEVEL_LIST - @variable.front = true if isValue and @variable.base instanceof Obj - compiledName = @variable.compileToFragments o, LEVEL_LIST - - if @context is 'object' - if fragmentsToText(compiledName) in JS_FORBIDDEN - compiledName.unshift @makeCode '"' - compiledName.push @makeCode '"' - return compiledName.concat @makeCode(": "), val - - answer = compiledName.concat @makeCode(" #{ @context or '=' } "), val - if o.level <= LEVEL_LIST then answer else @wrapInBraces answer - - # Brief implementation of recursive pattern matching, when assigning array or - # object literals to a value. Peeks at their properties to assign inner names. - compilePatternMatch: (o) -> - top = o.level is LEVEL_TOP - {value} = this - {objects} = @variable.base - unless olen = objects.length - code = value.compileToFragments o - return if o.level >= LEVEL_OP then @wrapInBraces code else code - [obj] = objects - if olen is 1 and obj instanceof Expansion - obj.error 'Destructuring assignment has no target' - isObject = @variable.isObject() - if top and olen is 1 and obj not instanceof Splat - # Pick the property straight off the value when there’s just one to pick - # (no need to cache the value into a variable). - defaultValue = null - if obj instanceof Assign and obj.context is 'object' - # A regular object pattern-match. - {variable: {base: idx}, value: obj} = obj - if obj instanceof Assign - defaultValue = obj.value - obj = obj.variable - else - if obj instanceof Assign - defaultValue = obj.value - obj = obj.variable - idx = if isObject - # A shorthand `{a, b, @c} = val` pattern-match. - if obj.this - obj.properties[0].name - else - new PropertyName obj.unwrap().value - else - # A regular array pattern-match. - new NumberLiteral 0 - acc = idx.unwrap() instanceof PropertyName - value = new Value value - value.properties.push new (if acc then Access else Index) idx - message = isUnassignable obj.unwrap().value - obj.error message if message - value = new Op '?', value, defaultValue if defaultValue - return new Assign(obj, value, null, param: @param).compileToFragments o, LEVEL_TOP - vvar = value.compileToFragments o, LEVEL_LIST - vvarText = fragmentsToText vvar - assigns = [] - expandedIdx = false - # Make vvar into a simple variable if it isn't already. - if value.unwrap() not instanceof IdentifierLiteral or @variable.assigns(vvarText) - assigns.push [@makeCode("#{ ref = o.scope.freeVariable 'ref' } = "), vvar...] - vvar = [@makeCode ref] - vvarText = ref - for obj, i in objects - idx = i - if not expandedIdx and obj instanceof Splat - name = obj.name.unwrap().value - obj = obj.unwrap() - val = "#{olen} <= #{vvarText}.length ? #{ utility 'slice', o }.call(#{vvarText}, #{i}" - if rest = olen - i - 1 - ivar = o.scope.freeVariable 'i', single: true - val += ", #{ivar} = #{vvarText}.length - #{rest}) : (#{ivar} = #{i}, [])" - else - val += ") : []" - val = new Literal val - expandedIdx = "#{ivar}++" - else if not expandedIdx and obj instanceof Expansion - if rest = olen - i - 1 - if rest is 1 - expandedIdx = "#{vvarText}.length - 1" - else - ivar = o.scope.freeVariable 'i', single: true - val = new Literal "#{ivar} = #{vvarText}.length - #{rest}" - expandedIdx = "#{ivar}++" - assigns.push val.compileToFragments o, LEVEL_LIST - continue - else - if obj instanceof Splat or obj instanceof Expansion - obj.error "multiple splats/expansions are disallowed in an assignment" - defaultValue = null - if obj instanceof Assign and obj.context is 'object' - # A regular object pattern-match. - {variable: {base: idx}, value: obj} = obj - if obj instanceof Assign - defaultValue = obj.value - obj = obj.variable - else - if obj instanceof Assign - defaultValue = obj.value - obj = obj.variable - idx = if isObject - # A shorthand `{a, b, @c} = val` pattern-match. - if obj.this - obj.properties[0].name - else - new PropertyName obj.unwrap().value - else - # A regular array pattern-match. - new Literal expandedIdx or idx - name = obj.unwrap().value - acc = idx.unwrap() instanceof PropertyName - val = new Value new Literal(vvarText), [new (if acc then Access else Index) idx] - val = new Op '?', val, defaultValue if defaultValue - if name? - message = isUnassignable name - obj.error message if message - assigns.push new Assign(obj, val, null, param: @param, subpattern: yes).compileToFragments o, LEVEL_LIST - assigns.push vvar unless top or @subpattern - fragments = @joinFragmentArrays assigns, ', ' - if o.level < LEVEL_LIST then fragments else @wrapInBraces fragments - - # When compiling a conditional assignment, take care to ensure that the - # operands are only evaluated once, even though we have to reference them - # more than once. - compileConditional: (o) -> - [left, right] = @variable.cacheReference o - # Disallow conditional assignment of undefined variables. - if not left.properties.length and left.base instanceof Literal and - left.base not instanceof ThisLiteral and not o.scope.check left.base.value - @variable.error "the variable \"#{left.base.value}\" can't be assigned with #{@context} because it has not been declared before" - if "?" in @context - o.isExistentialEquals = true - new If(new Existence(left), right, type: 'if').addElse(new Assign(right, @value, '=')).compileToFragments o - else - fragments = new Op(@context[...-1], left, new Assign(right, @value, '=')).compileToFragments o - if o.level <= LEVEL_LIST then fragments else @wrapInBraces fragments - - # Convert special math assignment operators like `a **= b` to the equivalent - # extended form `a = a ** b` and then compiles that. - compileSpecialMath: (o) -> - [left, right] = @variable.cacheReference o - new Assign(left, new Op(@context[...-1], right, @value)).compileToFragments o - - # Compile the assignment from an array splice literal, using JavaScript's - # `Array#splice` method. - compileSplice: (o) -> - {range: {from, to, exclusive}} = @variable.properties.pop() - name = @variable.compile o - if from - [fromDecl, fromRef] = @cacheToCodeFragments from.cache o, LEVEL_OP - else - fromDecl = fromRef = '0' - if to - if from?.isNumber() and to.isNumber() - to = to.compile(o) - fromRef - to += 1 unless exclusive - else - to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef - to += ' + 1' unless exclusive - else - to = "9e9" - [valDef, valRef] = @value.cache o, LEVEL_LIST - answer = [].concat @makeCode("[].splice.apply(#{name}, [#{fromDecl}, #{to}].concat("), valDef, @makeCode(")), "), valRef - if o.level > LEVEL_TOP then @wrapInBraces answer else answer - -#### Code - -# A function definition. This is the only node that creates a new Scope. -# When for the purposes of walking the contents of a function body, the Code -# has no *children* -- they're within the inner scope. -exports.Code = class Code extends Base - constructor: (params, body, tag) -> - @params = params or [] - @body = body or new Block - @bound = tag is 'boundfunc' - @wrap = yes # wrap function declarations in modifier invokation (async) - @isGenerator = !!@body.contains (node) -> -<<<<<<< HEAD - node instanceof Op and node.isYield() - @isAsync = !!@body.contains (node) -> - node instanceof Op and node.isAwait() - - if @isAsync and @isGenerator - @err "funtion can be a generator or async, but not both" -======= - (node instanceof Op and node.isYield()) or node instanceof YieldReturn ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa - - children: ['params', 'body'] - - # a closure containing `await` should simply compile to a generator function - purify: -> - @wrap = no - - isStatement: -> !!@ctor - - jumps: NO - - makeScope: (parentScope) -> new Scope parentScope, @body, this - - # Compilation creates a new scope unless explicitly asked to share with the - # outer scope. Handles splat parameters in the parameter list by peeking at - # the JavaScript `arguments` object. If the function is bound with the `=>` - # arrow, generates a wrapper that saves the current value of `this` through - # a closure. - compileNode: (o) -> - - if @bound and o.scope.method?.bound - @context = o.scope.method.context - - # Handle bound functions early. - if @bound and not @context - @context = '_this' - wrapper = new Code [new Param new IdentifierLiteral @context], new Block [this] - boundfunc = new Call(wrapper, [new ThisLiteral]) - boundfunc.updateLocationDataIfMissing @locationData - return boundfunc.compileNode(o) - - o.scope = del(o, 'classScope') or @makeScope o.scope - o.scope.shared = del(o, 'sharedScope') - o.indent += TAB - delete o.bare - delete o.isExistentialEquals - params = [] - exprs = [] - for param in @params when param not instanceof Expansion - o.scope.parameter param.asReference o - for param in @params when param.splat or param instanceof Expansion - for p in @params when p not instanceof Expansion and p.name.value - o.scope.add p.name.value, 'var', yes - splats = new Assign new Value(new Arr(p.asReference o for p in @params)), - new Value new IdentifierLiteral 'arguments' - break - for param in @params - if param.isComplex() - val = ref = param.asReference o - val = new Op '?', ref, param.value if param.value - exprs.push new Assign new Value(param.name), val, '=', param: yes - else - ref = param - if param.value - lit = new Literal ref.name.value + ' == null' - val = new Assign new Value(param.name), param.value, '=' - exprs.push new If lit, val - params.push ref unless splats - wasEmpty = @body.isEmpty() - exprs.unshift splats if splats - @body.expressions.unshift exprs... if exprs.length - for p, i in params - params[i] = p.compileToFragments o - o.scope.parameter fragmentsToText params[i] - uniqs = [] - @eachParamName (name, node) -> - node.error "multiple parameters named #{name}" if name in uniqs - uniqs.push name - @body.makeReturn() unless wasEmpty or @noReturn - asyncify = @isAsync and @wrap - code = '' - code += "#{utility 'async', o}(" if asyncify - code += 'function' - code += '*' if @isGenerator or @isAsync - code += ' ' + @name if @ctor - code += '(' - answer = [@makeCode(code)] - for p, i in params - if i then answer.push @makeCode ", " - answer.push p... - answer.push @makeCode ') {' - answer = answer.concat(@makeCode("\n"), @body.compileWithDeclarations(o), @makeCode("\n#{@tab}")) unless @body.isEmpty() - answer.push @makeCode '}' - answer.push @makeCode ')' if asyncify - - return [@makeCode(@tab), answer...] if @ctor - if @front or (o.level >= LEVEL_ACCESS) then @wrapInBraces answer else answer - - eachParamName: (iterator) -> - param.eachName iterator for param in @params - - # Short-circuit `traverseChildren` method to prevent it from crossing scope boundaries - # unless `crossScope` is `true`. - traverseChildren: (crossScope, func) -> - super(crossScope, func) if crossScope - -#### Param - -# A parameter in a function definition. Beyond a typical JavaScript parameter, -# these parameters can also attach themselves to the context of the function, -# as well as be a splat, gathering up a group of parameters into an array. -exports.Param = class Param extends Base - constructor: (@name, @value, @splat) -> - message = isUnassignable @name.unwrapAll().value - @name.error message if message - if @name instanceof Obj and @name.generated - token = @name.objects[0].operatorToken - token.error "unexpected #{token.value}" - - children: ['name', 'value'] - - compileToFragments: (o) -> - @name.compileToFragments o, LEVEL_LIST - - asReference: (o) -> - return @reference if @reference - node = @name - if node.this - name = node.properties[0].name.value - name = "_#{name}" if name in JS_FORBIDDEN - node = new IdentifierLiteral o.scope.freeVariable name - else if node.isComplex() - node = new IdentifierLiteral o.scope.freeVariable 'arg' - node = new Value node - node = new Splat node if @splat - node.updateLocationDataIfMissing @locationData - @reference = node - - isComplex: -> - @name.isComplex() - - # Iterates the name or names of a `Param`. - # In a sense, a destructured parameter represents multiple JS parameters. This - # method allows to iterate them all. - # The `iterator` function will be called as `iterator(name, node)` where - # `name` is the name of the parameter and `node` is the AST node corresponding - # to that name. - eachName: (iterator, name = @name)-> - atParam = (obj) -> iterator "@#{obj.properties[0].name.value}", obj - # * simple literals `foo` - return iterator name.value, name if name instanceof Literal - # * at-params `@foo` - return atParam name if name instanceof Value - for obj in name.objects ? [] - # * destructured parameter with default value - if obj instanceof Assign and not obj.context? - obj = obj.variable - # * assignments within destructured parameters `{foo:bar}` - if obj instanceof Assign - # ... possibly with a default value - if obj.value instanceof Assign - obj = obj.value - @eachName iterator, obj.value.unwrap() - # * splats within destructured parameters `[xs...]` - else if obj instanceof Splat - node = obj.name.unwrap() - iterator node.value, node - else if obj instanceof Value - # * destructured parameters within destructured parameters `[{a}]` - if obj.isArray() or obj.isObject() - @eachName iterator, obj.base - # * at-params within destructured parameters `{@foo}` - else if obj.this - atParam obj - # * simple destructured parameters {foo} - else iterator obj.base.value, obj.base - else if obj not instanceof Expansion - obj.error "illegal parameter #{obj.compile()}" - return - -#### Splat - -# A splat, either as a parameter to a function, an argument to a call, -# or as part of a destructuring assignment. -exports.Splat = class Splat extends Base - - children: ['name'] - - isAssignable: YES - - constructor: (name) -> - @name = if name.compile then name else new Literal name - - assigns: (name) -> - @name.assigns name - - compileToFragments: (o) -> - @name.compileToFragments o - - unwrap: -> @name - - # Utility function that converts an arbitrary number of elements, mixed with - # splats, to a proper array. - @compileSplattedArray: (o, list, apply) -> - index = -1 - continue while (node = list[++index]) and node not instanceof Splat - return [] if index >= list.length - if list.length is 1 - node = list[0] - fragments = node.compileToFragments o, LEVEL_LIST - return fragments if apply - return [].concat node.makeCode("#{ utility 'slice', o }.call("), fragments, node.makeCode(")") - args = list[index..] - for node, i in args - compiledNode = node.compileToFragments o, LEVEL_LIST - args[i] = if node instanceof Splat - then [].concat node.makeCode("#{ utility 'slice', o }.call("), compiledNode, node.makeCode(")") - else [].concat node.makeCode("["), compiledNode, node.makeCode("]") - if index is 0 - node = list[0] - concatPart = (node.joinFragmentArrays args[1..], ', ') - return args[0].concat node.makeCode(".concat("), concatPart, node.makeCode(")") - base = (node.compileToFragments o, LEVEL_LIST for node in list[...index]) - base = list[0].joinFragmentArrays base, ', ' - concatPart = list[index].joinFragmentArrays args, ', ' - [..., last] = list - [].concat list[0].makeCode("["), base, list[index].makeCode("].concat("), concatPart, last.makeCode(")") - -#### Expansion - -# Used to skip values inside an array destructuring (pattern matching) or -# parameter list. -exports.Expansion = class Expansion extends Base - - isComplex: NO - - compileNode: (o) -> - @error 'Expansion must be used inside a destructuring assignment or parameter list' - - asReference: (o) -> - this - - eachName: (iterator) -> - -#### While - -# A while loop, the only sort of low-level loop exposed by CoffeeScript. From -# it, all other loops can be manufactured. Useful in cases where you need more -# flexibility or more speed than a comprehension can provide. -exports.While = class While extends Base - constructor: (condition, options) -> - @condition = if options?.invert then condition.invert() else condition - @guard = options?.guard - - children: ['condition', 'guard', 'body'] - - isStatement: YES - - makeReturn: (res) -> - if res - super - else - @returns = not @jumps loop: yes - this - - addBody: (@body) -> - this - - jumps: -> - {expressions} = @body - return no unless expressions.length - for node in expressions - return jumpNode if jumpNode = node.jumps loop: yes - no - - # The main difference from a JavaScript *while* is that the CoffeeScript - # *while* can be used as a part of a larger expression -- while loops may - # return an array containing the computed result of each iteration. - compileNode: (o) -> - o.indent += TAB - set = '' - {body} = this - if body.isEmpty() - body = @makeCode '' - else - if @returns - body.makeReturn rvar = o.scope.freeVariable 'results' - set = "#{@tab}#{rvar} = [];\n" - if @guard - if body.expressions.length > 1 - body.expressions.unshift new If (new Parens @guard).invert(), new StatementLiteral "continue" - else - body = Block.wrap [new If @guard, body] if @guard - body = [].concat @makeCode("\n"), (body.compileToFragments o, LEVEL_TOP), @makeCode("\n#{@tab}") - answer = [].concat @makeCode(set + @tab + "while ("), @condition.compileToFragments(o, LEVEL_PAREN), - @makeCode(") {"), body, @makeCode("}") - if @returns - answer.push @makeCode "\n#{@tab}return #{rvar};" - answer - -#### Op - -# Simple Arithmetic and logical operations. Performs some conversion from -# CoffeeScript operations into their JavaScript equivalents. -exports.Op = class Op extends Base - constructor: (op, first, second, flip ) -> - return new In first, second if op is 'in' - if op is 'do' - return @generateDo first - if op is 'new' - return first.newInstance() if first instanceof Call and not first.do and not first.isNew - first = new Parens first if first instanceof Code and first.bound or first.do - @operator = CONVERSIONS[op] or op - @originalOperator = op - @first = first - @second = second - @flip = !!flip - return this - - # The map of conversions from CoffeeScript to JavaScript symbols. - CONVERSIONS = - '==': '===' - '!=': '!==' - 'of': 'in' - 'await': 'yield' - 'yieldfrom': 'yield*' - - # The map of invertible operators. - INVERSIONS = - '!==': '===' - '===': '!==' - - children: ['first', 'second'] - - isNumber: -> - @isUnary() and @operator in ['+', '-'] and - @first instanceof Value and @first.isNumber() - - isAwait: -> - @originalOperator is 'await' - - isYield: -> - @originalOperator in ['yield', 'yieldfrom'] - - isUnary: -> - not @second - - isComplex: -> - not @isNumber() - - # Am I capable of - # [Python-style comparison chaining](http://docs.python.org/reference/expressions.html#notin)? - isChainable: -> - @operator in ['<', '>', '>=', '<=', '===', '!=='] - - invert: -> - if @isChainable() and @first.isChainable() - allInvertable = yes - curr = this - while curr and curr.operator - allInvertable and= (curr.operator of INVERSIONS) - curr = curr.first - return new Parens(this).invert() unless allInvertable - curr = this - while curr and curr.operator - curr.invert = !curr.invert - curr.operator = INVERSIONS[curr.operator] - curr = curr.first - this - else if op = INVERSIONS[@operator] - @operator = op - if @first.unwrap() instanceof Op - @first.invert() - this - else if @second - new Parens(this).invert() - else if @operator is '!' and (fst = @first.unwrap()) instanceof Op and - fst.operator in ['!', 'in', 'instanceof'] - fst - else - new Op '!', this - - unfoldSoak: (o) -> - @operator in ['++', '--', 'delete'] and unfoldSoak o, this, 'first' - - generateDo: (exp) -> - passedParams = [] - func = if exp instanceof Assign and (ref = exp.value.unwrap()) instanceof Code - ref - else - exp - for param in func.params or [] - if param.value - passedParams.push param.value - delete param.value - else - passedParams.push param - call = new Call exp, passedParams - call.do = yes - call - - compileNode: (o) -> - isChain = @isChainable() and @first.isChainable() - # In chains, there's no need to wrap bare obj literals in parens, - # as the chained expression is wrapped. - @first.front = @front unless isChain - if @operator is 'delete' and o.scope.check(@first.unwrapAll().value) - @error 'delete operand may not be argument or var' -<<<<<<< HEAD - if @operator in ['--', '++'] and @first.unwrapAll().value in STRICT_PROSCRIBED - @error "cannot increment/decrement \"#{@first.unwrapAll().value}\"" - return @compileContinuation o if @isYield() or @isAwait() - return @compileUnary o if @isUnary() - return @compileChain o if isChain -======= - if @operator in ['--', '++'] - message = isUnassignable @first.unwrapAll().value - @first.error message if message - return @compileYield o if @isYield() - return @compileUnary o if @isUnary() - return @compileChain o if isChain ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa - switch @operator - when '?' then @compileExistence o - when '**' then @compilePower o - when '//' then @compileFloorDivision o - when '%%' then @compileModulo o - else - lhs = @first.compileToFragments o, LEVEL_OP - rhs = @second.compileToFragments o, LEVEL_OP - answer = [].concat lhs, @makeCode(" #{@operator} "), rhs - if o.level <= LEVEL_OP then answer else @wrapInBraces answer - - # Mimic Python's chained comparisons when multiple comparison operators are - # used sequentially. For example: - # - # bin/coffee -e 'console.log 50 < 65 > 10' - # true - compileChain: (o) -> - [@first.second, shared] = @first.second.cache o - fst = @first.compileToFragments o, LEVEL_OP - fragments = fst.concat @makeCode(" #{if @invert then '&&' else '||'} "), - (shared.compileToFragments o), @makeCode(" #{@operator} "), (@second.compileToFragments o, LEVEL_OP) - @wrapInBraces fragments - - # Keep reference to the left expression, unless this an existential assignment - compileExistence: (o) -> - if @first.isComplex() - ref = new IdentifierLiteral o.scope.freeVariable 'ref' - fst = new Parens new Assign ref, @first - else - fst = @first - ref = fst - new If(new Existence(fst), ref, type: 'if').addElse(@second).compileToFragments o - - # Compile a unary **Op**. - compileUnary: (o) -> - parts = [] - op = @operator - parts.push [@makeCode op] - if op is '!' and @first instanceof Existence - @first.negated = not @first.negated - return @first.compileToFragments o - if o.level >= LEVEL_ACCESS - return (new Parens this).compileToFragments o - plusMinus = op in ['+', '-'] - parts.push [@makeCode(' ')] if op in ['new', 'typeof', 'delete'] or - plusMinus and @first instanceof Op and @first.operator is op - if (plusMinus and @first instanceof Op) or (op is 'new' and @first.isStatement o) - @first = new Parens @first - parts.push @first.compileToFragments o, LEVEL_OP - parts.reverse() if @flip - @joinFragmentArrays parts, '' - - compileContinuation: (o) -> - parts = [] - op = @operator -<<<<<<< HEAD - if not o.scope.parent? - # all continuations must occur inside function body - @error "#{@originalOperator} statements must occur within a function body." - if 'expression' in Object.keys @first -======= - unless o.scope.parent? - @error 'yield can only occur inside functions' - if 'expression' in Object.keys(@first) and not (@first instanceof Throw) ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa - parts.push @first.expression.compileToFragments o, LEVEL_OP if @first.expression? - else - parts.push [@makeCode "("] if o.level >= LEVEL_PAREN - parts.push [@makeCode op] - parts.push [@makeCode " "] if @first.base?.value isnt '' - parts.push @first.compileToFragments o, LEVEL_OP - parts.push [@makeCode ")"] if o.level >= LEVEL_PAREN - @joinFragmentArrays parts, '' - - compilePower: (o) -> - # Make a Math.pow call - pow = new Value new IdentifierLiteral('Math'), [new Access new PropertyName 'pow'] - new Call(pow, [@first, @second]).compileToFragments o - - compileFloorDivision: (o) -> - floor = new Value new IdentifierLiteral('Math'), [new Access new PropertyName 'floor'] - div = new Op '/', @first, @second - new Call(floor, [div]).compileToFragments o - - compileModulo: (o) -> - mod = new Value new Literal utility 'modulo', o - new Call(mod, [@first, @second]).compileToFragments o - - toString: (idt) -> - super idt, @constructor.name + ' ' + @operator - -#### In -exports.In = class In extends Base - constructor: (@object, @array) -> - - children: ['object', 'array'] - - invert: NEGATE - - compileNode: (o) -> - if @array instanceof Value and @array.isArray() and @array.base.objects.length - for obj in @array.base.objects when obj instanceof Splat - hasSplat = yes - break - # `compileOrTest` only if we have an array literal with no splats - return @compileOrTest o unless hasSplat - @compileLoopTest o - - compileOrTest: (o) -> - [sub, ref] = @object.cache o, LEVEL_OP - [cmp, cnj] = if @negated then [' !== ', ' && '] else [' === ', ' || '] - tests = [] - for item, i in @array.base.objects - if i then tests.push @makeCode cnj - tests = tests.concat (if i then ref else sub), @makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS) - if o.level < LEVEL_OP then tests else @wrapInBraces tests - - compileLoopTest: (o) -> - [sub, ref] = @object.cache o, LEVEL_LIST - fragments = [].concat @makeCode(utility('indexOf', o) + ".call("), @array.compileToFragments(o, LEVEL_LIST), - @makeCode(", "), ref, @makeCode(") " + if @negated then '< 0' else '>= 0') - return fragments if fragmentsToText(sub) is fragmentsToText(ref) - fragments = sub.concat @makeCode(', '), fragments - if o.level < LEVEL_LIST then fragments else @wrapInBraces fragments - - toString: (idt) -> - super idt, @constructor.name + if @negated then '!' else '' - -#### Try - -# A classic *try/catch/finally* block. -exports.Try = class Try extends Base - constructor: (@attempt, @errorVariable, @recovery, @ensure) -> - - children: ['attempt', 'recovery', 'ensure'] - - isStatement: YES - - jumps: (o) -> @attempt.jumps(o) or @recovery?.jumps(o) - - makeReturn: (res) -> - @attempt = @attempt .makeReturn res if @attempt - @recovery = @recovery.makeReturn res if @recovery - this - - # Compilation is more or less as you would expect -- the *finally* clause - # is optional, the *catch* is not. - compileNode: (o) -> - o.indent += TAB - tryPart = @attempt.compileToFragments o, LEVEL_TOP - - catchPart = if @recovery - generatedErrorVariableName = o.scope.freeVariable 'error', reserve: no - placeholder = new IdentifierLiteral generatedErrorVariableName - if @errorVariable - message = isUnassignable @errorVariable.unwrapAll().value - @errorVariable.error message if message - @recovery.unshift new Assign @errorVariable, placeholder - [].concat @makeCode(" catch ("), placeholder.compileToFragments(o), @makeCode(") {\n"), - @recovery.compileToFragments(o, LEVEL_TOP), @makeCode("\n#{@tab}}") - else unless @ensure or @recovery - generatedErrorVariableName = o.scope.freeVariable 'error', reserve: no - [@makeCode(" catch (#{generatedErrorVariableName}) {}")] - else - [] - - ensurePart = if @ensure then ([].concat @makeCode(" finally {\n"), @ensure.compileToFragments(o, LEVEL_TOP), - @makeCode("\n#{@tab}}")) else [] - - [].concat @makeCode("#{@tab}try {\n"), - tryPart, - @makeCode("\n#{@tab}}"), catchPart, ensurePart - -#### Throw - -# Simple node to throw an exception. -exports.Throw = class Throw extends Base - constructor: (@expression) -> - - children: ['expression'] - - isStatement: YES - jumps: NO - - # A **Throw** is already a return, of sorts... - makeReturn: THIS - - compileNode: (o) -> - [].concat @makeCode(@tab + "throw "), @expression.compileToFragments(o), @makeCode(";") - -#### Existence - -# Checks a variable for existence -- not *null* and not *undefined*. This is -# similar to `.nil?` in Ruby, and avoids having to consult a JavaScript truth -# table. -exports.Existence = class Existence extends Base - constructor: (@expression) -> - - children: ['expression'] - - invert: NEGATE - - compileNode: (o) -> - @expression.front = @front - code = @expression.compile o, LEVEL_OP - if @expression.unwrap() instanceof IdentifierLiteral and not o.scope.check code - [cmp, cnj] = if @negated then ['===', '||'] else ['!==', '&&'] - code = "typeof #{code} #{cmp} \"undefined\" #{cnj} #{code} #{cmp} null" - else - # do not use strict equality here; it will break existing code - code = "#{code} #{if @negated then '==' else '!='} null" - [@makeCode(if o.level <= LEVEL_COND then code else "(#{code})")] - -#### Parens - -# An extra set of parentheses, specified explicitly in the source. At one time -# we tried to clean up the results by detecting and removing redundant -# parentheses, but no longer -- you can put in as many as you please. -# -# Parentheses are a good way to force any statement to become an expression. -exports.Parens = class Parens extends Base - constructor: (@body) -> - - children: ['body'] - - unwrap : -> @body - isComplex : -> @body.isComplex() - - compileNode: (o) -> - expr = @body.unwrap() - if expr instanceof Value and expr.isAtomic() - expr.front = @front - return expr.compileToFragments o - fragments = expr.compileToFragments o, LEVEL_PAREN - bare = o.level < LEVEL_OP and (expr instanceof Op or expr instanceof Call or - (expr instanceof For and expr.returns)) - if bare then fragments else @wrapInBraces fragments - -#### StringWithInterpolations - -# Strings with interpolations are in fact just a variation of `Parens` with -# string concatenation inside. - -exports.StringWithInterpolations = class StringWithInterpolations extends Parens - -#### For - -# CoffeeScript's replacement for the *for* loop is our array and object -# comprehensions, that compile into *for* loops here. They also act as an -# expression, able to return the result of each filtered iteration. -# -# Unlike Python array comprehensions, they can be multi-line, and you can pass -# the current index of the loop as a second parameter. Unlike Ruby blocks, -# you can map and filter in a single pass. -exports.For = class For extends While - constructor: (body, source) -> - {@source, @guard, @step, @name, @index} = source - @body = Block.wrap [body] - @own = !!source.own - @object = !!source.object - [@name, @index] = [@index, @name] if @object - @index.error 'index cannot be a pattern matching expression' if @index instanceof Value - @range = @source instanceof Value and @source.base instanceof Range and not @source.properties.length - @pattern = @name instanceof Value - @index.error 'indexes do not apply to range loops' if @range and @index - @name.error 'cannot pattern match over range loops' if @range and @pattern - @name.error 'cannot use own with for-in' if @own and not @object - @returns = false - - children: ['body', 'source', 'guard', 'step'] - - # Welcome to the hairiest method in all of CoffeeScript. Handles the inner - # loop, filtering, stepping, and result saving for array, object, and range - # comprehensions. Some of the generated code can be shared in common, and - # some cannot. - compileNode: (o) -> - body = Block.wrap [@body] - [..., last] = body.expressions - @returns = no if last?.jumps() instanceof Return - source = if @range then @source.base else @source - scope = o.scope - name = @name and (@name.compile o, LEVEL_LIST) if not @pattern - index = @index and (@index.compile o, LEVEL_LIST) - scope.find(name) if name and not @pattern - scope.find(index) if index - rvar = scope.freeVariable 'results' if @returns - ivar = (@object and index) or scope.freeVariable 'i', single: true - kvar = (@range and name) or index or ivar - kvarAssign = if kvar isnt ivar then "#{kvar} = " else "" - if @step and not @range - [step, stepVar] = @cacheToCodeFragments @step.cache o, LEVEL_LIST, isComplexOrAssignable - stepNum = Number stepVar if @step.isNumber() - name = ivar if @pattern - varPart = '' - guardPart = '' - defPart = '' - idt1 = @tab + TAB - if @range - forPartFragments = source.compileToFragments merge o, - {index: ivar, name, @step, isComplex: isComplexOrAssignable} - else - svar = @source.compile o, LEVEL_LIST - if (name or @own) and @source.unwrap() not instanceof IdentifierLiteral - defPart += "#{@tab}#{ref = scope.freeVariable 'ref'} = #{svar};\n" - svar = ref - if name and not @pattern - namePart = "#{name} = #{svar}[#{kvar}]" - if not @object - defPart += "#{@tab}#{step};\n" if step isnt stepVar - down = stepNum < 0 - lvar = scope.freeVariable 'len' unless @step and stepNum? and down - declare = "#{kvarAssign}#{ivar} = 0, #{lvar} = #{svar}.length" - declareDown = "#{kvarAssign}#{ivar} = #{svar}.length - 1" - compare = "#{ivar} < #{lvar}" - compareDown = "#{ivar} >= 0" - if @step - if stepNum? - if down - compare = compareDown - declare = declareDown - else - compare = "#{stepVar} > 0 ? #{compare} : #{compareDown}" - declare = "(#{stepVar} > 0 ? (#{declare}) : #{declareDown})" - increment = "#{ivar} += #{stepVar}" - else - increment = "#{if kvar isnt ivar then "++#{ivar}" else "#{ivar}++"}" - forPartFragments = [@makeCode("#{declare}; #{compare}; #{kvarAssign}#{increment}")] - if @returns - resultPart = "#{@tab}#{rvar} = [];\n" - returnResult = "\n#{@tab}return #{rvar};" - body.makeReturn rvar - if @guard - if body.expressions.length > 1 - body.expressions.unshift new If (new Parens @guard).invert(), new StatementLiteral "continue" - else - body = Block.wrap [new If @guard, body] if @guard - if @pattern - body.expressions.unshift new Assign @name, new Literal "#{svar}[#{kvar}]" - defPartFragments = [].concat @makeCode(defPart), @pluckDirectCall(o, body) - varPart = "\n#{idt1}#{namePart};" if namePart - if @object - forPartFragments = [@makeCode("#{kvar} in #{svar}")] - guardPart = "\n#{idt1}if (!#{utility 'hasProp', o}.call(#{svar}, #{kvar})) continue;" if @own - bodyFragments = body.compileToFragments merge(o, indent: idt1), LEVEL_TOP - if bodyFragments and (bodyFragments.length > 0) - bodyFragments = [].concat @makeCode("\n"), bodyFragments, @makeCode("\n") - [].concat defPartFragments, @makeCode("#{resultPart or ''}#{@tab}for ("), - forPartFragments, @makeCode(") {#{guardPart}#{varPart}"), bodyFragments, - @makeCode("#{@tab}}#{returnResult or ''}") - - pluckDirectCall: (o, body) -> - defs = [] - for expr, idx in body.expressions - expr = expr.unwrapAll() - continue unless expr instanceof Call - val = expr.variable?.unwrapAll() - continue unless (val instanceof Code) or - (val instanceof Value and - val.base?.unwrapAll() instanceof Code and - val.properties.length is 1 and - val.properties[0].name?.value in ['call', 'apply']) - fn = val.base?.unwrapAll() or val - ref = new IdentifierLiteral o.scope.freeVariable 'fn' - base = new Value ref - if val.base - [val.base, base] = [base, val] - body.expressions[idx] = new Call base, expr.args - defs = defs.concat @makeCode(@tab), (new Assign(ref, fn).compileToFragments(o, LEVEL_TOP)), @makeCode(';\n') - defs - -#### Switch - -# A JavaScript *switch* statement. Converts into a returnable expression on-demand. -exports.Switch = class Switch extends Base - constructor: (@subject, @cases, @otherwise) -> - - children: ['subject', 'cases', 'otherwise'] - - isStatement: YES - - jumps: (o = {block: yes}) -> - for [conds, block] in @cases - return jumpNode if jumpNode = block.jumps o - @otherwise?.jumps o - - makeReturn: (res) -> - pair[1].makeReturn res for pair in @cases - @otherwise or= new Block [new Literal 'void 0'] if res - @otherwise?.makeReturn res - this - - compileNode: (o) -> - idt1 = o.indent + TAB - idt2 = o.indent = idt1 + TAB - fragments = [].concat @makeCode(@tab + "switch ("), - (if @subject then @subject.compileToFragments(o, LEVEL_PAREN) else @makeCode "false"), - @makeCode(") {\n") - for [conditions, block], i in @cases - for cond in flatten [conditions] - cond = cond.invert() unless @subject - fragments = fragments.concat @makeCode(idt1 + "case "), cond.compileToFragments(o, LEVEL_PAREN), @makeCode(":\n") - fragments = fragments.concat body, @makeCode('\n') if (body = block.compileToFragments o, LEVEL_TOP).length > 0 - break if i is @cases.length - 1 and not @otherwise - expr = @lastNonComment block.expressions - continue if expr instanceof Return or (expr instanceof Literal and expr.jumps() and expr.value isnt 'debugger') - fragments.push cond.makeCode(idt2 + 'break;\n') - if @otherwise and @otherwise.expressions.length - fragments.push @makeCode(idt1 + "default:\n"), (@otherwise.compileToFragments o, LEVEL_TOP)..., @makeCode("\n") - fragments.push @makeCode @tab + '}' - fragments - -#### If - -# *If/else* statements. Acts as an expression by pushing down requested returns -# to the last line of each clause. -# -# Single-expression **Ifs** are compiled into conditional operators if possible, -# because ternaries are already proper expressions, and don't need conversion. -exports.If = class If extends Base - constructor: (condition, @body, options = {}) -> - @condition = if options.type is 'unless' then condition.invert() else condition - @elseBody = null - @isChain = false - {@soak} = options - - children: ['condition', 'body', 'elseBody'] - - bodyNode: -> @body?.unwrap() - elseBodyNode: -> @elseBody?.unwrap() - - # Rewrite a chain of **Ifs** to add a default case as the final *else*. - addElse: (elseBody) -> - if @isChain - @elseBodyNode().addElse elseBody - else - @isChain = elseBody instanceof If - @elseBody = @ensureBlock elseBody - @elseBody.updateLocationDataIfMissing elseBody.locationData - this - - # The **If** only compiles into a statement if either of its bodies needs - # to be a statement. Otherwise a conditional operator is safe. - isStatement: (o) -> - o?.level is LEVEL_TOP or - @bodyNode().isStatement(o) or @elseBodyNode()?.isStatement(o) - - jumps: (o) -> @body.jumps(o) or @elseBody?.jumps(o) - - compileNode: (o) -> - if @isStatement o then @compileStatement o else @compileExpression o - - makeReturn: (res) -> - @elseBody or= new Block [new Literal 'void 0'] if res - @body and= new Block [@body.makeReturn res] - @elseBody and= new Block [@elseBody.makeReturn res] - this - - ensureBlock: (node) -> - if node instanceof Block then node else new Block [node] - - # Compile the `If` as a regular *if-else* statement. Flattened chains - # force inner *else* bodies into statement form. - compileStatement: (o) -> - child = del o, 'chainChild' - exeq = del o, 'isExistentialEquals' - - if exeq - return new If(@condition.invert(), @elseBodyNode(), type: 'if').compileToFragments o - - indent = o.indent + TAB - cond = @condition.compileToFragments o, LEVEL_PAREN - body = @ensureBlock(@body).compileToFragments merge o, {indent} - ifPart = [].concat @makeCode("if ("), cond, @makeCode(") {\n"), body, @makeCode("\n#{@tab}}") - ifPart.unshift @makeCode @tab unless child - return ifPart unless @elseBody - answer = ifPart.concat @makeCode(' else ') - if @isChain - o.chainChild = yes - answer = answer.concat @elseBody.unwrap().compileToFragments o, LEVEL_TOP - else - answer = answer.concat @makeCode("{\n"), @elseBody.compileToFragments(merge(o, {indent}), LEVEL_TOP), @makeCode("\n#{@tab}}") - answer - - # Compile the `If` as a conditional operator. - compileExpression: (o) -> - cond = @condition.compileToFragments o, LEVEL_COND - body = @bodyNode().compileToFragments o, LEVEL_LIST - alt = if @elseBodyNode() then @elseBodyNode().compileToFragments(o, LEVEL_LIST) else [@makeCode('void 0')] - fragments = cond.concat @makeCode(" ? "), body, @makeCode(" : "), alt - if o.level >= LEVEL_COND then @wrapInBraces fragments else fragments - - unfoldSoak: -> - @soak and this - -# Constants -# --------- - -UTILITIES = - - # for async functions containing `await` - async: -> " - (function(){ - var async = function(generator) { - return function() { - var args = arguments, self = this; - return new Promise(function(win, fail){ - var tracker = new Tracker(); - tracker.iterator = generator.apply(self, args); - tracker.win = win; - tracker.fail = fail; - tracker.tick(); - }); - }; - }; - - function Tracker() { - var self = this; - - this.thenHandle = function(value) { - self.result = value; - self.tick(); - }; - - this.failHandle = function(err) { - self.result = err; - self.throw = true; - self.tick(); - }; - - this.throw = false; - this.result = undefined; - - this.iterator = undefined; - this.win = undefined; - this.fail = undefined; - }; - - Tracker.prototype = { - tick: function() { - var next; - if (this.throw) { - next = this.iterator.throw(this.result); - this.throw = false; - } else { - next = this.iterator.next(this.result); - } - - if (next.done) { - this.win(next.value); - } else { - next.value.then(this.thenHandle, this.failHandle); - } - } - }; - - return async; - }()) - " - - # Correctly set up a prototype chain for inheritance, including a reference - # to the superclass for `super()` calls, and copies of any static properties. - extend: (o) -> " - function(child, parent) { - for (var key in parent) { - if (#{utility 'hasProp', o}.call(parent, key)) child[key] = parent[key]; - } - function ctor() { - this.constructor = child; - } - ctor.prototype = parent.prototype; - child.prototype = new ctor(); - child.__super__ = parent.prototype; - return child; - } - " - - # Create a function bound to the current value of "this". - bind: -> ' - function(fn, me){ - return function(){ - return fn.apply(me, arguments); - }; - } - ' - - # Discover if an item is in an array. - indexOf: -> " - [].indexOf || function(item) { - for (var i = 0, l = this.length; i < l; i++) { - if (i in this && this[i] === item) return i; - } - return -1; - } - " - - modulo: -> """ - function(a, b) { return (+a % (b = +b) + b) % b; } - """ - - # Shortcuts to speed up the lookup time for native functions. - hasProp: -> '{}.hasOwnProperty' - slice : -> '[].slice' - -# Levels indicate a node's position in the AST. Useful for knowing if -# parens are necessary or superfluous. -LEVEL_TOP = 1 # ...; -LEVEL_PAREN = 2 # (...) -LEVEL_LIST = 3 # [...] -LEVEL_COND = 4 # ... ? x : y -LEVEL_OP = 5 # !... -LEVEL_ACCESS = 6 # ...[0] - -# Tabs are two spaces for pretty printing. -TAB = ' ' - -SIMPLENUM = /^[+-]?\d+$/ - -# Helper Functions -# ---------------- - -# Helper for ensuring that utility functions are assigned at the top level. -utility = (name, o) -> - {root} = o.scope - if name of root.utilities - root.utilities[name] - else - ref = root.freeVariable name - root.assign ref, UTILITIES[name] o - root.utilities[name] = ref - -multident = (code, tab) -> - code = code.replace /\n/g, '$&' + tab - code.replace /\s+$/, '' - -isLiteralArguments = (node) -> - node instanceof Literal and node.value is 'arguments' and not node.asKey - -isLiteralThis = (node) -> - (node instanceof ThisLiteral and not node.asKey) or - (node instanceof Code and node.bound) or - node instanceof SuperCall - -isComplexOrAssignable = (node) -> node.isComplex() or node.isAssignable?() - -# Unfold a node's child if soak, then tuck the node under created `If` -unfoldSoak = (o, parent, name) -> - return unless ifn = parent[name].unfoldSoak o - parent[name] = ifn.body - ifn.body = new Value parent - ifn diff --git a/src/rewriter.coffee.orig b/src/rewriter.coffee.orig deleted file mode 100644 index 08c170272d..0000000000 --- a/src/rewriter.coffee.orig +++ /dev/null @@ -1,515 +0,0 @@ -# The CoffeeScript language has a good deal of optional syntax, implicit syntax, -# and shorthand syntax. This can greatly complicate a grammar and bloat -# the resulting parse table. Instead of making the parser handle it all, we take -# a series of passes over the token stream, using this **Rewriter** to convert -# shorthand into the unambiguous long form, add implicit indentation and -# parentheses, and generally clean things up. - -# Create a generated token: one that exists due to a use of implicit syntax. -generate = (tag, value, origin) -> - tok = [tag, value] - tok.generated = yes - tok.origin = origin if origin - tok - -# The **Rewriter** class is used by the [Lexer](lexer.html), directly against -# its internal array of tokens. -class exports.Rewriter - - # Helpful snippet for debugging: - # - # console.log (t[0] + '/' + t[1] for t in @tokens).join ' ' - - # Rewrite the token stream in multiple passes, one logical filter at - # a time. This could certainly be changed into a single pass through the - # stream, with a big ol' efficient switch, but it's much nicer to work with - # like this. The order of these passes matters -- indentation must be - # corrected before implicit parentheses can be wrapped around blocks of code. - rewrite: (@tokens) -> - @removeLeadingNewlines() - @closeOpenCalls() - @closeOpenIndexes() - @normalizeLines() - @tagPostfixConditionals() - @addImplicitBracesAndParens() - @addLocationDataToGeneratedTokens() - @tokens - - # Rewrite the token stream, looking one token ahead and behind. - # Allow the return value of the block to tell us how many tokens to move - # forwards (or backwards) in the stream, to make sure we don't miss anything - # as tokens are inserted and removed, and the stream changes length under - # our feet. - scanTokens: (block) -> - {tokens} = this - i = 0 - i += block.call this, token, i, tokens while token = tokens[i] - true - - detectEnd: (i, condition, action) -> - {tokens} = this - levels = 0 - while token = tokens[i] - return action.call this, token, i if levels is 0 and condition.call this, token, i - return action.call this, token, i - 1 if not token or levels < 0 - if token[0] in EXPRESSION_START - levels += 1 - else if token[0] in EXPRESSION_END - levels -= 1 - i += 1 - i - 1 - - # Leading newlines would introduce an ambiguity in the grammar, so we - # dispatch them here. - removeLeadingNewlines: -> - break for [tag], i in @tokens when tag isnt 'TERMINATOR' - @tokens.splice 0, i if i - - # The lexer has tagged the opening parenthesis of a method call. Match it with - # its paired close. We have the mis-nested outdent case included here for - # calls that close on the same line, just before their outdent. - closeOpenCalls: -> - condition = (token, i) -> - token[0] in [')', 'CALL_END'] or - token[0] is 'OUTDENT' and @tag(i - 1) is ')' - - action = (token, i) -> - @tokens[if token[0] is 'OUTDENT' then i - 1 else i][0] = 'CALL_END' - - @scanTokens (token, i) -> - @detectEnd i + 1, condition, action if token[0] is 'CALL_START' - 1 - - # The lexer has tagged the opening parenthesis of an indexing operation call. - # Match it with its paired close. - closeOpenIndexes: -> - condition = (token, i) -> - token[0] in [']', 'INDEX_END'] - - action = (token, i) -> - token[0] = 'INDEX_END' - - @scanTokens (token, i) -> - @detectEnd i + 1, condition, action if token[0] is 'INDEX_START' - 1 - - # Match tags in token stream starting at `i` with `pattern`, skipping 'HERECOMMENT's. - # `pattern` may consist of strings (equality), an array of strings (one of) - # or null (wildcard). Returns the index of the match or -1 if no match. - indexOfTag: (i, pattern...) -> - fuzz = 0 - for j in [0 ... pattern.length] - fuzz += 2 while @tag(i + j + fuzz) is 'HERECOMMENT' - continue if not pattern[j]? - pattern[j] = [pattern[j]] if typeof pattern[j] is 'string' - return -1 if @tag(i + j + fuzz) not in pattern[j] - i + j + fuzz - 1 - - # Returns `yes` if standing in front of something looking like - # `@:`, `:` or `...:`, - # skipping over 'HERECOMMENT's. - looksObjectish: (j) -> - return yes if @indexOfTag(j, '@', null, ':') > -1 or @indexOfTag(j, null, ':') > -1 - index = @indexOfTag(j, EXPRESSION_START) - if index > -1 - end = null - @detectEnd index + 1, ((token) -> token[0] in EXPRESSION_END), ((token, i) -> end = i) - return yes if @tag(end + 1) is ':' - no - - # Returns `yes` if current line of tokens contain an element of tags on same - # expression level. Stop searching at LINEBREAKS or explicit start of - # containing balanced expression. - findTagsBackwards: (i, tags) -> - backStack = [] - while i >= 0 and (backStack.length or - @tag(i) not in tags and - (@tag(i) not in EXPRESSION_START or @tokens[i].generated) and - @tag(i) not in LINEBREAKS) - backStack.push @tag(i) if @tag(i) in EXPRESSION_END - backStack.pop() if @tag(i) in EXPRESSION_START and backStack.length - i -= 1 - @tag(i) in tags - - # Look for signs of implicit calls and objects in the token stream and - # add them. - addImplicitBracesAndParens: -> - # Track current balancing depth (both implicit and explicit) on stack. - stack = [] - start = null - - @scanTokens (token, i, tokens) -> - [tag] = token - [prevTag] = prevToken = if i > 0 then tokens[i - 1] else [] - [nextTag] = if i < tokens.length - 1 then tokens[i + 1] else [] - stackTop = -> stack[stack.length - 1] - startIdx = i - - # Helper function, used for keeping track of the number of tokens consumed - # and spliced, when returning for getting a new token. - forward = (n) -> i - startIdx + n - - # Helper functions - inImplicit = -> stackTop()?[2]?.ours - inImplicitCall = -> inImplicit() and stackTop()?[0] is '(' - inImplicitObject = -> inImplicit() and stackTop()?[0] is '{' - # Unclosed control statement inside implicit parens (like - # class declaration or if-conditionals) - inImplicitControl = -> inImplicit and stackTop()?[0] is 'CONTROL' - - startImplicitCall = (j) -> - idx = j ? i - stack.push ['(', idx, ours: yes] - tokens.splice idx, 0, generate 'CALL_START', '(' - i += 1 if not j? - - endImplicitCall = -> - stack.pop() - tokens.splice i, 0, generate 'CALL_END', ')', ['', 'end of input', token[2]] - i += 1 - - startImplicitObject = (j, startsLine = yes) -> - idx = j ? i - stack.push ['{', idx, sameLine: yes, startsLine: startsLine, ours: yes] - val = new String '{' - val.generated = yes - tokens.splice idx, 0, generate '{', val, token - i += 1 if not j? - - endImplicitObject = (j) -> - j = j ? i - stack.pop() - tokens.splice j, 0, generate '}', '}', token - i += 1 - - # Don't end an implicit call on next indent if any of these are in an argument - if inImplicitCall() and tag in ['IF', 'TRY', 'FINALLY', 'CATCH', - 'CLASS', 'SWITCH'] - stack.push ['CONTROL', i, ours: true] - return forward(1) - - if tag is 'INDENT' and inImplicit() - - # An `INDENT` closes an implicit call unless - # - # 1. We have seen a `CONTROL` argument on the line. - # 2. The last token before the indent is part of the list below - # - if prevTag not in ['=>', '->', '[', '(', ',', '{', 'TRY', 'ELSE', '='] - endImplicitCall() while inImplicitCall() - stack.pop() if inImplicitControl() - stack.push [tag, i] - return forward(1) - - # Straightforward start of explicit expression - if tag in EXPRESSION_START - stack.push [tag, i] - return forward(1) - - # Close all implicit expressions inside of explicitly closed expressions. - if tag in EXPRESSION_END - while inImplicit() - if inImplicitCall() - endImplicitCall() - else if inImplicitObject() - endImplicitObject() - else - stack.pop() - start = stack.pop() - - # Recognize standard implicit calls like - # f a, f() b, f? c, h[0] d etc. - if (tag in IMPLICIT_FUNC and token.spaced or - tag is '?' and i > 0 and not tokens[i - 1].spaced) and - (nextTag in IMPLICIT_CALL or - nextTag in IMPLICIT_UNSPACED_CALL and - not tokens[i + 1]?.spaced and not tokens[i + 1]?.newLine) - tag = token[0] = 'FUNC_EXIST' if tag is '?' - startImplicitCall i + 1 - return forward(2) - - # Implicit call taking an implicit indented object as first argument. - # - # f - # a: b - # c: d - # - # and - # - # f - # 1 - # a: b - # b: c - # - # Don't accept implicit calls of this type, when on the same line - # as the control strucutures below as that may misinterpret constructs like: - # - # if f - # a: 1 - # as - # - # if f(a: 1) - # - # which is probably always unintended. - # Furthermore don't allow this in literal arrays, as - # that creates grammatical ambiguities. - if tag in IMPLICIT_FUNC and - @indexOfTag(i + 1, 'INDENT') > -1 and @looksObjectish(i + 2) and - not @findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', - 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL']) - startImplicitCall i + 1 - stack.push ['INDENT', i + 2] - return forward(3) - - # Implicit objects start here - if tag is ':' - # Go back to the (implicit) start of the object - s = switch - when @tag(i - 1) in EXPRESSION_END then start[1] - when @tag(i - 2) is '@' then i - 2 - else i - 1 - s -= 2 while @tag(s - 2) is 'HERECOMMENT' - - # Mark if the value is a for loop - @insideForDeclaration = nextTag is 'FOR' - - startsLine = s is 0 or @tag(s - 1) in LINEBREAKS or tokens[s - 1].newLine - # Are we just continuing an already declared object? - if stackTop() - [stackTag, stackIdx] = stackTop() - if (stackTag is '{' or stackTag is 'INDENT' and @tag(stackIdx - 1) is '{') and - (startsLine or @tag(s - 1) is ',' or @tag(s - 1) is '{') - return forward(1) - - startImplicitObject(s, !!startsLine) - return forward(2) - - # End implicit calls when chaining method calls - # like e.g.: - # - # f -> - # a - # .g b, -> - # c - # .h a - # - # and also - # - # f a - # .g b - # .h a - - stackTop()[2].sameLine = no if inImplicitObject() and tag in LINEBREAKS - - newLine = prevTag is 'OUTDENT' or prevToken.newLine - if tag in IMPLICIT_END or tag in CALL_CLOSERS and newLine - while inImplicit() - [stackTag, stackIdx, {sameLine, startsLine}] = stackTop() - # Close implicit calls when reached end of argument list - if inImplicitCall() and prevTag isnt ',' - endImplicitCall() - # Close implicit objects such as: - # return a: 1, b: 2 unless true - else if inImplicitObject() and not @insideForDeclaration and sameLine and - tag isnt 'TERMINATOR' and prevTag isnt ':' - endImplicitObject() - # Close implicit objects when at end of line, line didn't end with a comma - # and the implicit object didn't start the line or the next line doesn't look like - # the continuation of an object. - else if inImplicitObject() and tag is 'TERMINATOR' and prevTag isnt ',' and - not (startsLine and @looksObjectish(i + 1)) - return forward 1 if nextTag is 'HERECOMMENT' - endImplicitObject() - else - break - - # Close implicit object if comma is the last character - # and what comes after doesn't look like it belongs. - # This is used for trailing commas and calls, like: - # - # x = - # a: b, - # c: d, - # e = 2 - # - # and - # - # f a, b: c, d: e, f, g: h: i, j - # - if tag is ',' and not @looksObjectish(i + 1) and inImplicitObject() and - not @insideForDeclaration and - (nextTag isnt 'TERMINATOR' or not @looksObjectish(i + 2)) - # When nextTag is OUTDENT the comma is insignificant and - # should just be ignored so embed it in the implicit object. - # - # When it isn't the comma go on to play a role in a call or - # array further up the stack, so give it a chance. - - offset = if nextTag is 'OUTDENT' then 1 else 0 - while inImplicitObject() - endImplicitObject i + offset - return forward(1) - - # Add location data to all tokens generated by the rewriter. - addLocationDataToGeneratedTokens: -> - @scanTokens (token, i, tokens) -> - return 1 if token[2] - return 1 unless token.generated or token.explicit - if token[0] is '{' and nextLocation=tokens[i + 1]?[2] - {first_line: line, first_column: column} = nextLocation - else if prevLocation = tokens[i - 1]?[2] - {last_line: line, last_column: column} = prevLocation - else - line = column = 0 - token[2] = - first_line: line - first_column: column - last_line: line - last_column: column - return 1 - - # Because our grammar is LALR(1), it can't handle some single-line - # expressions that lack ending delimiters. The **Rewriter** adds the implicit - # blocks, so it doesn't need to. To keep the grammar clean and tidy, trailing - # newlines within expressions are removed and the indentation tokens of empty - # blocks are added. - normalizeLines: -> - starter = indent = outdent = null - - condition = (token, i) -> - token[1] isnt ';' and token[0] in SINGLE_CLOSERS and - not (token[0] is 'TERMINATOR' and @tag(i + 1) in EXPRESSION_CLOSE) and - not (token[0] is 'ELSE' and starter isnt 'THEN') and - not (token[0] in ['CATCH', 'FINALLY'] and starter in ['->', '=>']) or - token[0] in CALL_CLOSERS and @tokens[i - 1].newLine - - action = (token, i) -> - @tokens.splice (if @tag(i - 1) is ',' then i - 1 else i), 0, outdent - - @scanTokens (token, i, tokens) -> - [tag] = token - if tag is 'TERMINATOR' - if @tag(i + 1) is 'ELSE' and @tag(i - 1) isnt 'OUTDENT' - tokens.splice i, 1, @indentation()... - return 1 - if @tag(i + 1) in EXPRESSION_CLOSE - tokens.splice i, 1 - return 0 - if tag is 'CATCH' - for j in [1..2] when @tag(i + j) in ['OUTDENT', 'TERMINATOR', 'FINALLY'] - tokens.splice i + j, 0, @indentation()... - return 2 + j - if tag in SINGLE_LINERS and @tag(i + 1) isnt 'INDENT' and - not (tag is 'ELSE' and @tag(i + 1) is 'IF') - starter = tag - [indent, outdent] = @indentation tokens[i] - indent.fromThen = true if starter is 'THEN' - tokens.splice i + 1, 0, indent - @detectEnd i + 2, condition, action - tokens.splice i, 1 if tag is 'THEN' - return 1 - return 1 - - # Tag postfix conditionals as such, so that we can parse them with a - # different precedence. - tagPostfixConditionals: -> - - original = null - - condition = (token, i) -> - [tag] = token - [prevTag] = @tokens[i - 1] - tag is 'TERMINATOR' or (tag is 'INDENT' and prevTag not in SINGLE_LINERS) - - action = (token, i) -> - if token[0] isnt 'INDENT' or (token.generated and not token.fromThen) - original[0] = 'POST_' + original[0] - - @scanTokens (token, i) -> - return 1 unless token[0] is 'IF' - original = token - @detectEnd i + 1, condition, action - return 1 - - # Generate the indentation tokens, based on another token on the same line. - indentation: (origin) -> - indent = ['INDENT', 2] - outdent = ['OUTDENT', 2] - if origin - indent.generated = outdent.generated = yes - indent.origin = outdent.origin = origin - else - indent.explicit = outdent.explicit = yes - [indent, outdent] - - generate: generate - - # Look up a tag by token index. - tag: (i) -> @tokens[i]?[0] - -# Constants -# --------- - -# List of the token pairs that must be balanced. -BALANCED_PAIRS = [ - ['(', ')'] - ['[', ']'] - ['{', '}'] - ['INDENT', 'OUTDENT'], - ['CALL_START', 'CALL_END'] - ['PARAM_START', 'PARAM_END'] - ['INDEX_START', 'INDEX_END'] - ['STRING_START', 'STRING_END'] - ['REGEX_START', 'REGEX_END'] -] - -# The inverse mappings of `BALANCED_PAIRS` we're trying to fix up, so we can -# look things up from either end. -exports.INVERSES = INVERSES = {} - -# The tokens that signal the start/end of a balanced pair. -EXPRESSION_START = [] -EXPRESSION_END = [] - -for [left, rite] in BALANCED_PAIRS - EXPRESSION_START.push INVERSES[rite] = left - EXPRESSION_END .push INVERSES[left] = rite - -# Tokens that indicate the close of a clause of an expression. -EXPRESSION_CLOSE = ['CATCH', 'THEN', 'ELSE', 'FINALLY'].concat EXPRESSION_END - -# Tokens that, if followed by an `IMPLICIT_CALL`, indicate a function invocation. -IMPLICIT_FUNC = ['IDENTIFIER', 'PROPERTY', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'] - -# If preceded by an `IMPLICIT_FUNC`, indicates a function invocation. -IMPLICIT_CALL = [ -<<<<<<< HEAD - 'IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS' - 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'AWAIT' - 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++' -======= - 'IDENTIFIER', 'PROPERTY', 'NUMBER', 'INFINITY', 'NAN' - 'STRING', 'STRING_START', 'REGEX', 'REGEX_START', 'JS' - 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS' - 'UNDEFINED', 'NULL', 'BOOL' - 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW' - '@', '->', '=>', '[', '(', '{', '--', '++' ->>>>>>> 133fadd36ac36b3eaca44041502bcb88881b30aa -] - -IMPLICIT_UNSPACED_CALL = ['+', '-'] - -# Tokens that always mark the end of an implicit call for single-liners. -IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', - 'LOOP', 'TERMINATOR'] - -# Single-line flavors of block expressions that have unclosed endings. -# The grammar can't disambiguate them, so we insert the implicit indentation. -SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN'] -SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN'] - -# Tokens that end a line. -LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT'] - -# Tokens that close open calls when they follow a newline. -CALL_CLOSERS = ['.', '?.', '::', '?::'] From 70f3032600e3f65c3b32298e3aa1ba81094e0130 Mon Sep 17 00:00:00 2001 From: Gabe Date: Thu, 8 Sep 2016 23:04:46 -0700 Subject: [PATCH 12/35] Fixed browser testing issue --- extras/coffee-script.js | 10 +++--- test/async.coffee | 57 +++++++++++++++++++++++++++++- test/promise.js | 78 ----------------------------------------- 3 files changed, 61 insertions(+), 84 deletions(-) delete mode 100644 test/promise.js diff --git a/extras/coffee-script.js b/extras/coffee-script.js index 06671c21f7..7dd3c55e00 100644 --- a/extras/coffee-script.js +++ b/extras/coffee-script.js @@ -5,8 +5,8 @@ * Copyright 2011, Jeremy Ashkenas * Released under the MIT License */ -(function(root){var CoffeeScript=function(){function require(e){return require[e]}return require["./helpers"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},e.repeat=s=function(e,t){var n;for(n="";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,s;for(n=[],r=0,s=e.length;s>r;r++)t=e[r],"[object Array]"===Object.prototype.toString.call(t)?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i;for(n=0,i=this.length;i>n;n++)if(t=this[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,s,o;for(s=e.split("\n"),o=[],n=0,r=s.length;r>n;n++)t=s[n],i&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?o.push(t):(i=/^\s*$/.test(t))?o.push(t):o.push("# "+t);return o}(),n.join("\n")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?t.first_line+1+":"+(t.first_column+1)+"-"+(t.last_line+1+":"+(t.last_column+1)):"No location data"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\|\//:/\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(".")>=0?(i=e.split("."),i.pop(),"coffee"===i[i.length-1]&&i.length>1&&i.pop(),i.join(".")):e},e.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},e.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=""+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},o=function(){var e,t,n,i,r,o,a,c,l,h,u,p,d,f,m;return this.code&&this.location?(u=this.location,a=u.first_line,o=u.first_column,l=u.last_line,c=u.last_column,null==l&&(l=a),null==c&&(c=o),r=this.filename||"[stdin]",e=this.code.split("\n")[a],m=o,i=a===l?c+1:e.length,h=e.slice(0,m).replace(/[^\s]/g," ")+s("^",i-m),"undefined"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return""+e+""},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),h=t(h)),r+":"+(a+1)+":"+(o+1)+": error: "+this.message+"\n"+e+"\n"+h):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case" ":return"space";case"\n":return"newline";case"\r":return"carriage return";case" ":return"tab";default:return e}}}.call(this),t.exports}(),require["./rewriter"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,v,b,y,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,o,a,c,l;for(l=this.tokens,i=0;c=l[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);o=c[0],k.call(s,o)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],"TERMINATOR"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return")"===(n=e[0])||"CALL_END"===n||"OUTDENT"===e[0]&&")"===this.tag(t-1)},e=function(e,t){return this.tokens["OUTDENT"===e[0]?t-1:t][0]="CALL_END"},this.scanTokens(function(n,i){return"CALL_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return"]"===(t=e[0])||"INDEX_END"===t},e=function(e){return e[0]="INDEX_END"},this.scanTokens(function(n,i){return"INDEX_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,s,o;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,s=r.length;s>=0?s>i:i>s;n=s>=0?++i:--i){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&("string"==typeof r[n]&&(r[n]=[r[n]]),o=this.tag(t+n+e),0>k.call(r[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,"@",null,":")>-1||this.indexOfTag(e,null,":")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),":"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,o,a,c,l,h;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(s,c)||this.tokens[e].generated)&&(l=this.tag(e),0>k.call(u,l))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),o=this.tag(e),k.call(s,o)>=0&&n.length&&n.pop(),e-=1;return h=this.tag(e),k.call(t,h)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,h,p){var d,m,g,v,b,y,w,T,C,F,E,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U;if(U=i[0],E=(N=h>0?p[h-1]:[])[0],C=(p.length-1>h?p[h+1]:[])[0],j=function(){return e[e.length-1]},M=h,g=function(e){return h-M+e},v=function(){var e,t;return null!=(e=j())?null!=(t=e[2])?t.ours:void 0:void 0},b=function(){var e;return v()&&"("===(null!=(e=j())?e[0]:void 0)},w=function(){var e;return v()&&"{"===(null!=(e=j())?e[0]:void 0)},y=function(){var e;return v&&"CONTROL"===(null!=(e=j())?e[0]:void 0)},B=function(t){var n;return n=null!=t?t:h,e.push(["(",n,{ours:!0}]),p.splice(n,0,f("CALL_START","(")),null==t?h+=1:void 0},d=function(){return e.pop(),p.splice(h,0,f("CALL_END",")",["","end of input",i[2]])),h+=1},V=function(t,n){var r,s;return null==n&&(n=!0),r=null!=t?t:h,e.push(["{",r,{sameLine:!0,startsLine:n,ours:!0}]),s=new String("{"),s.generated=!0,p.splice(r,0,f("{",s,i)),null==t?h+=1:void 0},m=function(t){return t=null!=t?t:h,e.pop(),p.splice(t,0,f("}","}",i)),h+=1},b()&&("IF"===U||"TRY"===U||"FINALLY"===U||"CATCH"===U||"CLASS"===U||"SWITCH"===U))return e.push(["CONTROL",h,{ours:!0}]),g(1);if("INDENT"===U&&v()){if("=>"!==E&&"->"!==E&&"["!==E&&"("!==E&&","!==E&&"{"!==E&&"TRY"!==E&&"ELSE"!==E&&"="!==E)for(;b();)d();return y()&&e.pop(),e.push([U,h]),g(1)}if(k.call(s,U)>=0)return e.push([U,h]),g(1);if(k.call(r,U)>=0){for(;v();)b()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||"?"===U&&h>0&&!p[h-1].spaced)&&(k.call(o,C)>=0||k.call(l,C)>=0&&!(null!=(L=p[h+1])?L.spaced:void 0)&&!(null!=(x=p[h+1])?x.newLine:void 0)))return"?"===U&&(U=i[0]="FUNC_EXIST"),B(h+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(h+1,"INDENT")>-1&&this.looksObjectish(h+2)&&!this.findTagsBackwards(h,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return B(h+1),e.push(["INDENT",h+2]),g(3);if(":"===U){for(I=function(){var e;switch(!1){case e=this.tag(h-1),0>k.call(r,e):return t[1];case"@"!==this.tag(h-2):return h-2;default:return h-1}}.call(this);"HERECOMMENT"===this.tag(I-2);)I-=2;return this.insideForDeclaration="FOR"===C,P=0===I||(S=this.tag(I-1),k.call(u,S)>=0)||p[I-1].newLine,j()&&(D=j(),$=D[0],O=D[1],("{"===$||"INDENT"===$&&"{"===this.tag(O-1))&&(P||","===this.tag(I-1)||"{"===this.tag(I-1)))?g(1):(V(I,!!P),g(2))}if(w()&&k.call(u,U)>=0&&(j()[2].sameLine=!1),T="OUTDENT"===E||N.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;v();)if(R=j(),$=R[0],O=R[1],A=R[2],_=A.sameLine,P=A.startsLine,b()&&","!==E)d();else if(w()&&!this.insideForDeclaration&&_&&"TERMINATOR"!==U&&":"!==E)m();else{if(!w()||"TERMINATOR"!==U||","===E||P&&this.looksObjectish(h+1))break;if("HERECOMMENT"===C)return g(1);m()}if(!(","!==U||this.looksObjectish(h+1)||!w()||this.insideForDeclaration||"TERMINATOR"===C&&this.looksObjectish(h+2)))for(F="OUTDENT"===C?1:0;w();)m(h+F);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,s,o,a,c;return e[2]?1:e.generated||e.explicit?("{"===e[0]&&(s=null!=(a=n[t+1])?a[2]:void 0)?(r=s.first_line,i=s.first_column):(o=null!=(c=n[t-1])?c[2]:void 0)?(r=o.last_line,i=o.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,s,o;return o=r=s=null,t=function(e,t){var r,s,a,c;return";"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(s=this.tag(t+1),k.call(i,s)>=0))&&!("ELSE"===e[0]&&"THEN"!==o)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==o&&"=>"!==o)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,a,c){var l,h,u,p,f,m;if(m=n[0],"TERMINATOR"===m){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(u=this.tag(a+1),k.call(i,u)>=0)return c.splice(a,1),0}if("CATCH"===m)for(l=h=1;2>=h;l=++h)if("OUTDENT"===(p=this.tag(a+l))||"TERMINATOR"===p||"FINALLY"===p)return c.splice.apply(c,[a+l,0].concat(w.call(this.indentation()))),2+l;return k.call(d,m)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==m||"IF"!==this.tag(a+1))?(o=m,f=this.indentation(c[a]),r=f[0],s=f[1],"THEN"===o&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),"THEN"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],"TERMINATOR"===i||"INDENT"===i&&0>k.call(d,n)},e=function(e){return"INDENT"!==e[0]||e.generated&&!e.fromThen?n[0]="POST_"+n[0]:void 0},this.scanTokens(function(i,r){return"IF"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=["INDENT",2],n=["OUTDENT",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]],e.INVERSES=h={},s=[],r=[],m=0,v=t.length;v>m;m++)b=t[m],g=b[0],y=b[1],s.push(h[y]=g),r.push(h[g]=y);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],o=["IDENTIFIER","NUMBER","STRING","STRING_START","JS","REGEX","REGEX_START","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","BOOL","NULL","UNDEFINED","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],l=["+","-"],a=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],d=["ELSE","->","=>","TRY","FINALLY","THEN"],p=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],u=["TERMINATOR","INDENT","OUTDENT"],n=[".","?.","::","?::"]}.call(this),t.exports}(),require["./lexer"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,v,b,y,k,w,T,C,F,E,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,lt,ht,ut=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};ot=require("./rewriter"),P=ot.Rewriter,w=ot.INVERSES,at=require("./helpers"),nt=at.count,lt=at.starts,tt=at.compact,ct=at.repeat,it=at.invertLiterate,st=at.locationDataToString,ht=at.throwSyntaxError,e.Lexer=S=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.seenFor=!1,this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new P).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(z,""),et.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=it(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,l,h,u,p,d,f,m,g,b,y;return(h=v.exec(this.chunk))?(l=h[0],r=h[1],t=h[2],c=r.length,u=void 0,"own"===r&&"FOR"===this.tag()?(this.token("OWN",r),r.length):"from"===r&&"YIELD"===this.tag()?(this.token("FROM",r),r.length):(d=this.tokens,p=d[d.length-1],i=t||null!=p&&("."===(f=p[0])||"?."===f||"::"===f||"?::"===f||!p.spaced&&"@"===p[0]),b="IDENTIFIER",!i&&(ut.call(F,r)>=0||ut.call(a,r)>=0)&&(b=r.toUpperCase(),"WHEN"===b&&(m=this.tag(),ut.call(N,m)>=0)?b="LEADING_WHEN":"FOR"===b?this.seenFor=!0:"UNLESS"===b?b="IF":ut.call(J,b)>=0?b="UNARY":ut.call(B,b)>=0&&("INSTANCEOF"!==b&&this.seenFor?(b="FOR"+b,this.seenFor=!1):(b="RELATION","!"===this.value()&&(u=this.tokens.pop(),r="!"+r)))),ut.call(C,r)>=0&&(i?(b="IDENTIFIER",r=new String(r),r.reserved=!0):ut.call(V,r)>=0&&this.error("reserved word '"+r+"'",{length:r.length})),i||(ut.call(s,r)>=0&&(e=r,r=o[r]),b=function(){switch(r){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return b}}()),y=this.token(b,r,0,c),e&&(y.origin=[b,e,y[2]]),y.variable=!i,u&&(g=[u[2].first_line,u[2].first_column],y[2].first_line=g[0],y[2].first_column=g[1]),t&&(n=l.lastIndexOf(":"),this.token(":",":",n,t.length)),l.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r;return(n=I.exec(this.chunk))?(i=n[0],t=i.length,/^0[BOX]/.test(i)?this.error("radix prefix in '"+i+"' must be lowercase",{offset:1}):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation in '"+i+"' must be indicated with a lowercase 'e'",{offset:i.indexOf("E")}):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'",{length:t}):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'",{length:t}),(r=/^0o([0-7]+)/.exec(i))&&(i="0x"+parseInt(r[1],8).toString(16)),(e=/^0b([01]+)/.exec(i))&&(i="0x"+parseInt(e[1],2).toString(16)),this.token("NUMBER",i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,s,o,a,c,l,h,u,m,g,v,b;if(h=(Y.exec(this.chunk)||[])[0],!h)return 0;if(g=function(){switch(h){case"'":return W;case'"':return q;case"'''":return f;case'"""':return p}}(),s=3===h.length,u=this.matchWithInterpolations(g,h),b=u.tokens,r=u.index,e=b.length-1,n=h.charAt(0),s){for(a=null,i=function(){var e,t,n;for(n=[],o=e=0,t=b.length;t>e;o=++e)v=b[o],"NEOSTRING"===v[0]&&n.push(v[1]);return n}().join("#{}");l=d.exec(i);)t=l[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp("^"+a,"gm")),this.mergeInterpolationTokens(b,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),0===i&&(n=n.replace(E,"")),i===e&&(n=n.replace(K,"")),c&&(n=n.replace(c,"")),n}}(this))}else this.mergeInterpolationTokens(b,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(G,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?"":" "})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=u.exec(e))&&this.error("block comments cannot contain "+n[0],{offset:n.index,length:n[0].length}),t.indexOf("\n")>=0&&(t=t.replace(RegExp("\\n"+ct(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,s,o,a,c,l,h,u,p,d;switch(!1){case!(o=M.exec(this.chunk)):this.error("regular expressions cannot begin with "+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(m,"///")):d=o.tokens,s=o.index;break;case!(o=$.exec(this.chunk)):if(p=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=p.length,l=this.tokens,c=l[l.length-1],c)if(c.spaced&&(h=c[0],ut.call(i,h)>=0)){if(!t||O.test(p))return 0}else if(u=c[0],ut.call(A,u)>=0)return 0;t||this.error("missing / (unclosed regex)");break;default:return 0}switch(r=j.exec(this.chunk.slice(s))[0],n=s+r.length,a=this.makeToken("REGEX",null,0,n),!1){case!!Z.test(r):this.error("invalid regular expression flags "+r,{offset:s,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token("REGEX",""+this.makeDelimitedLiteral(e,{delimiter:"/"})+r,0,n,a);break;default:this.token("REGEX_START","(",0,0,a),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(d,{delimiter:'"',"double":!0},this.formatHeregex),r&&(this.token(",",",",s,0),this.token("STRING",'"'+r+'"',s,r.length)),this.token(")",")",n,0),this.token("REGEX_END",")",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=R.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf("\n"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token("INDENT",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,s,o;for(i=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(r=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ut.call(b,o)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);";"===this.value();)this.tokens.pop();return"TERMINATOR"===this.tag()||t||this.token("TERMINATOR","\n",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=et.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;";"===this.value();)this.tokens.pop();return"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return"\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,a,c,u,p,d;if((e=_.exec(this.chunk))?(d=e[0],r.test(d)&&this.tagParameters()):d=this.chunk.charAt(0),u=d,n=this.tokens,t=n[n.length-1],"="===d&&t&&(!t[1].reserved&&(s=t[1],ut.call(C,s)>=0)&&(t.origin&&(t=t.origin),this.error("reserved word '"+t[1]+"' can't be assigned",t[2])),"||"===(o=t[1])||"&&"===o))return t[0]="COMPOUND_ASSIGN",t[1]+="=",d.length;if(";"===d)this.seenFor=!1,u="TERMINATOR";else if(ut.call(D,d)>=0)u="MATH";else if(ut.call(l,d)>=0)u="COMPARE";else if(ut.call(h,d)>=0)u="COMPOUND_ASSIGN";else if(ut.call(J,d)>=0)u="UNARY";else if(ut.call(Q,d)>=0)u="UNARY_MATH";else if(ut.call(U,d)>=0)u="SHIFT";else if(ut.call(x,d)>=0||"?"===d&&(null!=t?t.spaced:void 0))u="LOGIC";else if(t&&!t.spaced)if("("===d&&(a=t[0],ut.call(i,a)>=0))"?"===t[0]&&(t[0]="FUNC_EXIST"),u="CALL_START";else if("["===d&&(c=t[0],ut.call(y,c)>=0))switch(u="INDEX_START",t[0]){case"?":t[0]="INDEX_SOAK"}switch(p=this.makeToken(u,d),d){case"(":case"{":case"[":this.ends.push({tag:w[d],origin:p});break;case")":case"}":case"]":this.pair(d)}return this.tokens.push(p),d.length},e.prototype.tagParameters=function(){var e,t,n,i;if(")"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]="PARAM_END";n=i[--e];)switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return"("===n[0]?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,s,o,a,c,l,h,u,p,d,f,m,g,v;if(v=[],h=n.length,this.chunk.slice(0,h)!==n)return null;for(m=this.chunk.slice(h);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:"/"===n.charAt(0),offsetInChunk:h}),v.push(this.makeToken("NEOSTRING",g,h)),m=m.slice(g.length),h+=g.length,"#{"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(h+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),l=d.tokens,o=d.index,o+=1,u=l[0],i=l[l.length-1],u[0]=u[1]="(",i[0]=i[1]=")",i.origin=["","end of interpolation",i[2]],"TERMINATOR"===(null!=(f=l[1])?f[0]:void 0)&&l.splice(1,1),v.push(["TOKENS",l]),m=m.slice(o),h+=o}return m.slice(0,n.length)!==n&&this.error("missing "+n,{length:n.length}),s=v[0],a=v[v.length-1],s[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:v,index:h+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,s,o,a,c,l,h,u,p,d,f,m,g,v,b;for(e.length>1&&(u=this.token("STRING_START","(",0,0)),s=this.tokens.length,o=a=0,l=e.length;l>a;o=++a){switch(g=e[o],m=g[0],b=g[1],m){case"TOKENS":if(2===b.length)continue;h=b[0],v=b;break;case"NEOSTRING":if(i=n(g[1],o),0===i.length){if(0!==o)continue;r=this.tokens.length}2===o&&null!=r&&this.tokens.splice(r,2),g[0]="STRING",g[1]=this.makeDelimitedLiteral(i,t),h=g,v=[g]}this.tokens.length>s&&(p=this.token("+","+"),p[2]={first_line:h[2].first_line,first_column:h[2].first_column,last_line:h[2].first_line,last_column:h[2].first_column}),(d=this.tokens).push.apply(d,v)}return u?(c=e[e.length-1],u.origin=["STRING",null,{first_line:u[2].first_line,first_column:u[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token("STRING_END",")"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,s;return i=this.ends,n=i[i.length-1],e!==(s=null!=n?n.tag:void 0)?("OUTDENT"!==s&&this.error("unmatched "+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=nt(s,"\n"),t=this.chunkColumn,i>0?(r=s.split("\n"),n=r[r.length-1],t=n.length):t+=s.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,s,o,a,c;return null==n&&(n=0),null==i&&(i=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],r=Math.max(0,i-1),a=this.getLineAndColumnFromChunk(n+r),s.last_line=a[0],s.last_column=a[1],c=[e,t,s]},e.prototype.token=function(e,t,n,i,r){var s;return s=this.makeToken(e,t,n,i),r&&(s.origin=r),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return L.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"YIELD"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.formatString=function(e){return e.replace(X,"$1")},e.prototype.formatHeregex=function(e){return e.replace(g,"$1$2")},e.prototype.validateEscapes=function(e,t){var n,i,r,s,o,a,c,l;return null==t&&(t={}),s=k.exec(e),!s||(s[0],n=s[1],a=s[2],i=s[3],l=s[4],t.isRegex&&a&&"0"!==a.charAt(0))?void 0:(o=a?"octal escape sequences are not allowed":"invalid escape sequence",r="\\"+(a||i||l),this.error(o+" "+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+s.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),""===e&&"/"===t.delimiter&&(e="(?:)"),n=RegExp("(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?("+t.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),e=e.replace(n,function(e,n,i,r,s,o,a,c,l){switch(!1){case!n:return t.double?n+n:n;case!i:return"\\x00";case!r:return"\\"+r;case!s:return"\\n";case!o:return"\\r";case!a:return"\\u2028";case!c:return"\\u2029";case!l:return t.double?"\\"+l:l}}),""+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,s,o,a;return null==t&&(t={}),r="first_line"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),i=o[0],n=o[1],o,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),ht(e,r)},e}(),F=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","if","else","switch","for","while","do","try","catch","finally","class","extends","super"],a=["undefined","then","unless","until","loop","of","by","when"],o={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s=function(){var e;e=[];for(rt in o)e.push(rt);return e}(),a=a.concat(s),V=["case","default","function","var","void","with","const","let","enum","export","import","native","implements","interface","package","private","protected","public","static"],H=["arguments","eval","yield*"],C=F.concat(V).concat(H),e.RESERVED=V.concat(F).concat(a).concat(H),e.STRICT_PROSCRIBED=H,t=65279,v=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,_=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,et=/^[^\n\S]+/,c=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,r=/^[-=]>/,R=/^(?:\n[^\n\S]*)+/,T=/^`[^\\`]*(?:\\.[^\\`]*)*`/,Y=/^(?:'''|"""|'|")/,W=/^(?:[^\\']|\\[\s\S])*/,q=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/,f=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/,X=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g,G=/\s*\n\s*/g,d=/\n+([^\n\S]*)(?=\S)/g,$=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,j=/^\w*/,Z=/^(?!.*(.).*\1)[imgy]*$/,m=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/,g=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g,M=/^(\/|\/{3}\s*)(\*)/,O=/^\/=?\s/,u=/\*\//,L=/^\s*(?:,|\??\.(?![.\d])|::)/,k=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/,E=/^[^\n\S]*\n/,K=/\n[^\n\S]*$/,z=/\s+$/,h=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],J=["NEW","TYPEOF","DELETE","DO"],Q=["!","~"],x=["&&","||","&","|","^"],U=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],D=["*","/","%","//","%%"],B=["IN","OF","INSTANCEOF"],n=["TRUE","FALSE"],i=["IDENTIFIER",")","]","?","@","THIS","SUPER"],y=i.concat(["NUMBER","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::"]),A=y.concat(["++","--"]),N=["INDENT","OUTDENT","TERMINATOR"],b=[")","}","]"]}.call(this),t.exports}(),require["./parser"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,20],i=[1,75],r=[1,71],s=[1,76],o=[1,77],a=[1,73],c=[1,74],l=[1,50],h=[1,52],u=[1,53],p=[1,54],d=[1,55],f=[1,45],m=[1,46],g=[1,27],v=[1,60],b=[1,61],y=[1,70],k=[1,43],w=[1,26],T=[1,58],C=[1,59],F=[1,57],E=[1,38],N=[1,44],L=[1,56],x=[1,65],S=[1,66],D=[1,67],R=[1,68],A=[1,42],I=[1,64],_=[1,29],O=[1,30],$=[1,31],j=[1,32],M=[1,33],B=[1,34],V=[1,35],P=[1,78],U=[1,6,26,34,109],G=[1,88],H=[1,81],q=[1,80],X=[1,79],W=[1,82],Y=[1,83],K=[1,84],z=[1,85],J=[1,86],Q=[1,87],Z=[1,91],et=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],tt=[1,97],nt=[1,98],it=[1,99],rt=[1,100],st=[1,102],ot=[1,103],at=[1,96],ct=[2,115],lt=[1,6,25,26,34,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],ht=[2,82],ut=[1,108],pt=[2,61],dt=[1,112],ft=[1,117],mt=[1,118],gt=[1,120],vt=[1,6,25,26,34,46,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],bt=[2,79],yt=[1,6,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],kt=[1,155],wt=[1,157],Tt=[1,152],Ct=[1,6,25,26,34,46,56,61,64,73,74,75,76,78,80,81,85,87,91,92,93,98,100,109,111,112,113,117,118,133,136,137,140,141,142,143,144,145,146,147,148,149],Ft=[2,98],Et=[1,6,25,26,34,49,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],Nt=[1,6,25,26,34,46,49,56,61,64,73,74,75,76,78,80,81,85,87,91,92,93,98,100,109,111,112,113,117,118,124,125,133,136,137,140,141,142,143,144,145,146,147,148,149],Lt=[1,207],xt=[1,206],St=[1,6,25,26,34,38,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],Dt=[2,59],Rt=[1,217],At=[6,25,26,56,61],It=[6,25,26,46,56,61,64],_t=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,143,145,146,147,148],Ot=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133],$t=[73,74,75,76,78,81,91,92],jt=[1,236],Mt=[2,136],Bt=[1,6,25,26,34,46,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,124,125,133,136,137,142,143,144,145,146,147,148],Vt=[1,245],Pt=[6,25,26,61,93,98],Ut=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,118,133],Gt=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,112,118,133],Ht=[124,125],qt=[61,124,125],Xt=[1,256],Wt=[6,25,26,61,85],Yt=[6,25,26,49,61,85],Kt=[6,25,26,46,49,61,85],zt=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,145,146,147,148],Jt=[11,28,30,32,33,36,37,40,41,42,43,44,52,53,54,58,59,80,83,86,90,95,96,97,103,107,108,111,113,115,117,126,132,134,135,136,137,138,140,141],Qt=[2,125],Zt=[6,25,26],en=[2,60],tn=[1,270],nn=[1,271],rn=[1,6,25,26,34,56,61,64,80,85,93,98,100,105,106,109,111,112,113,117,118,128,130,133,136,137,142,143,144,145,146,147,148],sn=[26,128,130],on=[1,6,26,34,56,61,64,80,85,93,98,100,109,112,118,133],an=[2,74],cn=[1,293],ln=[1,294],hn=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,128,133,136,137,142,143,144,145,146,147,148],un=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,113,117,118,133],pn=[1,305],dn=[1,306],fn=[6,25,26,61],mn=[1,6,25,26,34,56,61,64,80,85,93,98,100,105,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],gn=[25,61],vn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,String:31,STRING:32,STRING_START:33,STRING_END:34,Regex:35,REGEX:36,REGEX_START:37,REGEX_END:38,Literal:39,JS:40,DEBUGGER:41,UNDEFINED:42,NULL:43,BOOL:44,Assignable:45,"=":46,AssignObj:47,ObjAssignable:48,":":49,SimpleObjAssignable:50,ThisProperty:51,RETURN:52,HERECOMMENT:53,PARAM_START:54,ParamList:55,PARAM_END:56,FuncGlyph:57,"->":58,"=>":59,OptComma:60,",":61,Param:62,ParamVar:63,"...":64,Array:65,Object:66,Splat:67,SimpleAssignable:68,Accessor:69,Parenthetical:70,Range:71,This:72,".":73,"?.":74,"::":75,"?::":76,Index:77,INDEX_START:78,IndexValue:79,INDEX_END:80,INDEX_SOAK:81,Slice:82,"{":83,AssignList:84,"}":85,CLASS:86,EXTENDS:87,OptFuncExist:88,Arguments:89,SUPER:90,FUNC_EXIST:91,CALL_START:92,CALL_END:93,ArgList:94,THIS:95,"@":96,"[":97,"]":98,RangeDots:99,"..":100,Arg:101,SimpleArgs:102,TRY:103,Catch:104,FINALLY:105,CATCH:106,THROW:107,"(":108,")":109,WhileSource:110,WHILE:111,WHEN:112,UNTIL:113,Loop:114,LOOP:115,ForBody:116,FOR:117,BY:118,ForStart:119,ForSource:120,ForVariables:121,OWN:122,ForValue:123,FORIN:124,FOROF:125,SWITCH:126,Whens:127,ELSE:128,When:129,LEADING_WHEN:130,IfBlock:131,IF:132,POST_IF:133,UNARY:134,UNARY_MATH:135,"-":136,"+":137,YIELD:138,FROM:139,"--":140,"++":141,"?":142,MATH:143,"**":144,SHIFT:145,COMPARE:146,LOGIC:147,RELATION:148,COMPOUND_ASSIGN:149,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",32:"STRING",33:"STRING_START",34:"STRING_END",36:"REGEX",37:"REGEX_START",38:"REGEX_END",40:"JS",41:"DEBUGGER",42:"UNDEFINED",43:"NULL",44:"BOOL",46:"=",49:":",52:"RETURN",53:"HERECOMMENT",54:"PARAM_START",56:"PARAM_END",58:"->",59:"=>",61:",",64:"...",73:".",74:"?.",75:"::",76:"?::",78:"INDEX_START",80:"INDEX_END",81:"INDEX_SOAK",83:"{",85:"}",86:"CLASS",87:"EXTENDS",90:"SUPER",91:"FUNC_EXIST",92:"CALL_START",93:"CALL_END",95:"THIS",96:"@",97:"[",98:"]",100:"..",103:"TRY",105:"FINALLY",106:"CATCH",107:"THROW",108:"(",109:")",111:"WHILE",112:"WHEN",113:"UNTIL",115:"LOOP",117:"FOR",118:"BY",122:"OWN",124:"FORIN",125:"FOROF",126:"SWITCH",128:"ELSE",130:"LEADING_WHEN",132:"IF",133:"POST_IF",134:"UNARY",135:"UNARY_MATH",136:"-",137:"+",138:"YIELD",139:"FROM",140:"--",141:"++",142:"?",143:"MATH",144:"**",145:"SHIFT",146:"COMPARE",147:"LOGIC",148:"RELATION",149:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,3],[47,5],[47,1],[50,1],[50,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[57,1],[57,1],[60,0],[60,1],[55,0],[55,1],[55,3],[55,4],[55,6],[62,1],[62,2],[62,3],[62,1],[63,1],[63,1],[63,1],[63,1],[67,2],[68,1],[68,2],[68,2],[68,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[69,2],[69,2],[69,2],[69,2],[69,1],[69,1],[77,3],[77,2],[79,1],[79,1],[66,4],[84,0],[84,1],[84,3],[84,4],[84,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[88,0],[88,1],[89,2],[89,4],[72,1],[72,1],[51,2],[65,2],[65,4],[99,1],[99,1],[71,5],[82,3],[82,2],[82,2],[82,1],[94,1],[94,3],[94,4],[94,4],[94,6],[101,1],[101,1],[101,1],[102,1],[102,3],[18,2],[18,3],[18,4],[18,5],[104,3],[104,3],[104,2],[23,2],[70,3],[70,5],[110,2],[110,4],[110,2],[110,4],[19,2],[19,2],[19,2],[19,1],[114,2],[114,2],[20,2],[20,2],[20,2],[116,2],[116,4],[116,2],[119,2],[119,3],[123,1],[123,1],[123,1],[123,1],[121,1],[121,3],[120,2],[120,2],[120,4],[120,4],[120,4],[120,6],[120,6],[21,5],[21,7],[21,4],[21,6],[127,1],[127,2],[129,3],[129,4],[131,3],[131,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(e,t,n,i,r,s,o){var a=s.length-1; -switch(r){case 1:return this.$=i.addLocationDataFn(o[a],o[a])(new i.Block);case 2:return this.$=s[a];case 3:this.$=i.addLocationDataFn(o[a],o[a])(i.Block.wrap([s[a]]));break;case 4:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].push(s[a]));break;case 5:this.$=s[a-1];break;case 6:case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 27:case 32:case 34:case 47:case 48:case 49:case 50:case 51:case 59:case 60:case 70:case 71:case 72:case 73:case 78:case 79:case 82:case 86:case 92:case 136:case 137:case 139:case 169:case 170:case 186:case 192:this.$=s[a];break;case 10:case 25:case 26:case 28:case 30:case 33:case 35:this.$=i.addLocationDataFn(o[a],o[a])(new i.Literal(s[a]));break;case 23:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Block);break;case 24:case 31:case 93:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-1]);break;case 29:case 149:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Parens(s[a-1]));break;case 36:this.$=i.addLocationDataFn(o[a],o[a])(new i.Undefined);break;case 37:this.$=i.addLocationDataFn(o[a],o[a])(new i.Null);break;case 38:this.$=i.addLocationDataFn(o[a],o[a])(new i.Bool(s[a]));break;case 39:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a]));break;case 40:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a]));break;case 41:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1]));break;case 42:case 75:case 80:case 81:case 83:case 84:case 85:case 171:case 172:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(s[a]));break;case 43:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],"object",{operatorToken:i.addLocationDataFn(o[a-1])(new i.Literal(s[a-1]))}));break;case 44:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],"object",{operatorToken:i.addLocationDataFn(o[a-3])(new i.Literal(s[a-3]))}));break;case 45:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],null,{operatorToken:i.addLocationDataFn(o[a-1])(new i.Literal(s[a-1]))}));break;case 46:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],null,{operatorToken:i.addLocationDataFn(o[a-3])(new i.Literal(s[a-3]))}));break;case 52:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Return(s[a]));break;case 53:this.$=i.addLocationDataFn(o[a],o[a])(new i.Return);break;case 54:this.$=i.addLocationDataFn(o[a],o[a])(new i.Comment(s[a]));break;case 55:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Code(s[a-3],s[a],s[a-1]));break;case 56:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Code([],s[a],s[a-1]));break;case 57:this.$=i.addLocationDataFn(o[a],o[a])("func");break;case 58:this.$=i.addLocationDataFn(o[a],o[a])("boundfunc");break;case 61:case 98:this.$=i.addLocationDataFn(o[a],o[a])([]);break;case 62:case 99:case 131:case 173:this.$=i.addLocationDataFn(o[a],o[a])([s[a]]);break;case 63:case 100:case 132:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].concat(s[a]));break;case 64:case 101:case 133:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-3].concat(s[a]));break;case 65:case 102:case 135:this.$=i.addLocationDataFn(o[a-5],o[a])(s[a-5].concat(s[a-2]));break;case 66:this.$=i.addLocationDataFn(o[a],o[a])(new i.Param(s[a]));break;case 67:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Param(s[a-1],null,!0));break;case 68:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Param(s[a-2],s[a]));break;case 69:case 138:this.$=i.addLocationDataFn(o[a],o[a])(new i.Expansion);break;case 74:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Splat(s[a-1]));break;case 76:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].add(s[a]));break;case 77:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(s[a-1],[].concat(s[a])));break;case 87:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a]));break;case 88:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a],"soak"));break;case 89:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"))),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 90:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"),"soak")),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 91:this.$=i.addLocationDataFn(o[a],o[a])(new i.Access(new i.Literal("prototype")));break;case 94:this.$=i.addLocationDataFn(o[a-1],o[a])(i.extend(s[a],{soak:!0}));break;case 95:this.$=i.addLocationDataFn(o[a],o[a])(new i.Index(s[a]));break;case 96:this.$=i.addLocationDataFn(o[a],o[a])(new i.Slice(s[a]));break;case 97:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Obj(s[a-2],s[a-3].generated));break;case 103:this.$=i.addLocationDataFn(o[a],o[a])(new i.Class);break;case 104:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(null,null,s[a]));break;case 105:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(null,s[a]));break;case 106:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(null,s[a-1],s[a]));break;case 107:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(s[a]));break;case 108:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(s[a-1],null,s[a]));break;case 109:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(s[a-2],s[a]));break;case 110:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Class(s[a-3],s[a-1],s[a]));break;case 111:case 112:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Call(s[a-2],s[a],s[a-1]));break;case 113:this.$=i.addLocationDataFn(o[a],o[a])(new i.Call("super",[new i.Splat(new i.Literal("arguments"))]));break;case 114:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Call("super",s[a]));break;case 115:this.$=i.addLocationDataFn(o[a],o[a])(!1);break;case 116:this.$=i.addLocationDataFn(o[a],o[a])(!0);break;case 117:this.$=i.addLocationDataFn(o[a-1],o[a])([]);break;case 118:case 134:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-2]);break;case 119:case 120:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(new i.Literal("this")));break;case 121:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(i.addLocationDataFn(o[a-1])(new i.Literal("this")),[i.addLocationDataFn(o[a])(new i.Access(s[a]))],"this"));break;case 122:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Arr([]));break;case 123:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Arr(s[a-2]));break;case 124:this.$=i.addLocationDataFn(o[a],o[a])("inclusive");break;case 125:this.$=i.addLocationDataFn(o[a],o[a])("exclusive");break;case 126:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Range(s[a-3],s[a-1],s[a-2]));break;case 127:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Range(s[a-2],s[a],s[a-1]));break;case 128:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(s[a-1],null,s[a]));break;case 129:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(null,s[a],s[a-1]));break;case 130:this.$=i.addLocationDataFn(o[a],o[a])(new i.Range(null,null,s[a]));break;case 140:this.$=i.addLocationDataFn(o[a-2],o[a])([].concat(s[a-2],s[a]));break;case 141:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Try(s[a]));break;case 142:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Try(s[a-1],s[a][0],s[a][1]));break;case 143:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Try(s[a-2],null,null,s[a]));break;case 144:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Try(s[a-3],s[a-2][0],s[a-2][1],s[a]));break;case 145:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-1],s[a]]);break;case 146:this.$=i.addLocationDataFn(o[a-2],o[a])([i.addLocationDataFn(o[a-1])(new i.Value(s[a-1])),s[a]]);break;case 147:this.$=i.addLocationDataFn(o[a-1],o[a])([null,s[a]]);break;case 148:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Throw(s[a]));break;case 150:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Parens(s[a-2]));break;case 151:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a]));break;case 152:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{guard:s[a]}));break;case 153:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a],{invert:!0}));break;case 154:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{invert:!0,guard:s[a]}));break;case 155:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].addBody(s[a]));break;case 156:case 157:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a].addBody(i.addLocationDataFn(o[a-1])(i.Block.wrap([s[a-1]]))));break;case 158:this.$=i.addLocationDataFn(o[a],o[a])(s[a]);break;case 159:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(s[a]));break;case 160:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(i.addLocationDataFn(o[a])(i.Block.wrap([s[a]]))));break;case 161:case 162:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a-1],s[a]));break;case 163:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a],s[a-1]));break;case 164:this.$=i.addLocationDataFn(o[a-1],o[a])({source:i.addLocationDataFn(o[a])(new i.Value(s[a]))});break;case 165:this.$=i.addLocationDataFn(o[a-3],o[a])({source:i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),step:s[a]});break;case 166:this.$=i.addLocationDataFn(o[a-1],o[a])(function(){return s[a].own=s[a-1].own,s[a].name=s[a-1][0],s[a].index=s[a-1][1],s[a]}());break;case 167:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a]);break;case 168:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return s[a].own=!0,s[a]}());break;case 174:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-2],s[a]]);break;case 175:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a]});break;case 176:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a],object:!0});break;case 177:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a]});break;case 178:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a],object:!0});break;case 179:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],step:s[a]});break;case 180:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],guard:s[a-2],step:s[a]});break;case 181:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],step:s[a-2],guard:s[a]});break;case 182:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Switch(s[a-3],s[a-1]));break;case 183:this.$=i.addLocationDataFn(o[a-6],o[a])(new i.Switch(s[a-5],s[a-3],s[a-1]));break;case 184:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Switch(null,s[a-1]));break;case 185:this.$=i.addLocationDataFn(o[a-5],o[a])(new i.Switch(null,s[a-3],s[a-1]));break;case 187:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].concat(s[a]));break;case 188:this.$=i.addLocationDataFn(o[a-2],o[a])([[s[a-1],s[a]]]);break;case 189:this.$=i.addLocationDataFn(o[a-3],o[a])([[s[a-2],s[a-1]]]);break;case 190:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}));break;case 191:this.$=i.addLocationDataFn(o[a-4],o[a])(s[a-4].addElse(i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}))));break;case 193:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].addElse(s[a]));break;case 194:case 195:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a],i.addLocationDataFn(o[a-2])(i.Block.wrap([s[a-2]])),{type:s[a-1],statement:!0}));break;case 196:case 197:case 200:case 201:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(s[a-1],s[a]));break;case 198:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("-",s[a]));break;case 199:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("+",s[a]));break;case 202:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-2].concat(s[a-1]),s[a]));break;case 203:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a]));break;case 204:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a]));break;case 205:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a-1],null,!0));break;case 206:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a-1],null,!0));break;case 207:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Existence(s[a-1]));break;case 208:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("+",s[a-2],s[a]));break;case 209:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("-",s[a-2],s[a]));break;case 210:case 211:case 212:case 213:case 214:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-1],s[a-2],s[a]));break;case 215:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return"!"===s[a-1].charAt(0)?new i.Op(s[a-1].slice(1),s[a-2],s[a]).invert():new i.Op(s[a-1],s[a-2],s[a])}());break;case 216:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a],s[a-1]));break;case 217:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1],s[a-3]));break;case 218:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a],s[a-2]));break;case 219:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Extends(s[a-2],s[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{1:[3]},{1:[2,2],6:P},t(U,[2,3]),t(U,[2,6],{119:69,110:89,116:90,111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(U,[2,7],{119:69,110:92,116:93,111:x,113:S,117:R,133:Z}),t(et,[2,11],{88:94,69:95,77:101,73:tt,74:nt,75:it,76:rt,78:st,81:ot,91:at,92:ct}),t(et,[2,12],{77:101,88:104,69:105,73:tt,74:nt,75:it,76:rt,78:st,81:ot,91:at,92:ct}),t(et,[2,13]),t(et,[2,14]),t(et,[2,15]),t(et,[2,16]),t(et,[2,17]),t(et,[2,18]),t(et,[2,19]),t(et,[2,20]),t(et,[2,21]),t(et,[2,22]),t(et,[2,8]),t(et,[2,9]),t(et,[2,10]),t(lt,ht,{46:[1,106]}),t(lt,[2,83]),t(lt,[2,84]),t(lt,[2,85]),t(lt,[2,86]),t([1,6,25,26,34,38,56,61,64,73,74,75,76,78,80,81,85,91,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],[2,113],{89:107,92:ut}),t([6,25,56,61],pt,{55:109,62:110,63:111,27:113,51:114,65:115,66:116,28:i,64:dt,83:y,96:ft,97:mt}),{24:119,25:gt},{7:121,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:123,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:124,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:125,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:127,8:126,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,139:[1,128],140:B,141:V},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:132,51:63,65:47,66:48,68:129,70:23,71:24,72:25,83:y,90:w,95:T,96:C,97:F,108:L},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:132,51:63,65:47,66:48,68:133,70:23,71:24,72:25,83:y,90:w,95:T,96:C,97:F,108:L},t(vt,bt,{87:[1,137],140:[1,134],141:[1,135],149:[1,136]}),t(et,[2,192],{128:[1,138]}),{24:139,25:gt},{24:140,25:gt},t(et,[2,158]),{24:141,25:gt},{7:142,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(yt,[2,103],{39:22,70:23,71:24,72:25,65:47,66:48,29:49,35:51,27:62,51:63,31:72,12:130,13:131,45:132,24:144,68:146,25:gt,28:i,30:r,32:s,33:o,36:a,37:c,40:l,41:h,42:u,43:p,44:d,83:y,87:[1,145],90:w,95:T,96:C,97:F,108:L}),{7:147,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,142,143,144,145,146,147,148],[2,53],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,70:23,71:24,72:25,57:28,68:36,131:37,110:39,114:40,116:41,65:47,66:48,29:49,35:51,27:62,51:63,119:69,31:72,8:122,7:148,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:l,41:h,42:u,43:p,44:d,52:f,53:m,54:g,58:v,59:b,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,115:D,126:A,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V}),t(et,[2,54]),t(vt,[2,80]),t(vt,[2,81]),t(lt,[2,32]),t(lt,[2,33]),t(lt,[2,34]),t(lt,[2,35]),t(lt,[2,36]),t(lt,[2,37]),t(lt,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:151,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,64:wt,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:y,86:k,90:w,94:153,95:T,96:C,97:F,98:Tt,101:154,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(lt,[2,119]),t(lt,[2,120],{27:158,28:i}),{25:[2,57]},{25:[2,58]},t(Ct,[2,75]),t(Ct,[2,78]),{7:159,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:160,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:161,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:163,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:gt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{27:168,28:i,51:169,65:170,66:171,71:164,83:y,96:ft,97:F,121:165,122:[1,166],123:167},{120:172,124:[1,173],125:[1,174]},t([6,25,61,85],Ft,{31:72,84:175,47:176,48:177,50:178,10:179,29:180,27:181,51:182,28:i,30:r,32:s,33:o,53:m,96:ft}),t(Et,[2,26]),t(Et,[2,27]),t(lt,[2,30]),{12:130,13:183,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:132,51:63,65:47,66:48,68:184,70:23,71:24,72:25,83:y,90:w,95:T,96:C,97:F,108:L},t(Nt,[2,25]),t(Et,[2,28]),{4:185,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(U,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,70:23,71:24,72:25,57:28,68:36,131:37,110:39,114:40,116:41,65:47,66:48,29:49,35:51,27:62,51:63,119:69,31:72,5:186,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:l,41:h,42:u,43:p,44:d,52:f,53:m,54:g,58:v,59:b,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,111:x,113:S,115:D,117:R,126:A,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V}),t(et,[2,207]),{7:187,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:188,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:189,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:190,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:191,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:192,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:193,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:194,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:195,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(et,[2,157]),t(et,[2,162]),{7:196,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(et,[2,156]),t(et,[2,161]),{89:197,92:ut},t(Ct,[2,76]),{92:[2,116]},{27:198,28:i},{27:199,28:i},t(Ct,[2,91],{27:200,28:i}),{27:201,28:i},t(Ct,[2,92]),{7:203,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,64:Lt,65:47,66:48,68:36,70:23,71:24,72:25,79:202,82:204,83:y,86:k,90:w,95:T,96:C,97:F,99:205,100:xt,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{77:208,78:st,81:ot},{89:209,92:ut},t(Ct,[2,77]),{6:[1,211],7:210,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,212],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(St,[2,114]),{7:215,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,64:wt,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:y,86:k,90:w,93:[1,213],94:214,95:T,96:C,97:F,101:154,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t([6,25],Dt,{60:218,56:[1,216],61:Rt}),t(At,[2,62]),t(At,[2,66],{46:[1,220],64:[1,219]}),t(At,[2,69]),t(It,[2,70]),t(It,[2,71]),t(It,[2,72]),t(It,[2,73]),{27:158,28:i},{7:215,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,64:wt,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:y,86:k,90:w,94:153,95:T,96:C,97:F,98:Tt,101:154,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(et,[2,56]),{4:222,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,221],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,143,144,145,146,147,148],[2,196],{119:69,110:89,116:90,142:X}),{110:92,111:x,113:S,116:93,117:R,119:69,133:Z},t(_t,[2,197],{119:69,110:89,116:90,142:X,144:Y}),t(_t,[2,198],{119:69,110:89,116:90,142:X,144:Y}),t(_t,[2,199],{119:69,110:89,116:90,142:X,144:Y}),t(et,[2,200],{119:69,110:92,116:93}),t(Ot,[2,201],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{7:223,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(et,[2,203],{73:bt,74:bt,75:bt,76:bt,78:bt,81:bt,91:bt,92:bt}),{69:95,73:tt,74:nt,75:it,76:rt,77:101,78:st,81:ot,88:94,91:at,92:ct},{69:105,73:tt,74:nt,75:it,76:rt,77:101,78:st,81:ot,88:104,91:at,92:ct},t($t,ht),t(et,[2,204],{73:bt,74:bt,75:bt,76:bt,78:bt,81:bt,91:bt,92:bt}),t(et,[2,205]),t(et,[2,206]),{6:[1,226],7:224,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,225],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:227,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{24:228,25:gt,132:[1,229]},t(et,[2,141],{104:230,105:[1,231],106:[1,232]}),t(et,[2,155]),t(et,[2,163]),{25:[1,233],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},{127:234,129:235,130:jt},t(et,[2,104]),{7:237,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(yt,[2,107],{24:238,25:gt,73:bt,74:bt,75:bt,76:bt,78:bt,81:bt,91:bt,92:bt,87:[1,239]}),t(Ot,[2,148],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Ot,[2,52],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{6:P,109:[1,240]},{4:241,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t([6,25,61,98],Mt,{119:69,110:89,116:90,99:242,64:[1,243],100:xt,111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Bt,[2,122]),t([6,25,98],Dt,{60:244,61:Vt}),t(Pt,[2,131]),{7:215,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,64:wt,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:y,86:k,90:w,94:246,95:T,96:C,97:F,101:154,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(Pt,[2,137]),t(Pt,[2,138]),t(Nt,[2,121]),{24:247,25:gt,110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},t(Ut,[2,151],{119:69,110:89,116:90,111:x,112:[1,248],113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Ut,[2,153],{119:69,110:89,116:90,111:x,112:[1,249],113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(et,[2,159]),t(Gt,[2,160],{119:69,110:89,116:90,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,133,136,137,142,143,144,145,146,147,148],[2,164],{118:[1,250]}),t(Ht,[2,167]),{27:168,28:i,51:169,65:170,66:171,83:y,96:ft,97:mt,121:251,123:167},t(Ht,[2,173],{61:[1,252]}),t(qt,[2,169]),t(qt,[2,170]),t(qt,[2,171]),t(qt,[2,172]),t(et,[2,166]),{7:253,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:254,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t([6,25,85],Dt,{60:255,61:Xt}),t(Wt,[2,99]),t(Wt,[2,42],{49:[1,257]}),t(Yt,[2,50],{46:[1,258]}),t(Wt,[2,47]),t(Yt,[2,51]),t(Kt,[2,48]),t(Kt,[2,49]),{38:[1,259],69:105,73:tt,74:nt,75:it,76:rt,77:101,78:st,81:ot,88:104,91:at,92:ct},t($t,bt),{6:P,34:[1,260]},t(U,[2,4]),t(zt,[2,208],{119:69,110:89,116:90,142:X,143:W,144:Y}),t(zt,[2,209],{119:69,110:89,116:90,142:X,143:W,144:Y}),t(_t,[2,210],{119:69,110:89,116:90,142:X,144:Y}),t(_t,[2,211],{119:69,110:89,116:90,142:X,144:Y}),t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,145,146,147,148],[2,212],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y}),t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,146,147],[2,213],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,148:Q}),t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,147],[2,214],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,148:Q}),t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,146,147,148],[2,215],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K}),t(Gt,[2,195],{119:69,110:89,116:90,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Gt,[2,194],{119:69,110:89,116:90,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(St,[2,111]),t(Ct,[2,87]),t(Ct,[2,88]),t(Ct,[2,89]),t(Ct,[2,90]),{80:[1,261]},{64:Lt,80:[2,95],99:262,100:xt,110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},{80:[2,96]},{7:263,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,80:[2,130],83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(Jt,[2,124]),t(Jt,Qt),t(Ct,[2,94]),t(St,[2,112]),t(Ot,[2,39],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{7:264,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:265,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(St,[2,117]),t([6,25,93],Dt,{60:266,61:Vt}),t(Pt,Mt,{119:69,110:89,116:90,64:[1,267],111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{57:268,58:v,59:b},t(Zt,en,{63:111,27:113,51:114,65:115,66:116,62:269,28:i,64:dt,83:y,96:ft,97:mt}),{6:tn,25:nn},t(At,[2,67]),{7:272,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(rn,[2,23]),{6:P,26:[1,273]},t(Ot,[2,202],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Ot,[2,216],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{7:274,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:275,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(Ot,[2,219],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(et,[2,193]),{7:276,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(et,[2,142],{105:[1,277]}),{24:278,25:gt},{24:281,25:gt,27:279,28:i,66:280,83:y},{127:282,129:235,130:jt},{26:[1,283],128:[1,284],129:285,130:jt},t(sn,[2,186]),{7:287,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,102:286,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(on,[2,105],{119:69,110:89,116:90,24:288,25:gt,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(et,[2,108]),{7:289,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(lt,[2,149]),{6:P,26:[1,290]},{7:291,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t([11,28,30,32,33,36,37,40,41,42,43,44,52,53,54,58,59,83,86,90,95,96,97,103,107,108,111,113,115,117,126,132,134,135,136,137,138,140,141],Qt,{6:an,25:an,61:an,98:an}),{6:cn,25:ln,98:[1,292]},t([6,25,26,93,98],en,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,70:23,71:24,72:25,57:28,68:36,131:37,110:39,114:40,116:41,65:47,66:48,29:49,35:51,27:62,51:63,119:69,31:72,8:122,67:156,7:215,101:295,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:l,41:h,42:u,43:p,44:d,52:f,53:m,54:g,58:v,59:b,64:wt,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,111:x,113:S,115:D,117:R,126:A,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V}),t(Zt,Dt,{60:296,61:Vt}),t(hn,[2,190]),{7:297,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:298,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:299,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(Ht,[2,168]),{27:168,28:i,51:169,65:170,66:171,83:y,96:ft,97:mt,123:300},t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,113,117,133],[2,175],{119:69,110:89,116:90,112:[1,301],118:[1,302],136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(un,[2,176],{119:69,110:89,116:90,112:[1,303],136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{6:pn,25:dn,85:[1,304]},t([6,25,26,85],en,{31:72,48:177,50:178,10:179,29:180,27:181,51:182,47:307,28:i,30:r,32:s,33:o,53:m,96:ft}),{7:308,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,309],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:310,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,311],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(lt,[2,31]),t(Et,[2,29]),t(Ct,[2,93]),{7:312,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,80:[2,128],83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{80:[2,129],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},t(Ot,[2,40],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{26:[1,313],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},{6:cn,25:ln,93:[1,314]},t(Pt,an),{24:315,25:gt},t(At,[2,63]),{27:113,28:i,51:114,62:316,63:111,64:dt,65:115,66:116,83:y,96:ft,97:mt},t(fn,pt,{62:110,63:111,27:113,51:114,65:115,66:116,55:317,28:i,64:dt,83:y,96:ft,97:mt}),t(At,[2,68],{119:69,110:89,116:90,111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(rn,[2,24]),{26:[1,318],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},t(Ot,[2,218],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{24:319,25:gt,110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},{24:320,25:gt},t(et,[2,143]),{24:321,25:gt},{24:322,25:gt},t(mn,[2,147]),{26:[1,323],128:[1,324],129:285,130:jt},t(et,[2,184]),{24:325,25:gt},t(sn,[2,187]),{24:326,25:gt,61:[1,327]},t(gn,[2,139],{119:69,110:89,116:90,111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(et,[2,106]),t(on,[2,109],{119:69,110:89,116:90,24:328,25:gt,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{109:[1,329]},{98:[1,330],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},t(Bt,[2,123]),{7:215,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,64:wt,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,101:331,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:215,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,64:wt,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:y,86:k,90:w,94:332,95:T,96:C,97:F,101:154,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(Pt,[2,132]),{6:cn,25:ln,26:[1,333]},t(Gt,[2,152],{119:69,110:89,116:90,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Gt,[2,154],{119:69,110:89,116:90,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Gt,[2,165],{119:69,110:89,116:90,111:x,113:S,117:R,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Ht,[2,174]),{7:334,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:335,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:336,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(Bt,[2,97]),{10:179,27:181,28:i,29:180,30:r,31:72,32:s,33:o,47:337,48:177,50:178,51:182,53:m,96:ft},t(fn,Ft,{31:72,47:176,48:177,50:178,10:179,29:180,27:181,51:182,84:338,28:i,30:r,32:s,33:o,53:m,96:ft}),t(Wt,[2,100]),t(Wt,[2,43],{119:69,110:89,116:90,111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{7:339,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(Wt,[2,45],{119:69,110:89,116:90,111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{7:340,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{80:[2,127],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},t(et,[2,41]),t(St,[2,118]),t(et,[2,55]),t(At,[2,64]),t(Zt,Dt,{60:341,61:Rt}),t(et,[2,217]),t(hn,[2,191]),t(et,[2,144]),t(mn,[2,145]),t(mn,[2,146]),t(et,[2,182]),{24:342,25:gt},{26:[1,343]},t(sn,[2,188],{6:[1,344]}),{7:345,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},t(et,[2,110]),t(lt,[2,150]),t(lt,[2,126]),t(Pt,[2,133]),t(Zt,Dt,{60:346,61:Vt}),t(Pt,[2,134]),t([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,133],[2,177],{119:69,110:89,116:90,118:[1,347],136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(un,[2,179],{119:69,110:89,116:90,112:[1,348],136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Ot,[2,178],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Wt,[2,101]),t(Zt,Dt,{60:349,61:Xt}),{26:[1,350],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},{26:[1,351],110:89,111:x,113:S,116:90,117:R,119:69,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q},{6:tn,25:nn,26:[1,352]},{26:[1,353]},t(et,[2,185]),t(sn,[2,189]),t(gn,[2,140],{119:69,110:89,116:90,111:x,113:S,117:R,133:G,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),{6:cn,25:ln,26:[1,354]},{7:355,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{7:356,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:l,41:h,42:u,43:p,44:d,45:21,51:63,52:f,53:m,54:g,57:28,58:v,59:b,65:47,66:48,68:36,70:23,71:24,72:25,83:y,86:k,90:w,95:T,96:C,97:F,103:E,107:N,108:L,110:39,111:x,113:S,114:40,115:D,116:41,117:R,119:69,126:A,131:37,132:I,134:_,135:O,136:$,137:j,138:M,140:B,141:V},{6:pn,25:dn,26:[1,357]},t(Wt,[2,44]),t(Wt,[2,46]),t(At,[2,65]),t(et,[2,183]),t(Pt,[2,135]),t(Ot,[2,180],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Ot,[2,181],{119:69,110:89,116:90,136:H,137:q,142:X,143:W,144:Y,145:K,146:z,147:J,148:Q}),t(Wt,[2,102])],defaultActions:{60:[2,57],61:[2,58],96:[2,116],204:[2,96]},parseError:function(e,t){if(!t.recoverable)throw Error(e); -this.trace(e)},parse:function(e){function t(){var e;return e=f.lex()||p,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,i=[0],r=[null],s=[],o=this.table,a="",c=0,l=0,h=0,u=2,p=1,d=s.slice.call(arguments,1),f=Object.create(this.lexer),m={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(m.yy[g]=this.yy[g]);f.setInput(e,m.yy),m.yy.lexer=f,m.yy.parser=this,f.yylloc===void 0&&(f.yylloc={});var v=f.yylloc;s.push(v);var b=f.options&&f.options.ranges;this.parseError="function"==typeof m.yy.parseError?m.yy.parseError:Object.getPrototypeOf(this).parseError;for(var y,k,w,T,C,F,E,N,L,x={};;){if(w=i[i.length-1],this.defaultActions[w]?T=this.defaultActions[w]:((null===y||y===void 0)&&(y=t()),T=o[w]&&o[w][y]),T===void 0||!T.length||!T[0]){var S="";L=[];for(F in o[w])this.terminals_[F]&&F>u&&L.push("'"+this.terminals_[F]+"'");S=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(c+1)+": Unexpected "+(y==p?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(S,{text:f.match,token:this.terminals_[y]||y,line:f.yylineno,loc:v,expected:L})}if(T[0]instanceof Array&&T.length>1)throw Error("Parse Error: multiple actions possible at state: "+w+", token: "+y);switch(T[0]){case 1:i.push(y),r.push(f.yytext),s.push(f.yylloc),i.push(T[1]),y=null,k?(y=k,k=null):(l=f.yyleng,a=f.yytext,c=f.yylineno,v=f.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[T[1]][1],x.$=r[r.length-E],x._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},b&&(x._$.range=[s[s.length-(E||1)].range[0],s[s.length-1].range[1]]),C=this.performAction.apply(x,[a,l,c,m.yy,T[1],r,s].concat(d)),C!==void 0)return C;E&&(i=i.slice(0,2*-1*E),r=r.slice(0,-1*E),s=s.slice(0,-1*E)),i.push(this.productions_[T[1]][0]),r.push(x.$),s.push(x._$),N=o[i[i.length-2]][i[i.length-1]],i.push(N);break;case 3:return!0}}return!0}};return e.prototype=vn,vn.Parser=e,new e}();return require!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var n=require("fs").readFileSync(require("path").normalize(t[1]),"utf8");return e.parser.parse(n)},t!==void 0&&require.main===t&&e.main(process.argv.slice(1))),t.exports}(),require["./scope"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(s=this.parent)?s.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){return null==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\d/g,"a"):e+(t||"")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,s;for(null==t&&(t={}),i=0;;){if(s=this.temporary(e,i,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(s,"var",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],"var"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+" = "+r.type.value);return i},e}()}.call(this),t.exports}(),require["./nodes"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,v,b,y,k,w,T,C,F,E,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,lt,ht,ut,pt,dt,ft,mt,gt,vt,bt,yt,kt=function(e,t){function n(){this.constructor=e}for(var i in t)wt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},wt={}.hasOwnProperty,Tt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ct=[].slice;Error.stackTraceLimit=1/0,P=require("./scope").Scope,dt=require("./lexer"),$=dt.RESERVED,V=dt.STRICT_PROSCRIBED,ft=require("./helpers"),et=ft.compact,rt=ft.flatten,it=ft.extend,ht=ft.merge,tt=ft.del,gt=ft.starts,nt=ft.ends,mt=ft.some,Z=ft.addLocationDataFn,lt=ft.locationDataToString,vt=ft.throwSyntaxError,e.extend=it,e.addLocationDataFn=Z,Q=function(){return!0},D=function(){return!1},X=function(){return this},S=function(){return this.negated=!this.negated,this},e.CodeFragment=l=function(){function e(e,t){var n;this.code=""+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+lt(this.locationData):"")},e}(),st=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join("")},e.Base=r=function(){function e(){}return e.prototype.compile=function(e,t){return st(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=it({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==L&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,a,l,h,u;return(a=this.jumps())&&a.error("cannot use a pure statement in an expression"),e.sharedScope=!0,r=new c([],s.wrap([this])),n=[],((i=this.contains(at))||this.contains(ct))&&(n=[new x("this")],i?(l="apply",n.push(new x("arguments"))):l="call",r=new z(r,[new t(new x(l))])),h=new o(r,n).compileNode(e),(r.isGenerator||(null!=(u=r.base)?u.isGenerator:void 0))&&(h.unshift(this.makeCode("(yield* ")),h.push(this.makeCode(")"))),h},e.prototype.cache=function(e,t,n){var r,s,o;return r=null!=n?n(this):this.isComplex(),r?(s=new x(e.scope.freeVariable("ref")),o=new i(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[st(e[0]),st(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new o(new x(e+".push"),[t]):new M(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof h))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=""),null==t&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+q)}),n},e.prototype.eachChild=function(e){var t,n,i,r,s,o,a,c;if(!this.children)return this;for(a=this.children,i=0,s=a.length;s>i;i++)if(t=a[i],this[t])for(c=rt([this[t]]),r=0,o=c.length;o>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new I("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=D,e.prototype.jumps=D,e.prototype.isComplex=Q,e.prototype.isChainable=D,e.prototype.isAssignable=D,e.prototype.unwrap=X,e.prototype.unfoldSoak=D,e.prototype.assigns=D,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return vt(e,this.locationData)},e.prototype.makeCode=function(e){return new l(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,s,o;for(n=[],r=s=0,o=e.length;o>s;r=++s)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=s=function(e){function t(e){this.expressions=et(rt(e||[]))}return kt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,s;for(s=this.expressions,n=0,r=s.length;r>n;n++)if(t=s[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof h)){this.expressions[n]=t.makeReturn(e),t instanceof M&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,s,o,a,c,l,h;for(this.tab=e.indent,h=e.level===L,i=[],l=this.expressions,s=o=0,a=l.length;a>o;s=++o)c=l[s],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):h?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(c.compileToFragments(e,F));return h?this.spaced?[].concat(this.joinFragmentArrays(i,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(i,"\n"):(n=i.length?this.joinFragmentArrays(i,", "):[this.makeCode("void 0")],i.length>1&&e.level>=F?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,s,o,a,c,l,u,p;for(e.indent=e.bare?"":q,e.level=L,this.spaced=!0,e.scope=new P(null,this,null,null!=(l=e.referencedVars)?l:[]),u=e.locals||[],r=0,s=u.length;s>r;r++)o=u[r],e.scope.parameter(o);return a=[],e.bare||(c=function(){var e,n,r,s;for(r=this.expressions,s=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof h);i=++e)s.push(t);return s}.call(this),p=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(ht(e,{indent:""})),a.push(this.makeCode("\n"))),this.expressions=p),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,s,o,a,c,l,u,p,d,f,m;for(r=[],c=[],l=this.expressions,s=o=0,a=l.length;a>o&&(i=l[s],i=i.unwrap(),i instanceof h||i instanceof x);s=++o);return e=ht(e,{level:L}),s&&(d=this.expressions.splice(s,9e9),u=[this.spaced,!1],m=u[0],this.spaced=u[1],p=[this.compileNode(e),m],r=p[0],this.spaced=p[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(s&&r.push(this.makeCode("\n")),r.push(this.makeCode(this.tab+"var ")),n&&r.push(this.makeCode(f.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+q))),r.push(this.makeCode(f.assignedVariables().join(",\n"+(this.tab+q))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&c.length&&r.push(this.makeCode("\n"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(r),e.Literal=x=function(e){function t(e){this.value=e}return kt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return g.test(this.value)},t.prototype.isStatement=function(){var e;return"break"===(e=this.value)||"continue"===e||"debugger"===e},t.prototype.isComplex=D,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){return"break"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?"continue"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(e){var t,n,i;return n="this"===this.value?(null!=(i=e.scope.method)?i.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'"'+this.value+'"':this.value,t=this.isStatement()?""+this.tab+n+";":n,[this.makeCode(t)]},t.prototype.toString=function(){return' "'+this.value+'"'},t}(r),e.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=T?"(void 0)":"void 0")]},t}(r),e.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode("null")]},t}(r),e.Bool=function(e){function t(e){this.val=e}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(r),e.Return=M=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.jumps=X,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t,n,i;return t=[],n=null!=(i=this.expression)?"function"==typeof i.isYieldReturn?i.isYieldReturn():void 0:void 0,n||t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,N))),n||t.push(this.makeCode(";")),t},t}(r),e.Value=z=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return kt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(j)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(x)&&B.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(x)&&b.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(x)&&v.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof o)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof A&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof U},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&"prototype"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,s,o,a;return a=this.properties,s=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=s?s.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new x(e.scope.freeVariable("base")),n=new t(new O(new i(r,n)))),s?(s.isComplex()&&(o=new x(e.scope.freeVariable("name")),s=new w(new i(o,s.index)),o=new w(o)),[n.add(s),new t(r||n.base,[o||s])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?T:null),(this.base instanceof O||s.length)&&B.test(st(t))&&t.push(this.makeCode(".")),n=0,i=s.length;i>n;n++)r=s[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,s,o,a,c,l,h,p,d,f;if(o=n.base.unfoldSoak(e))return(p=o.body.properties).push.apply(p,n.properties),o;for(d=n.properties,s=a=0,c=d.length;c>a;s=++a)if(l=d[s],l.soak)return l.soak=!1,r=new t(n.base,n.properties.slice(0,s)),f=new t(n.base,n.properties.slice(s)),r.isComplex()&&(h=new x(e.scope.freeVariable("ref")),r=new O(new i(h,r)),f.base=h),new y(new u(r),f,{soak:!0});return!1}}(this)()},t}(r),e.Comment=h=function(e){function t(e){this.comment=e}return kt(t,e),t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *"),n="/*"+ut(i,this.tab)+(Tt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===L&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(r),e.Call=o=function(e){function n(e,t,n){this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.isSuper="super"===e,this.variable=this.isSuper?null:e,e instanceof z&&e.isNotCallable()&&e.error("literal is not a function")}return kt(n,e),n.prototype.children=["variable","args"],n.prototype.newInstance=function(){var e,t;return e=(null!=(t=this.variable)?t.base:void 0)||this.variable,e instanceof n&&!e.isNew?e.newInstance():this.isNew=!0,this},n.prototype.superReference=function(e){var n,r,s,o,a,c,l,h;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(o=a.klass,c=a.name,h=a.variable,o.isComplex()&&(s=new x(e.scope.parent.freeVariable("base")),r=new z(new O(new i(s,o))),h.base=r,h.properties.splice(0,o.properties.length)),(c.isComplex()||c instanceof w&&c.index.isAssignable())&&(l=new x(e.scope.parent.freeVariable("name")),c=new w(new i(l,c.index)),h.properties.pop(),h.properties.push(c)),n=[new t(new x("__super__"))],a["static"]&&n.push(new t(new x("constructor"))),n.push(null!=l?new w(l):c),new z(null!=s?s:o,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},n.prototype.unfoldSoak=function(e){var t,i,r,s,o,a,c,l,h;if(this.soak){if(this.variable){if(i=bt(e,this,"variable"))return i;c=new z(this.variable).cacheReference(e),s=c[0],h=c[1]}else s=new x(this.superReference(e)),h=new z(s);return h=new n(h,this.args),h.isNew=this.isNew,s=new x("typeof "+s.compile(e)+' === "function"'),new y(s,new z(h),{soak:!0})}for(t=this,a=[];;)if(t.variable instanceof n)a.push(t),t=t.variable;else{if(!(t.variable instanceof z))break;if(a.push(t),!((t=t.variable.base)instanceof n))break}for(l=a.reverse(),r=0,o=l.length;o>r;r++)t=l[r],i&&(t.variable instanceof n?t.variable=i:t.variable.base=i),i=bt(e,t,"variable");return i},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,l,h;if(null!=(l=this.variable)&&(l.front=this.front),r=G.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],h=this.args,n=o=0,a=h.length;a>o;n=++o)t=h[n],n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,F));return s=[],this.isSuper?(c=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(c+=", "),s.push(this.makeCode(c))):(this.isNew&&s.push(this.makeCode("new ")),s.push.apply(s,this.variable.compileToFragments(e,T)),s.push(this.makeCode("("))),s.push.apply(s,i),s.push(this.makeCode(")")),s},n.prototype.compileSplat=function(e,t){var n,i,r,s,o,a;return this.isSuper?[].concat(this.makeCode(this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(s=this.tab+q,[].concat(this.makeCode("(function(func, args, ctor) {\n"+s+"ctor.prototype = func.prototype;\n"+s+"var child = new ctor, result = func.apply(child, args);\n"+s+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,F),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new z(this.variable),(o=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,F),this.makeCode(")"),o.compileToFragments(e))):(r=i.compileToFragments(e,T),B.test(st(r))&&(r=this.wrapInBraces(r)),o?(a=st(r),r.push.apply(r,o.compileToFragments(e))):a="null",n=n.concat(r)),n=n.concat(this.makeCode(".apply("+a+", "),t,this.makeCode(")")))},n}(r),e.Extends=d=function(e){function t(e,t){this.child=e,this.parent=t}return kt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new o(new z(new x(yt("extend",e))),[this.child,this.parent]).compileToFragments(e)},t}(r),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak="soak"===t}return kt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),g.test(st(t))?t.unshift(this.makeCode(".")):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.isComplex=D,t}(r),e.Index=w=function(e){function t(e){this.index=e}return kt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,N),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(r),e.Range=j=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive="exclusive"===n,this.equals=this.exclusive?"":"="}return kt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,s,o;return e=ht(e,{top:!0}),t=tt(e,"isComplex"),n=this.cacheToCodeFragments(this.from.cache(e,F,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,F,t)),this.toC=i[0],this.toVar=i[1],(o=tt(e,"step"))&&(r=this.cacheToCodeFragments(o.cache(e,F,t)),this.step=r[0],this.stepVar=r[1]),s=[this.fromVar.match(R),this.toVar.match(R)],this.fromNum=s[0],this.toNum=s[1],this.stepVar?this.stepNum=this.stepVar.match(R):void 0},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,l,h,u,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=this.fromNum&&this.toNum,s=tt(e,"index"),o=tt(e,"name"),l=o&&o!==s,f=s+" = "+this.fromC,this.toC!==this.toVar&&(f+=", "+this.toC),this.step!==this.stepVar&&(f+=", "+this.step),h=[s+" <"+this.equals,s+" >"+this.equals],c=h[0],r=h[1],n=this.stepNum?pt(this.stepNum[0])>0?c+" "+this.toVar:r+" "+this.toVar:a?(u=[pt(this.fromNum[0]),pt(this.toNum[0])],i=u[0],d=u[1],u,d>=i?c+" "+d:r+" "+d):(t=this.stepVar?this.stepVar+" > 0":this.fromVar+" <= "+this.toVar,t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),p=this.stepVar?s+" += "+this.stepVar:a?l?d>=i?"++"+s:"--"+s:d>=i?s+"++":s+"--":l?t+" ? ++"+s+" : --"+s:t+" ? "+s+"++ : "+s+"--",l&&(f=o+" = "+f),l&&(p=o+" = "+p),[this.makeCode(f+"; "+n+"; "+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,s,o,a,c,l,h,u,p,d;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(l=function(){p=[];for(var e=h=+this.fromNum,t=+this.toNum;t>=h?t>=e:e>=t;t>=h?e++:e--)p.push(e);return p}.apply(this),this.exclusive&&l.pop(),[this.makeCode("["+l.join(", ")+"]")]):(o=this.tab+q,s=e.scope.freeVariable("i",{single:!0}),u=e.scope.freeVariable("results"),c="\n"+o+u+" = [];",this.fromNum&&this.toNum?(e.index=s,n=st(this.compileNode(e))):(d=s+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=this.fromVar+" <= "+this.toVar,n="var "+d+"; "+i+" ? "+s+" <"+this.equals+" "+this.toVar+" : "+s+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+s+"++ : "+s+"--"),a="{ "+u+".push("+s+"); }\n"+o+"return "+u+";\n"+e.indent,r=function(e){return null!=e?e.contains(at):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+c+"\n"+o+"for ("+n+")"+a+"}).apply(this"+(null!=t?t:"")+")")])},t}(r),e.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return kt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;return s=this.range,o=s.to,i=s.from,r=i&&i.compileToFragments(e,N)||[this.makeCode("0")],o&&(t=o.compileToFragments(e,N),n=st(t),(this.range.exclusive||-1!==+n)&&(a=", "+(this.range.exclusive?n:B.test(n)?""+(+n+1):(t=o.compileToFragments(e,T),"+"+st(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+st(r)+(a||"")+")")]},t}(r),e.Obj=A=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return kt(n,e),n.prototype.children=["properties"],n.prototype.compileNode=function(e){var n,r,s,o,a,c,l,u,p,d,f,m,g,v,b,y,k,w,T,C,F;if(T=this.properties,this.generated)for(l=0,g=T.length;g>l;l++)y=T[l],y instanceof z&&y.error("cannot have an implicit value in an implicit object");for(r=p=0,v=T.length;v>p&&(w=T[r],!((w.variable||w).base instanceof O));r=++p);for(s=T.length>r,a=e.indent+=q,m=this.lastNonComment(this.properties),n=[],s&&(k=e.scope.freeVariable("obj"),n.push(this.makeCode("(\n"+a+k+" = "))),n.push(this.makeCode("{"+(0===T.length||0===r?"}":"\n"))),o=f=0,b=T.length;b>f;o=++f)w=T[o],o===r&&(0!==o&&n.push(this.makeCode("\n"+a+"}")),n.push(this.makeCode(",\n"))),u=o===T.length-1||o===r-1?"":w===m||w instanceof h?"\n":",\n",c=w instanceof h?"":a,s&&r>o&&(c+=q),w instanceof i&&("object"!==w.context&&w.operatorToken.error("unexpected "+w.operatorToken.value),w.variable instanceof z&&w.variable.hasProperties()&&w.variable.error("invalid object key")),w instanceof z&&w["this"]&&(w=new i(w.properties[0].name,w,"object")),w instanceof h||(r>o?(w instanceof i||(w=new i(w,w,"object")),(w.variable.base||w.variable).asKey=!0):(w instanceof i?(d=w.variable,F=w.value):(C=w.base.cache(e),d=C[0],F=C[1]),w=new i(new z(new x(k),[new t(d)]),F))),c&&n.push(this.makeCode(c)),n.push.apply(n,w.compileToFragments(e,L)),u&&n.push(this.makeCode(u));return s?n.push(this.makeCode(",\n"+a+k+"\n"+this.tab+")")):0!==T.length&&n.push(this.makeCode("\n"+this.tab+"}")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(r),e.Arr=n=function(e){function t(e){this.objects=e||[]}return kt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;if(!this.objects.length)return[this.makeCode("[]")];if(e.indent+=q,t=G.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,F));return r}.call(this),r=s=0,o=n.length;o>s;r=++s)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return st(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(r),e.Class=a=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new s,this.boundFuncs=[],this.body.classBody=!0}return kt(n,e),n.prototype.children=["variable","parent","body"],n.prototype.determineName=function(){var e,n,i;return this.variable?(n=this.variable.properties,i=n[n.length-1],e=i?i instanceof t&&i.name.value:this.variable.base.value,Tt.call(V,e)>=0&&this.variable.error("class variable name may not be "+e),e&&(e=g.test(e)&&e)):null},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof x&&"this"===t.value?t.value=e:t instanceof c&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,s,o;for(o=this.boundFuncs,i=0,r=o.length;r>i;i++)n=o[i],s=new z(new x("this"),[new t(n)]).compile(e),this.ctor.body.unshift(new x(s+" = "+yt("bind",e)+"("+s+", this)"))},n.prototype.addProperties=function(e,n,r){var s,o,a,l,h,u;return u=e.base.properties.slice(0),l=function(){var e;for(e=[];o=u.shift();)o instanceof i&&(a=o.variable.base,delete o.context,h=o.value,"constructor"===a.value?(this.ctor&&o.error("cannot define more than one constructor in a class"),h.bound&&o.error("cannot define a constructor as a bound function"),h instanceof c?o=this.ctor=h:(this.externalCtor=r.classScope.freeVariable("class"),o=new i(new x(this.externalCtor),h))):o.variable["this"]?h["static"]=!0:(s=a.isComplex()?new w(a):new t(a),o.variable=new z(new x(n),[new t(new x("prototype")),s]),h instanceof c&&h.bound&&(this.boundFuncs.push(a),h.bound=!1))),e.push(o);return e}.call(this),et(l)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(o){var a,c,l,h,u,p,d;if(a=!0,o instanceof n)return!1;if(o instanceof s){for(d=c=o.expressions,l=h=0,u=d.length;u>h;l=++h)p=d[l],p instanceof i&&p.variable.looksStatic(e)?p.value["static"]=!0:p instanceof z&&p.isObject(!0)&&(a=!1,c[l]=r.addProperties(p,e,t));o.expressions=c=rt(c)}return a&&!(o instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof h||n instanceof z&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new c,this.externalCtor?this.ctor.body.push(new x(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new x(e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,a,l,h,u,p,f;return(a=this.body.jumps())&&a.error("Class bodies cannot contain pure statements"),(n=this.body.contains(at))&&n.error("Class bodies shouldn't reference arguments"),u=this.determineName()||"_Class",u.reserved&&(u="_"+u),h=new x(u),r=new c([],s.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(u),this.walkBody(u,e),this.ensureConstructor(u),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(h),this.parent&&(f=new x(e.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new d(h,f)),r.params.push(new _(f)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),l=new O(new o(r,t)),this.variable&&(l=new i(this.variable,l)),l.compileToFragments(e)},n}(r),e.Assign=i=function(e){function n(e,t,n,i){var r,s,o;this.variable=e,this.value=t,this.context=n,null==i&&(i={}),this.param=i.param,this.subpattern=i.subpattern,this.operatorToken=i.operatorToken,o=s=this.variable.unwrapAll().value,r=Tt.call(V,o)>=0,r&&"object"!==this.context&&this.variable.error('variable name may not be "'+s+'"') -}return kt(n,e),n.prototype.children=["variable","value"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===L&&null!=this.context&&Tt.call(this.context,"?")>=0},n.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){return bt(e,this,"variable")},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,l,h,u,p,d,f,m;if(i=this.variable instanceof z){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if("||="===(l=this.context)||"&&="===l||"?="===l)return this.compileConditional(e);if("**="===(h=this.context)||"//="===h||"%%="===h)return this.compileSpecialMath(e)}return this.value instanceof c&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(u=this.variable.properties)?u.length:void 0)>=2&&(p=this.variable.properties,o=p.length>=3?Ct.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],s=p[r++],"prototype"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new z(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(m=this.variable.unwrapAll(),m.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned'),("function"==typeof m.hasProperties?m.hasProperties():void 0)||(this.param?e.scope.add(m.value,"var"):e.scope.find(m.value))),f=this.value.compileToFragments(e,F),i&&this.variable.base instanceof A&&(this.variable.front=!0),n=this.variable.compileToFragments(e,F),"object"===this.context?n.concat(this.makeCode(": "),f):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),f),F>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,s,o,a,c,l,h,u,d,f,m,v,b,y,k,T,C,N,S,D,R,A,_,O,j,M,B;if(_=e.level===L,j=this.value,y=this.variable.base.objects,!(k=y.length))return s=j.compileToFragments(e),e.level>=E?this.wrapInBraces(s):s;if(b=y[0],1===k&&b instanceof p&&b.error("Destructuring assignment has no target"),u=this.variable.isObject(),_&&1===k&&!(b instanceof G))return o=null,b instanceof n&&"object"===b.context?(C=b,N=C.variable,h=N.base,b=C.value,b instanceof n&&(o=b.value,b=b.variable)):(b instanceof n&&(o=b.value,b=b.variable),h=u?b["this"]?b.properties[0].name:b:new x(0)),i=g.test(h.unwrap().value),j=new z(j),j.properties.push(new(i?t:w)(h)),S=b.unwrap().value,Tt.call($,S)>=0&&b.error("assignment to a reserved word: "+b.compile(e)),o&&(j=new I("?",j,o)),new n(b,j,null,{param:this.param}).compileToFragments(e,L);for(M=j.compileToFragments(e,F),B=st(M),r=[],a=!1,(!g.test(B)||this.variable.assigns(B))&&(r.push([this.makeCode((T=e.scope.freeVariable("ref"))+" = ")].concat(Ct.call(M))),M=[this.makeCode(T)],B=T),l=f=0,m=y.length;m>f;l=++f){if(b=y[l],h=l,!a&&b instanceof G)v=b.name.unwrap().value,b=b.unwrap(),O=k+" <= "+B+".length ? "+yt("slice",e)+".call("+B+", "+l,(A=k-l-1)?(d=e.scope.freeVariable("i",{single:!0}),O+=", "+d+" = "+B+".length - "+A+") : ("+d+" = "+l+", [])"):O+=") : []",O=new x(O),a=d+"++";else{if(!a&&b instanceof p){(A=k-l-1)&&(1===A?a=B+".length - 1":(d=e.scope.freeVariable("i",{single:!0}),O=new x(d+" = "+B+".length - "+A),a=d+"++",r.push(O.compileToFragments(e,F))));continue}(b instanceof G||b instanceof p)&&b.error("multiple splats/expansions are disallowed in an assignment"),o=null,b instanceof n&&"object"===b.context?(D=b,R=D.variable,h=R.base,b=D.value,b instanceof n&&(o=b.value,b=b.variable)):(b instanceof n&&(o=b.value,b=b.variable),h=u?b["this"]?b.properties[0].name:b:new x(a||h)),v=b.unwrap().value,i=g.test(h.unwrap().value),O=new z(new x(B),[new(i?t:w)(h)]),o&&(O=new I("?",O,o))}null!=v&&Tt.call($,v)>=0&&b.error("assignment to a reserved word: "+b.compile(e)),r.push(new n(b,O,null,{param:this.param,subpattern:!0}).compileToFragments(e,F))}return _||this.subpattern||r.push(M),c=this.joinFragmentArrays(r,", "),F>e.level?c:this.wrapInBraces(c)},n.prototype.compileConditional=function(e){var t,i,r,s;return r=this.variable.cacheReference(e),i=r[0],s=r[1],!i.properties.length&&i.base instanceof x&&"this"!==i.base.value&&!e.scope.check(i.base.value)&&this.variable.error('the variable "'+i.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),Tt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new y(new u(i),s,{type:"if"}).addElse(new n(s,this.value,"=")).compileToFragments(e)):(t=new I(this.context.slice(0,-1),i,new n(s,this.value,"=")).compileToFragments(e),F>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new I(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,s,o,a,c,l,h,u,p;return a=this.variable.properties.pop().range,i=a.from,h=a.to,n=a.exclusive,o=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,E)),r=c[0],s=c[1]):r=s="0",h?i instanceof z&&i.isSimpleNumber()&&h instanceof z&&h.isSimpleNumber()?(h=h.compile(e)-s,n||(h+=1)):(h=h.compile(e,T)+" - "+s,n||(h+=" + 1")):h="9e9",l=this.value.cache(e,F),u=l[0],p=l[1],t=[].concat(this.makeCode("[].splice.apply("+o+", ["+r+", "+h+"].concat("),u,this.makeCode(")), "),p),e.level>L?this.wrapInBraces(t):t},n}(r),e.Code=c=function(e){function t(e,t,n){this.params=e||[],this.body=t||new s,this.bound="boundfunc"===n,this.isGenerator=!!this.body.contains(function(e){var t;return e instanceof I&&("yield"===(t=e.operator)||"yield*"===t)})}return kt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=D,t.prototype.makeScope=function(e){return new P(e,this.body,this)},t.prototype.compileNode=function(e){var r,a,c,l,h,u,d,f,m,g,v,b,k,w,C,F,E,N,L,S,D,R,A,O,$,j,M,B,V,P,U,G,H;if(this.bound&&(null!=(A=e.scope.method)?A.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",H=new t([new _(new x(this.context))],new s([this])),a=new o(H,[new x("this")]),a.updateLocationDataIfMissing(this.locationData),a.compileNode(e);for(e.scope=tt(e,"classScope")||this.makeScope(e.scope),e.scope.shared=tt(e,"sharedScope"),e.indent+=q,delete e.bare,delete e.isExistentialEquals,L=[],l=[],O=this.params,u=0,m=O.length;m>u;u++)N=O[u],N instanceof p||e.scope.parameter(N.asReference(e));for($=this.params,d=0,g=$.length;g>d;d++)if(N=$[d],N.splat||N instanceof p){for(j=this.params,f=0,v=j.length;v>f;f++)E=j[f],E instanceof p||!E.name.value||e.scope.add(E.name.value,"var",!0);V=new i(new z(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)E=i[n],r.push(E.asReference(e));return r}.call(this))),new z(new x("arguments")));break}for(M=this.params,F=0,b=M.length;b>F;F++)N=M[F],N.isComplex()?(U=R=N.asReference(e),N.value&&(U=new I("?",R,N.value)),l.push(new i(new z(N.name),U,"=",{param:!0}))):(R=N,N.value&&(C=new x(R.name.value+" == null"),U=new i(new z(N.name),N.value,"="),l.push(new y(C,U)))),V||L.push(R);for(G=this.body.isEmpty(),V&&l.unshift(V),l.length&&(B=this.body.expressions).unshift.apply(B,l),h=S=0,k=L.length;k>S;h=++S)E=L[h],L[h]=E.compileToFragments(e),e.scope.parameter(st(L[h]));for(P=[],this.eachParamName(function(e,t){return Tt.call(P,e)>=0&&t.error("multiple parameters named "+e),P.push(e)}),G||this.noReturn||this.body.makeReturn(),c="function",this.isGenerator&&(c+="*"),this.ctor&&(c+=" "+this.name),c+="(",r=[this.makeCode(c)],h=D=0,w=L.length;w>D;h=++D)E=L[h],h&&r.push(this.makeCode(", ")),r.push.apply(r,E);return r.push(this.makeCode(") {")),this.body.isEmpty()||(r=r.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),r.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Ct.call(r)):this.front||e.level>=T?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,s;for(r=this.params,s=[],t=0,n=r.length;n>t;t++)i=r[t],s.push(i.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(r),e.Param=_=function(e){function t(e,t,n){var i,r,s;this.name=e,this.value=t,this.splat=n,r=i=this.name.unwrapAll().value,Tt.call(V,r)>=0&&this.name.error('parameter name "'+i+'" is not allowed'),this.name instanceof A&&this.name.generated&&(s=this.name.objects[0].operatorToken,s.error("unexpected "+s.value))}return kt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,F)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n["this"]?(t=n.properties[0].name.value,t.reserved&&(t="_"+t),n=new x(e.scope.freeVariable(t))):n.isComplex()&&(n=new x(e.scope.freeVariable("arg"))),n=new z(n),this.splat&&(n=new G(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,s,o,a,c;if(null==t&&(t=this.name),n=function(t){return e("@"+t.properties[0].name.value,t)},t instanceof x)return e(t.value,t);if(t instanceof z)return n(t);for(c=t.objects,r=0,s=c.length;s>r;r++)a=c[r],a instanceof i&&null==a.context&&(a=a.variable),a instanceof i?this.eachName(e,a.value.unwrap()):a instanceof G?(o=a.name.unwrap(),e(o.value,o)):a instanceof z?a.isArray()||a.isObject()?this.eachName(e,a.base):a["this"]?n(a):e(a.base.value,a.base):a instanceof p||a.error("illegal parameter "+a.compile())},t}(r),e.Splat=G=function(e){function t(e){this.name=e.compile?e:new x(e)}return kt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=Q,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,s,o,a,c,l,h,u,p,d,f;for(h=-1;(f=n[++h])&&!(f instanceof t););if(h>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,F),i?c:[].concat(f.makeCode(yt("slice",e)+".call("),c,f.makeCode(")"));for(r=n.slice(h),l=u=0,d=r.length;d>u;l=++u)f=r[l],o=f.compileToFragments(e,F),r[l]=f instanceof t?[].concat(f.makeCode(yt("slice",e)+".call("),o,f.makeCode(")")):[].concat(f.makeCode("["),o,f.makeCode("]"));return 0===h?(f=n[0],a=f.joinFragmentArrays(r.slice(1),", "),r[0].concat(f.makeCode(".concat("),a,f.makeCode(")"))):(s=function(){var t,i,r,s;for(r=n.slice(0,h),s=[],t=0,i=r.length;i>t;t++)f=r[t],s.push(f.compileToFragments(e,F));return s}(),s=n[0].joinFragmentArrays(s,", "),a=n[h].joinFragmentArrays(r,", "),p=n[n.length-1],[].concat(n[0].makeCode("["),s,n[h].makeCode("].concat("),a,p.makeCode(")")))},t}(r),e.Expansion=p=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isComplex=D,t.prototype.compileNode=function(){return this.error("Expansion must be used inside a destructuring assignment or parameter list")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(r),e.While=J=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return kt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=Q,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=q,r="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(i=e.scope.freeVariable("results")),r=""+this.tab+i+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new y(new O(this.guard).invert(),new x("continue"))):this.guard&&(n=s.wrap([new y(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,L),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,N),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+i+";")),t},t}(r),e.Op=I=function(e){function n(e,t,n,i){if("in"===e)return new k(t,n);if("do"===e)return this.generateDo(t);if("new"===e){if(t instanceof o&&!t["do"]&&!t.isNew)return t.newInstance();(t instanceof c&&t.bound||t["do"])&&(t=new O(t))}return this.operator=r[e]||e,this.first=t,this.second=n,this.flip=!!i,this}var r,s;return kt(n,e),r={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},s={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isSimpleNumber=D,n.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},n.prototype.isYieldReturn=function(){return this.isYield()&&this.first instanceof M},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){var e;return!(this.isUnary()&&("+"===(e=this.operator)||"-"===e)&&this.first instanceof z&&this.first.isSimpleNumber())},n.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},n.prototype.invert=function(){var e,t,i,r,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return new O(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(r=s[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new O(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof n&&("!"===(o=i.operator)||"in"===o||"instanceof"===o)?i:new n("!",this)},n.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&bt(e,this,"first")},n.prototype.generateDo=function(e){var t,n,r,s,a,l,h,u;for(l=[],n=e instanceof i&&(h=e.value.unwrap())instanceof c?h:e,u=n.params||[],r=0,s=u.length;s>r;r++)a=u[r],a.value?(l.push(a.value),delete a.value):l.push(a);return t=new o(e,l),t["do"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),"delete"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),("--"===(r=this.operator)||"++"===r)&&(s=this.first.unwrapAll().value,Tt.call(V,s)>=0)&&this.error('cannot increment/decrement "'+this.first.unwrapAll().value+'"'),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case"?":return this.compileExistence(e);case"**":return this.compilePower(e);case"//":return this.compileFloorDivision(e);case"%%":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,E),o=this.second.compileToFragments(e,E),t=[].concat(i,this.makeCode(" "+this.operator+" "),o),E>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,E),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,E)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new x(e.scope.freeVariable("ref")),t=new O(new i(n,this.first))):(t=this.first,n=t),new y(new u(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),"!"===t&&this.first instanceof u?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=T?new O(this).compileToFragments(e):(r="+"===t||"-"===t,("new"===t||"typeof"===t||"delete"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof n||"new"===t&&this.first.isStatement(e))&&(this.first=new O(this.first)),i.push(this.first.compileToFragments(e,E)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},n.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield statements must occur within a function generator."),Tt.call(Object.keys(this.first),"expression")>=0&&!(this.first instanceof W)?this.isYieldReturn()?n.push(this.first.compileToFragments(e,L)):null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,E)):(n.push([this.makeCode("("+t+" ")]),n.push(this.first.compileToFragments(e,E)),n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},n.prototype.compilePower=function(e){var n;return n=new z(new x("Math"),[new t(new x("pow"))]),new o(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new z(new x("Math"),[new t(new x("floor"))]),i=new n("/",this.first,this.second),new o(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new z(new x(yt("modulo",e))),new o(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},n}(r),e.In=k=function(e){function t(e,t){this.object=e,this.array=t}return kt(t,e),t.prototype.children=["object","array"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r,s;if(this.array instanceof z&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,i=s.length;i>n;n++)if(r=s[n],r instanceof G){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,s,o,a,c,l,h,u,p;for(c=this.object.cache(e,E),u=c[0],a=c[1],l=this.negated?[" !== "," && "]:[" === "," || "],t=l[0],n=l[1],p=[],h=this.array.base.objects,i=s=0,o=h.length;o>s;i=++s)r=h[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:u,this.makeCode(t),r.compileToFragments(e,T));return E>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,F),r=i[0],n=i[1],t=[].concat(this.makeCode(yt("indexOf",e)+".call("),this.array.compileToFragments(e,F),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),st(r)===st(n)?t:(t=r.concat(this.makeCode(", "),t),F>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(r),e.Try=Y=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return kt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,s,o;return e.indent+=q,o=this.attempt.compileToFragments(e,L),t=this.recovery?(r=e.scope.freeVariable("error"),s=new x(r),this.errorVariable?this.recovery.unshift(new i(this.errorVariable,s)):void 0,[].concat(this.makeCode(" catch ("),s.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:[this.makeCode(" catch ("+r+") {}")],n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(this.tab+"try {\n"),o,this.makeCode("\n"+this.tab+"}"),t,n)},t}(r),e.Throw=W=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.jumps=D,t.prototype.makeReturn=X,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(r),e.Existence=u=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,E),g.test(i)&&!e.scope.check(i)?(r=this.negated?["===","||"]:["!==","&&"],t=r[0],n=r[1],i="typeof "+i+" "+t+' "undefined" '+n+" "+i+" "+t+" null"):i=i+" "+(this.negated?"==":"!=")+" null",[this.makeCode(C>=e.level?i:"("+i+")")]},t}(r),e.Parens=O=function(e){function t(e){this.body=e}return kt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof z&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,N),t=E>e.level&&(n instanceof I||n instanceof o||n instanceof f&&n.returns),t?i:this.wrapInBraces(i))},t}(r),e.For=f=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=s.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof z&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof z&&this.source.base instanceof j&&!this.source.properties.length,this.pattern=this.name instanceof z,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return kt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,o,a,c,l,h,u,p,d,f,m,v,b,k,w,T,C,E,N,S,D,A,I,_,$,j,B,V,P,U,G,H;return t=s.wrap([this.body]),D=t.expressions,T=D[D.length-1],(null!=T?T.jumps():void 0)instanceof M&&(this.returns=!1),B=this.range?this.source.base:this.source,j=e.scope,this.pattern||(E=this.name&&this.name.compile(e,F)),v=this.index&&this.index.compile(e,F),E&&!this.pattern&&j.find(E),v&&j.find(v),this.returns&&($=j.freeVariable("results")),b=this.object&&v||j.freeVariable("i",{single:!0}),k=this.range&&E||v||b,w=k!==b?k+" = ":"",this.step&&!this.range&&(A=this.cacheToCodeFragments(this.step.cache(e,F,ot)),V=A[0],U=A[1],P=U.match(R)),this.pattern&&(E=b),H="",d="",l="",f=this.tab+q,this.range?p=B.compileToFragments(ht(e,{index:b,name:E,step:this.step,isComplex:ot})):(G=this.source.compile(e,F),!E&&!this.own||g.test(G)||(l+=""+this.tab+(S=j.freeVariable("ref"))+" = "+G+";\n",G=S),E&&!this.pattern&&(N=E+" = "+G+"["+k+"]"),this.object||(V!==U&&(l+=""+this.tab+V+";\n"),this.step&&P&&(u=0>pt(P[0]))||(C=j.freeVariable("len")),a=""+w+b+" = 0, "+C+" = "+G+".length",c=""+w+b+" = "+G+".length - 1",r=b+" < "+C,o=b+" >= 0",this.step?(P?u&&(r=o,a=c):(r=U+" > 0 ? "+r+" : "+o,a="("+U+" > 0 ? ("+a+") : "+c+")"),m=b+" += "+U):m=""+(k!==b?"++"+b:b+"++"),p=[this.makeCode(a+"; "+r+"; "+w+m)])),this.returns&&(I=""+this.tab+$+" = [];\n",_="\n"+this.tab+"return "+$+";",t.makeReturn($)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new y(new O(this.guard).invert(),new x("continue"))):this.guard&&(t=s.wrap([new y(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new x(G+"["+k+"]"))),h=[].concat(this.makeCode(l),this.pluckDirectCall(e,t)),N&&(H="\n"+f+N+";"),this.object&&(p=[this.makeCode(k+" in "+G)],this.own&&(d="\n"+f+"if (!"+yt("hasProp",e)+".call("+G+", "+k+")) continue;")),n=t.compileToFragments(ht(e,{indent:f}),L),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(h,this.makeCode(""+(I||"")+this.tab+"for ("),p,this.makeCode(") {"+d+H),n,this.makeCode(this.tab+"}"+(_||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,s,a,l,h,u,p,d,f,m,g,v,b,y,k;for(r=[],d=t.expressions,l=h=0,u=d.length;u>h;l=++h)s=d[l],s=s.unwrapAll(),s instanceof o&&(k=null!=(f=s.variable)?f.unwrapAll():void 0,(k instanceof c||k instanceof z&&(null!=(m=k.base)?m.unwrapAll():void 0)instanceof c&&1===k.properties.length&&("call"===(g=null!=(v=k.properties[0].name)?v.value:void 0)||"apply"===g))&&(a=(null!=(b=k.base)?b.unwrapAll():void 0)||k,p=new x(e.scope.freeVariable("fn")),n=new z(p),k.base&&(y=[n,k],k.base=y[0],n=y[1]),t.expressions[l]=new o(n,s.args),r=r.concat(this.makeCode(this.tab),new i(p,a).compileToFragments(e,L),this.makeCode(";\n"))));return r},t}(J),e.Switch=H=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return kt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t,n,i,r,s,o,a,c;for(null==e&&(e={block:!0}),o=this.cases,i=0,s=o.length;s>i;i++)if(a=o[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,o;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new s([new x("void 0")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g;for(c=e.indent+q,l=e.indent=c+q,o=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,N):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=h=0,p=f.length;p>h;a=++h){for(m=f[a],r=m[0],t=m[1],g=rt([r]),u=0,d=g.length;d>u;u++)i=g[u],this.subject||(i=i.invert()),o=o.concat(this.makeCode(c+"case "),i.compileToFragments(e,N),this.makeCode(":\n"));if((n=t.compileToFragments(e,L)).length>0&&(o=o.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof M||s instanceof x&&s.jumps()&&"debugger"!==s.value||o.push(i.makeCode(l+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(c+"default:\n")].concat(Ct.call(this.otherwise.compileToFragments(e,L)),[this.makeCode("\n")])),o.push(this.makeCode(this.tab+"}")),o},t}(r),e.If=y=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition="unless"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return kt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===L||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new s([new x("void 0")]))),this.body&&(this.body=new s([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new s([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof s?e:new s([e])},t.prototype.compileStatement=function(e){var n,i,r,s,o,a,c;return r=tt(e,"chainChild"),(o=tt(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+q,s=this.condition.compileToFragments(e,N),i=this.ensureBlock(this.body).compileToFragments(ht(e,{indent:c})),a=[].concat(this.makeCode("if ("),s,this.makeCode(") {\n"),i,this.makeCode("\n"+this.tab+"}")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,L))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(ht(e,{indent:c}),L),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,C),n=this.bodyNode().compileToFragments(e,F),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,F):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=C?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(r),K={extend:function(e){return"function(child, parent) { for (var key in parent) { if ("+yt("hasProp",e)+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b = +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},L=1,N=2,F=3,C=4,E=5,T=6,q=" ",g=/^(?!\d)[$\w\x7f-\uffff]+$/,B=/^[+-]?\d+$/,m=/^[+-]?0x[\da-f]+/i,R=/^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i,b=/^['"]/,v=/^\//,yt=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,K[e](t)),i.utilities[e]=n)},ut=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},pt=function(e){return null==e?0:e.match(m)?parseInt(e,16):parseFloat(e)},at=function(e){return e instanceof x&&"arguments"===e.value&&!e.asKey},ct=function(e){return e instanceof x&&"this"===e.value&&!e.asKey||e instanceof c&&e.bound||e instanceof o&&e.isSuper},ot=function(e){return e.isComplex()||("function"==typeof e.isAssignable?e.isAssignable():void 0)},bt=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new z(t),i}}.call(this),t.exports}(),require["./sourcemap"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,s;return t.prototype.add=function(t,n,i){var r,s,o,a;return null==i&&(i={}),o=n[0],s=n[1],a=(r=this.lines)[o]||(r[o]=new e(o)),a.add(s,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,v;for(null==e&&(e={}),null==t&&(t=null),v=0,s=0,a=0,o=0,d=!1,n="",f=this.lines,u=i=0,c=f.length;c>i;u=++i)if(h=f[u])for(m=h.columns,r=0,l=m.length;l>r;r++)if(p=m[r]){for(;p.line>v;)s=0,d=!1,n+=";",v++;d&&(n+=",",d=!1),n+=this.encodeVlq(p.column-s),s=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-o),o=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inline&&(g.sourcesContent=[t]),JSON.stringify(g,null,2)},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+o;a||!t;)n=a&s,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e) -}()},t}(),t.exports=n}.call(this),t.exports}(),require["./coffee-script"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,v,b,y={}.hasOwnProperty,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(a=require("fs"),v=require("vm"),f=require("path"),t=require("./lexer").Lexer,d=require("./parser").parser,l=require("./helpers"),n=require("./sourcemap"),e.VERSION="1.10.0",e.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md"],e.helpers=l,b=function(e){return function(t,n){var i,r;null==n&&(n={});try{return e.call(this,t,n)}catch(r){if(i=r,"string"!=typeof t)throw i;throw l.updateSyntaxError(i,t,n.filename)}}},e.compile=r=b(function(e,t){var i,r,s,o,a,c,h,u,f,m,g,v,b,y,k;for(v=l.merge,o=l.extend,t=o({},t),t.sourceMap&&(g=new n),k=p.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=k.length;t>e;e++)y=k[e],y.variable&&n.push(y[1]);return n}(),c=d.parse(k).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),r=0,f="",u=0,m=c.length;m>u;u++)a=c[u],t.sourceMap&&(a.locationData&&!/^[;\s]*$/.test(a.code)&&g.add([a.locationData.first_line,a.locationData.first_column],[s,r],{noReplace:!0}),b=l.count(a.code,"\n"),s+=b,b?r=a.code.length-(a.code.lastIndexOf("\n")+1):r+=a.code.length),f+=a.code;return t.header&&(h="Generated by CoffeeScript "+this.VERSION,f="// "+h+"\n"+f),t.sourceMap?(i={js:f},i.sourceMap=g,i.v3SourceMap=g.generate(t,e),i):f}),e.tokens=b(function(e,t){return p.tokenize(e,t)}),e.nodes=b(function(e,t){return"string"==typeof e?d.parse(p.tokenize(e,t)):d.parse(e)}),e.run=function(e,t){var n,i,s,o;return null==t&&(t={}),s=require.main,s.filename=process.argv[1]=t.filename?a.realpathSync(t.filename):".",s.moduleCache&&(s.moduleCache={}),i=t.filename?f.dirname(a.realpathSync(t.filename)):a.realpathSync("."),s.paths=require("module")._nodeModulePaths(i),(!l.isCoffee(s.filename)||require.extensions)&&(n=r(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,i,s,o,a,c,l,h,u,p,d,m,g,b,k,w,T;if(null==t&&(t={}),e=e.trim()){if(o=null!=(m=v.Script.createContext)?m:v.createContext,c=null!=(g=v.isContext)?g:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=o(),b=t.sandbox;for(h in b)y.call(b,h)&&(T=b[h],w[h]=T)}w.global=w.root=w.GLOBAL=w}else w=global;if(w.__filename=t.filename||"eval",w.__dirname=f.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=require("module"),w.module=i=new n(t.modulename||"eval"),w.require=s=function(e){return n._load(e,i,!0)},i.filename=w.__filename,k=Object.getOwnPropertyNames(require),a=0,u=k.length;u>a;a++)d=k[a],"paths"!==d&&"arguments"!==d&&"caller"!==d&&(s[d]=require[d]);s.paths=i.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,i)}}}p={};for(h in t)y.call(t,h)&&(T=t[h],p[h]=T);return p.bare=!0,l=r(e,p),w===global?v.runInThisContext(l):v.runInContext(l,w)}},e.register=function(){return require("./register")},require.extensions)for(m=this.FILE_EXTENSIONS,h=0,u=m.length;u>h;h++)s=m[h],null==(i=require.extensions)[s]&&(i[s]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+s+" files.")});e._compileFile=function(e,t){var n,i,s,o,c;null==t&&(t=!1),o=a.readFileSync(e,"utf8"),c=65279===o.charCodeAt(0)?o.substring(1):o;try{n=r(c,{filename:e,sourceMap:t,literate:l.isLiterate(e)})}catch(s){throw i=s,l.updateSyntaxError(i,c,e)}return n},p=new t,d.lexer={lex:function(){var e,t;return t=d.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],d.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return d.tokens=e,this.pos=0},upcomingInput:function(){return""}},d.yy=require("./nodes"),d.yy.parseError=function(e,t){var n,i,r,s,o,a;return o=t.token,s=d.errorToken,a=d.tokens,i=s[0],r=s[1],n=s[2],r=function(){switch(!1){case s!==a[a.length-1]:return"end of input";case"INDENT"!==i&&"OUTDENT"!==i:return"indentation";case"IDENTIFIER"!==i&&"NUMBER"!==i&&"STRING"!==i&&"STRING_START"!==i&&"REGEX"!==i&&"REGEX_START"!==i:return i.replace(/_START$/,"").toLowerCase();default:return l.nameWhitespaceCharacter(r)}}(),l.throwSyntaxError("unexpected "+r,n)},o=function(e,t){var n,i,r,s,o,a,c,l,h,u,p,d;return s=void 0,r="",e.isNative()?r="native":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(r=e.getEvalOrigin()+", ")):s=e.getFileName(),s||(s=""),l=e.getLineNumber(),i=e.getColumnNumber(),u=t(s,l,i),r=u?s+":"+u[0]+":"+u[1]:s+":"+l+":"+i),o=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(h=e.getMethodName(),d=e.getTypeName(),o?(p=n="",d&&o.indexOf(d)&&(p=d+"."),h&&o.indexOf("."+h)!==o.length-h.length-1&&(n=" [as "+h+"]"),""+p+o+n+" ("+r+")"):d+"."+(h||"")+" ("+r+")"):a?"new "+(o||"")+" ("+r+")":o?o+" ("+r+")":r},g={},c=function(t){var n,i;if(g[t])return g[t];if(i=null!=f?f.extname(t):void 0,!(0>k.call(e.FILE_EXTENSIONS,i)))return n=e._compileFile(t,!0),g[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var i,r,s;return s=function(e,t,n){var i,r;return r=c(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var t,r,a;for(a=[],t=0,r=n.length;r>t&&(i=n[t],i.getFunction()!==e.run);t++)a.push(" at "+o(i,s));return a}(),""+t+"\n"+r.join("\n")+"\n"}}.call(this),t.exports}(),require["./browser"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=require("./coffee-script"),CoffeeScript.require=require,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&"undefined"!=typeof unescape&&null!==unescape&&"undefined"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,i,r;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,i=CoffeeScript.compile(e,t),n=i.js,r=i.v3SourceMap,n+"\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(r)))+"\n//# sourceURL=coffeescript"}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var s,o;if(4===r.readyState){if(0!==(o=r.status)&&200!==o)throw Error("Could not load "+e);if(s=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},r.send(null)},runScripts=function(){var e,t,n,i,r,s,o,a,c,l,h;for(h=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=h.length;n>e;e++)c=h[e],i=c.type,indexOf.call(t,i)>=0&&r.push(c);return r}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},i=function(i,r){var s,o;return s={literate:i.type===t[1]},o=i.src||i.getAttribute("data-src"),o?CoffeeScript.load(o,function(t){return e[r]=t,n()},s,!0):(s.sourceFiles=["embedded"],e[r]=[i.innerHTML,s])},r=o=0,a=e.length;a>o;r=++o)l=e[r],i(l,r);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts))}.call(this),module.exports}(),require["./coffee-script"]}();"function"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript})(this); \ No newline at end of file +(function(root){var CoffeeScript=function(){function require(e){return require[e]}return require["./helpers"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},e.repeat=s=function(e,t){var n;for(n="";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,s;for(n=[],r=0,s=e.length;s>r;r++)t=e[r],"[object Array]"===Object.prototype.toString.call(t)?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i,r;for(r=this,n=0,i=r.length;i>n;n++)if(t=r[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,s,o;for(s=e.split("\n"),o=[],n=0,r=s.length;r>n;n++)t=s[n],i&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?o.push(t):(i=/^\s*$/.test(t))?o.push(t):o.push("# "+t);return o}(),n.join("\n")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?t.first_line+1+":"+(t.first_column+1)+"-"+(t.last_line+1+":"+(t.last_column+1)):"No location data"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\|\//:/\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(".")>=0?(i=e.split("."),i.pop(),"coffee"===i[i.length-1]&&i.length>1&&i.pop(),i.join(".")):e},e.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},e.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=""+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},o=function(){var e,t,n,i,r,o,a,c,l,h,u,p,d,f,m;return this.code&&this.location?(u=this.location,a=u.first_line,o=u.first_column,l=u.last_line,c=u.last_column,null==l&&(l=a),null==c&&(c=o),r=this.filename||"[stdin]",e=this.code.split("\n")[a],m=o,i=a===l?c+1:e.length,h=e.slice(0,m).replace(/[^\s]/g," ")+s("^",i-m),"undefined"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return""+e+""},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),h=t(h)),r+":"+(a+1)+":"+(o+1)+": error: "+this.message+"\n"+e+"\n"+h):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case" ":return"space";case"\n":return"newline";case"\r":return"carriage return";case" ":return"tab";default:return e}}}.call(this),t.exports}(),require["./rewriter"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,b,y,v,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,o,a,c,l;for(l=this.tokens,i=0;c=l[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);o=c[0],k.call(s,o)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],"TERMINATOR"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return")"===(n=e[0])||"CALL_END"===n||"OUTDENT"===e[0]&&")"===this.tag(t-1)},e=function(e,t){return this.tokens["OUTDENT"===e[0]?t-1:t][0]="CALL_END"},this.scanTokens(function(n,i){return"CALL_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return"]"===(t=e[0])||"INDEX_END"===t},e=function(e){return e[0]="INDEX_END"},this.scanTokens(function(n,i){return"INDEX_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,s,o;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,s=r.length;s>=0?s>i:i>s;n=s>=0?++i:--i){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&("string"==typeof r[n]&&(r[n]=[r[n]]),o=this.tag(t+n+e),0>k.call(r[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,"@",null,":")>-1||this.indexOfTag(e,null,":")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),":"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,o,a,c,l,h;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(s,c)||this.tokens[e].generated)&&(l=this.tag(e),0>k.call(u,l))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),o=this.tag(e),k.call(s,o)>=0&&n.length&&n.pop(),e-=1;return h=this.tag(e),k.call(t,h)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,h,p){var d,m,g,b,y,v,w,T,N,C,F,L,E,x,D,_,S,R,I,A,O,$,j,M,P,B,V,U;if(U=i[0],F=(L=h>0?p[h-1]:[])[0],N=(p.length-1>h?p[h+1]:[])[0],j=function(){return e[e.length-1]},M=h,g=function(e){return h-M+e},b=function(){var e,t;return null!=(e=j())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return b()&&"("===(null!=(e=j())?e[0]:void 0)},w=function(){var e;return b()&&"{"===(null!=(e=j())?e[0]:void 0)},v=function(){var e;return b&&"CONTROL"===(null!=(e=j())?e[0]:void 0)},P=function(t){var n;return n=null!=t?t:h,e.push(["(",n,{ours:!0}]),p.splice(n,0,f("CALL_START","(")),null==t?h+=1:void 0},d=function(){return e.pop(),p.splice(h,0,f("CALL_END",")",["","end of input",i[2]])),h+=1},B=function(t,n){var r,s;return null==n&&(n=!0),r=null!=t?t:h,e.push(["{",r,{sameLine:!0,startsLine:n,ours:!0}]),s=new String("{"),s.generated=!0,p.splice(r,0,f("{",s,i)),null==t?h+=1:void 0},m=function(t){return t=null!=t?t:h,e.pop(),p.splice(t,0,f("}","}",i)),h+=1},y()&&("IF"===U||"TRY"===U||"FINALLY"===U||"CATCH"===U||"CLASS"===U||"SWITCH"===U))return e.push(["CONTROL",h,{ours:!0}]),g(1);if("INDENT"===U&&b()){if("=>"!==F&&"->"!==F&&"["!==F&&"("!==F&&","!==F&&"{"!==F&&"TRY"!==F&&"ELSE"!==F&&"="!==F)for(;y();)d();return v()&&e.pop(),e.push([U,h]),g(1)}if(k.call(s,U)>=0)return e.push([U,h]),g(1);if(k.call(r,U)>=0){for(;b();)y()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||"?"===U&&h>0&&!p[h-1].spaced)&&(k.call(o,N)>=0||k.call(l,N)>=0&&!(null!=(E=p[h+1])?E.spaced:void 0)&&!(null!=(x=p[h+1])?x.newLine:void 0)))return"?"===U&&(U=i[0]="FUNC_EXIST"),P(h+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(h+1,"INDENT")>-1&&this.looksObjectish(h+2)&&!this.findTagsBackwards(h,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return P(h+1),e.push(["INDENT",h+2]),g(3);if(":"===U){for(I=function(){var e;switch(!1){case e=this.tag(h-1),0>k.call(r,e):return t[1];case"@"!==this.tag(h-2):return h-2;default:return h-1}}.call(this);"HERECOMMENT"===this.tag(I-2);)I-=2;return this.insideForDeclaration="FOR"===N,V=0===I||(D=this.tag(I-1),k.call(u,D)>=0)||p[I-1].newLine,j()&&(_=j(),$=_[0],O=_[1],("{"===$||"INDENT"===$&&"{"===this.tag(O-1))&&(V||","===this.tag(I-1)||"{"===this.tag(I-1)))?g(1):(B(I,!!V),g(2))}if(w()&&k.call(u,U)>=0&&(j()[2].sameLine=!1),T="OUTDENT"===F||L.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;b();)if(S=j(),$=S[0],O=S[1],R=S[2],A=R.sameLine,V=R.startsLine,y()&&","!==F)d();else if(w()&&!this.insideForDeclaration&&A&&"TERMINATOR"!==U&&":"!==F)m();else{if(!w()||"TERMINATOR"!==U||","===F||V&&this.looksObjectish(h+1))break;if("HERECOMMENT"===N)return g(1);m()}if(!(","!==U||this.looksObjectish(h+1)||!w()||this.insideForDeclaration||"TERMINATOR"===N&&this.looksObjectish(h+2)))for(C="OUTDENT"===N?1:0;w();)m(h+C);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,s,o,a,c;return e[2]?1:e.generated||e.explicit?("{"===e[0]&&(s=null!=(a=n[t+1])?a[2]:void 0)?(r=s.first_line,i=s.first_column):(o=null!=(c=n[t-1])?c[2]:void 0)?(r=o.last_line,i=o.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,s,o;return o=r=s=null,t=function(e,t){var r,s,a,c;return";"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(s=this.tag(t+1),k.call(i,s)>=0))&&!("ELSE"===e[0]&&"THEN"!==o)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==o&&"=>"!==o)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,a,c){var l,h,u,p,f,m;if(m=n[0],"TERMINATOR"===m){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(u=this.tag(a+1),k.call(i,u)>=0)return c.splice(a,1),0}if("CATCH"===m)for(l=h=1;2>=h;l=++h)if("OUTDENT"===(p=this.tag(a+l))||"TERMINATOR"===p||"FINALLY"===p)return c.splice.apply(c,[a+l,0].concat(w.call(this.indentation()))),2+l;return k.call(d,m)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==m||"IF"!==this.tag(a+1))?(o=m,f=this.indentation(c[a]),r=f[0],s=f[1],"THEN"===o&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),"THEN"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],"TERMINATOR"===i||"INDENT"===i&&0>k.call(d,n)},e=function(e){return"INDENT"!==e[0]||e.generated&&!e.fromThen?n[0]="POST_"+n[0]:void 0},this.scanTokens(function(i,r){return"IF"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=["INDENT",2],n=["OUTDENT",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]],e.INVERSES=h={},s=[],r=[],m=0,b=t.length;b>m;m++)y=t[m],g=y[0],v=y[1],s.push(h[v]=g),r.push(h[g]=v);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],o=["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","UNDEFINED","NULL","BOOL","UNARY","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],l=["+","-"],a=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],d=["ELSE","->","=>","TRY","FINALLY","THEN"],p=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],u=["TERMINATOR","INDENT","OUTDENT"],n=[".","?.","::","?::"]}.call(this),t.exports}(),require["./lexer"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,b,y,v,k,w,T,N,C,F,L,E,x,D,_,S,R,I,A,O,$,j,M,P,B,V,U,H,G,q,Y,W,X,J,z,K,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,lt,ht,ut=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},pt=[].slice;ot=require("./rewriter"),B=ot.Rewriter,w=ot.INVERSES,at=require("./helpers"),tt=at.count,lt=at.starts,et=at.compact,ct=at.repeat,nt=at.invertLiterate,st=at.locationDataToString,ht=at.throwSyntaxError,e.Lexer=x=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.seenFor=!1,this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new B).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(J,""),Z.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=nt(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,l,h,u,p,d,f,m,g,y;return(l=b.exec(this.chunk))?(c=l[0],i=l[1],t=l[2],r=i.length,h=void 0,"own"===i&&"FOR"===this.tag()?(this.token("OWN",i),i.length):"from"===i&&"YIELD"===this.tag()?(this.token("FROM",i),i.length):(p=this.tokens,u=p[p.length-1],g=t||null!=u&&("."===(d=u[0])||"?."===d||"::"===d||"?::"===d||!u.spaced&&"@"===u[0])?"PROPERTY":"IDENTIFIER","IDENTIFIER"===g&&(ut.call(N,i)>=0||ut.call(a,i)>=0)&&(g=i.toUpperCase(),"WHEN"===g&&(f=this.tag(),ut.call(F,f)>=0)?g="LEADING_WHEN":"FOR"===g?this.seenFor=!0:"UNLESS"===g?g="IF":ut.call(z,g)>=0?g="UNARY":ut.call(M,g)>=0&&("INSTANCEOF"!==g&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION","!"===this.value()&&(h=this.tokens.pop(),i="!"+i)))),"IDENTIFIER"===g&&ut.call(P,i)>=0&&this.error("reserved word '"+i+"'",{length:i.length}),"PROPERTY"!==g&&(ut.call(s,i)>=0&&(e=i,i=o[i]),g=function(){switch(i){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),y=this.token(g,i,0,r),e&&(y.origin=[g,e,y[2]]),h&&(m=[h[2].first_line,h[2].first_column],y[2].first_line=m[0],y[2].first_column=m[1]),t&&(n=c.lastIndexOf(":"),this.token(":",":",n,t.length)),c.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r,s,o;return(n=R.exec(this.chunk))?(i=n[0],t=i.length,/^0[BOX]/.test(i)?this.error("radix prefix in '"+i+"' must be lowercase",{offset:1}):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation in '"+i+"' must be indicated with a lowercase 'e'",{offset:i.indexOf("E")}):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'",{length:t}):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'",{length:t}),(s=/^0o([0-7]+)/.exec(i))?(r=parseInt(s[1],8),i="0x"+r.toString(16)):(e=/^0b([01]+)/.exec(i))?(r=parseInt(e[1],2),i="0x"+r.toString(16)):r=parseFloat(i),o=Infinity===r?"INFINITY":"NUMBER",this.token(o,i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,s,o,a,c,l,h,u,m,g,b,y;if(h=(W.exec(this.chunk)||[])[0],!h)return 0;if(g=function(){switch(h){case"'":return Y;case'"':return G;case"'''":return f;case'"""':return p}}(),s=3===h.length,u=this.matchWithInterpolations(g,h),y=u.tokens,r=u.index,e=y.length-1,n=h.charAt(0),s){for(a=null,i=function(){var e,t,n;for(n=[],o=e=0,t=y.length;t>e;o=++e)b=y[o],"NEOSTRING"===b[0]&&n.push(b[1]);return n}().join("#{}");l=d.exec(i);)t=l[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp("^"+a,"gm")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),0===i&&(n=n.replace(C,"")),i===e&&(n=n.replace(X,"")),c&&(n=n.replace(c,"")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(U,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?"":" "})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=u.exec(e))&&this.error("block comments cannot contain "+n[0],{offset:n.index,length:n[0].length}),t.indexOf("\n")>=0&&(t=t.replace(RegExp("\\n"+ct(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,s,o,a,c,l,h,u,p,d;switch(!1){case!(o=j.exec(this.chunk)):this.error("regular expressions cannot begin with "+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(m,"///")):d=o.tokens,s=o.index;break;case!(o=O.exec(this.chunk)):if(p=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=p.length,l=this.tokens,c=l[l.length-1],c)if(c.spaced&&(h=c[0],ut.call(i,h)>=0)){if(!t||A.test(p))return 0}else if(u=c[0],ut.call(S,u)>=0)return 0;t||this.error("missing / (unclosed regex)");break;default:return 0}switch(r=$.exec(this.chunk.slice(s))[0],n=s+r.length,a=this.makeToken("REGEX",null,0,n),!1){case!!Q.test(r):this.error("invalid regular expression flags "+r,{offset:s,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token("REGEX",""+this.makeDelimitedLiteral(e,{delimiter:"/"})+r,0,n,a);break;default:this.token("REGEX_START","(",0,0,a),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(d,{delimiter:'"',"double":!0},this.formatHeregex),r&&(this.token(",",",",s,0),this.token("STRING",'"'+r+'"',s,r.length)),this.token(")",")",n,0),this.token("REGEX_END",")",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=_.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf("\n"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token("INDENT",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,s,o;for(i=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(r=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ut.call(y,o)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);";"===this.value();)this.tokens.pop();return"TERMINATOR"===this.tag()||t||this.token("TERMINATOR","\n",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=Z.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;";"===this.value();)this.tokens.pop();return"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return"\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,a,c,u,p,d,f,m,g;if((e=I.exec(this.chunk))?(g=e[0],r.test(g)&&this.tagParameters()):g=this.chunk.charAt(0),f=g,o=this.tokens,s=o[o.length-1],s&&ut.call(["="].concat(pt.call(h)),g)>=0&&(d=!1,"="!==g||"||"!==(a=s[1])&&"&&"!==a||s.spaced||(s[0]="COMPOUND_ASSIGN",s[1]+="=",s=this.tokens[this.tokens.length-2],d=!0),s&&"PROPERTY"!==s[0]&&(n=null!=(c=s.origin)?c:s,t=it(s[1],n[1]),t&&this.error(t,n[2])),d))return g.length;if(";"===g)this.seenFor=!1,f="TERMINATOR";else if(ut.call(D,g)>=0)f="MATH";else if(ut.call(l,g)>=0)f="COMPARE";else if(ut.call(h,g)>=0)f="COMPOUND_ASSIGN";else if(ut.call(z,g)>=0)f="UNARY";else if(ut.call(K,g)>=0)f="UNARY_MATH";else if(ut.call(V,g)>=0)f="SHIFT";else if(ut.call(E,g)>=0||"?"===g&&(null!=s?s.spaced:void 0))f="LOGIC";else if(s&&!s.spaced)if("("===g&&(u=s[0],ut.call(i,u)>=0))"?"===s[0]&&(s[0]="FUNC_EXIST"),f="CALL_START";else if("["===g&&(p=s[0],ut.call(v,p)>=0))switch(f="INDEX_START",s[0]){case"?":s[0]="INDEX_SOAK"}switch(m=this.makeToken(f,g),g){case"(":case"{":case"[":this.ends.push({tag:w[g],origin:m});break;case")":case"}":case"]":this.pair(g)}return this.tokens.push(m),g.length},e.prototype.tagParameters=function(){var e,t,n,i;if(")"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]="PARAM_END";n=i[--e];)switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return"("===n[0]?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,s,o,a,c,l,h,u,p,d,f,m,g,b;if(b=[],h=n.length,this.chunk.slice(0,h)!==n)return null;for(m=this.chunk.slice(h);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:"/"===n.charAt(0),offsetInChunk:h}),b.push(this.makeToken("NEOSTRING",g,h)),m=m.slice(g.length),h+=g.length,"#{"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(h+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),l=d.tokens,o=d.index,o+=1,u=l[0],i=l[l.length-1],u[0]=u[1]="(",i[0]=i[1]=")",i.origin=["","end of interpolation",i[2]],"TERMINATOR"===(null!=(f=l[1])?f[0]:void 0)&&l.splice(1,1),b.push(["TOKENS",l]),m=m.slice(o),h+=o}return m.slice(0,n.length)!==n&&this.error("missing "+n,{length:n.length}),s=b[0],a=b[b.length-1],s[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:b,index:h+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,s,o,a,c,l,h,u,p,d,f,m,g,b,y;for(e.length>1&&(u=this.token("STRING_START","(",0,0)),s=this.tokens.length,o=a=0,l=e.length;l>a;o=++a){switch(g=e[o],m=g[0],y=g[1],m){case"TOKENS":if(2===y.length)continue;h=y[0],b=y;break;case"NEOSTRING":if(i=n(g[1],o),0===i.length){if(0!==o)continue;r=this.tokens.length}2===o&&null!=r&&this.tokens.splice(r,2),g[0]="STRING",g[1]=this.makeDelimitedLiteral(i,t),h=g,b=[g]}this.tokens.length>s&&(p=this.token("+","+"),p[2]={first_line:h[2].first_line,first_column:h[2].first_column,last_line:h[2].first_line,last_column:h[2].first_column}),(d=this.tokens).push.apply(d,b)}return u?(c=e[e.length-1],u.origin=["STRING",null,{first_line:u[2].first_line,first_column:u[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token("STRING_END",")"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,s;return i=this.ends,n=i[i.length-1],e!==(s=null!=n?n.tag:void 0)?("OUTDENT"!==s&&this.error("unmatched "+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=tt(s,"\n"),t=this.chunkColumn,i>0?(r=s.split("\n"),n=r[r.length-1],t=n.length):t+=s.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,s,o,a,c;return null==n&&(n=0),null==i&&(i=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],r=Math.max(0,i-1),a=this.getLineAndColumnFromChunk(n+r),s.last_line=a[0],s.last_column=a[1],c=[e,t,s]},e.prototype.token=function(e,t,n,i,r){var s;return s=this.makeToken(e,t,n,i),r&&(s.origin=r),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return L.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.formatString=function(e){return e.replace(q,"$1")},e.prototype.formatHeregex=function(e){return e.replace(g,"$1$2")},e.prototype.validateEscapes=function(e,t){var n,i,r,s,o,a,c,l;return null==t&&(t={}),s=k.exec(e),!s||(s[0],n=s[1],a=s[2],i=s[3],l=s[4],t.isRegex&&a&&"0"!==a.charAt(0))?void 0:(o=a?"octal escape sequences are not allowed":"invalid escape sequence",r="\\"+(a||i||l),this.error(o+" "+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+s.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),""===e&&"/"===t.delimiter&&(e="(?:)"),n=RegExp("(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?("+t.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),e=e.replace(n,function(e,n,i,r,s,o,a,c,l){switch(!1){case!n:return t.double?n+n:n;case!i:return"\\x00";case!r:return"\\"+r;case!s:return"\\n";case!o:return"\\r";case!a:return"\\u2028";case!c:return"\\u2029";case!l:return t.double?"\\"+l:l}}),""+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,s,o,a;return null==t&&(t={}),r="first_line"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),i=o[0],n=o[1],o,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),ht(e,r)},e}(),it=function(e,t){switch(null==t&&(t=e),!1){case 0>ut.call(pt.call(N).concat(pt.call(a)),e):return"keyword '"+t+"' can't be assigned";case 0>ut.call(H,e):return"'"+t+"' can't be assigned";case 0>ut.call(P,e):return"reserved word '"+t+"' can't be assigned";default:return!1}},e.isUnassignable=it,N=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","if","else","switch","for","while","do","try","catch","finally","class","extends","super"],a=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","await"],o={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s=function(){var e;e=[];for(rt in o)e.push(rt);return e}(),a=a.concat(s),P=["case","default","function","var","void","with","const","let","enum","export","import","native","implements","interface","package","private","protected","public","static"],H=["arguments","eval"],e.JS_FORBIDDEN=N.concat(P).concat(H),t=65279,b=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/,R=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,I=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,Z=/^[^\n\S]+/,c=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,r=/^[-=]>/,_=/^(?:\n[^\n\S]*)+/,T=/^`[^\\`]*(?:\\.[^\\`]*)*`/,W=/^(?:'''|"""|'|")/,Y=/^(?:[^\\']|\\[\s\S])*/,G=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/,f=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/,q=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g,U=/\s*\n\s*/g,d=/\n+([^\n\S]*)(?=\S)/g,O=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,$=/^\w*/,Q=/^(?!.*(.).*\1)[imgy]*$/,m=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/,g=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g,j=/^(\/|\/{3}\s*)(\*)/,A=/^\/=?\s/,u=/\*\//,L=/^\s*(?:,|\??\.(?![.\d])|::)/,k=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/,C=/^[^\n\S]*\n/,X=/\n[^\n\S]*$/,J=/\s+$/,h=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],z=["NEW","TYPEOF","DELETE","DO"],K=["!","~"],E=["&&","||","&","|","^"],V=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],D=["*","/","%","//","%%"],M=["IN","OF","INSTANCEOF"],n=["TRUE","FALSE"],i=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER"],v=i.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::"]),S=v.concat(["++","--"]),F=["INDENT","OUTDENT","TERMINATOR"],y=[")","}","]"]}.call(this),t.exports}(),require["./parser"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,22],i=[1,49],r=[1,82],s=[1,78],o=[1,83],a=[1,84],c=[1,80],l=[1,81],h=[1,55],u=[1,57],p=[1,58],d=[1,59],f=[1,60],m=[1,61],g=[1,50],b=[1,37],y=[1,51],v=[1,31],k=[1,67],w=[1,68],T=[1,77],N=[1,47],C=[1,66],F=[1,64],L=[1,65],E=[1,63],x=[1,42],D=[1,48],_=[1,62],S=[1,72],R=[1,73],I=[1,74],A=[1,75],O=[1,46],$=[1,71],j=[1,33],M=[1,34],P=[1,35],B=[1,36],V=[1,38],U=[1,39],H=[1,85],G=[1,6,32,42,120],q=[1,95],Y=[1,88],W=[1,87],X=[1,86],J=[1,89],z=[1,90],K=[1,91],Q=[1,92],Z=[1,93],et=[1,94],tt=[1,98],nt=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],it=[1,104],rt=[1,105],st=[1,106],ot=[1,107],at=[1,109],ct=[1,110],lt=[1,103],ht=[2,130],ut=[1,6,32,42,120,122,124,128,144],pt=[1,6,31,32,42,66,71,74,83,84,85,86,88,90,91,95,102,103,104,109,111,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],dt=[2,96],ft=[1,6,31,32,42,46,66,71,74,83,84,85,86,88,90,91,95,102,103,104,109,111,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],mt=[2,75],gt=[1,117],bt=[1,122],yt=[1,123],vt=[1,125],kt=[1,129],wt=[1,127],Tt=[1,6,31,32,42,55,66,71,74,83,84,85,86,88,90,91,95,102,103,104,109,111,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],Nt=[2,93],Ct=[1,6,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],Ft=[2,27],Lt=[1,155],Et=[2,63],xt=[1,164],Dt=[1,166],_t=[1,161],St=[1,168],Rt=[1,170],It=[1,6,31,32,42,55,66,71,74,83,84,85,86,88,90,91,95,97,102,103,104,109,111,120,122,123,124,128,129,144,147,148,149,150,151,152,153,154,155,156,157,158],At=[2,112],Ot=[1,6,31,32,42,58,66,71,74,83,84,85,86,88,90,91,95,102,103,104,109,111,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],$t=[1,6,31,32,42,55,58,66,71,74,83,84,85,86,88,90,91,95,97,102,103,104,109,111,120,122,123,124,128,129,135,136,144,147,148,149,150,151,152,153,154,155,156,157,158],jt=[1,220],Mt=[1,219],Pt=[2,73],Bt=[1,227],Vt=[6,31,32,66,71],Ut=[6,31,32,55,66,71,74],Ht=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,147,148,152,153,154,155,156,157],Gt=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,147,148,152,154,155,156,157],qt=[83,84,85,86,88,91,102,103],Yt=[1,247],Wt=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144],Xt=[2,62],Jt=[2,151],zt=[1,6,31,32,42,55,66,71,74,83,84,85,86,88,90,91,95,102,103,104,109,111,120,122,123,124,128,129,135,136,144,147,148,151,152,153,154,155,156,157],Kt=[1,258],Qt=[6,31,32,71,104,109],Zt=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,129,144],en=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,123,129,144],tn=[135,136],nn=[71,135,136],rn=[1,271],sn=[6,31,32,71,95],on=[6,31,32,58,71,95],an=[6,31,32,55,58,71,95],cn=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,147,148,154,155,156,157],ln=[14,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,64,68,69,90,93,96,101,106,107,108,114,118,119,122,124,126,128,137,143,145,146,147,148,149,150],hn=[2,140],un=[6,31,32],pn=[2,74],dn=[1,283],fn=[1,284],mn=[1,6,31,32,42,66,71,74,90,95,104,109,111,116,117,120,122,123,124,128,129,139,141,144,147,148,151,152,153,154,155,156,157],gn=[32,139,141],bn=[1,6,32,42,66,71,74,90,95,104,109,111,120,123,129,144],yn=[2,88],vn=[1,307],kn=[1,308],wn=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,139,144,147,148,151,152,153,154,155,156,157],Tn=[1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,124,128,129,144],Nn=[1,320],Cn=[1,321],Fn=[6,31,32,71],Ln=[1,6,31,32,42,66,71,74,90,95,104,109,111,116,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],En=[31,71],xn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,FuncDirective:9,YieldReturn:10,AwaitReturn:11,Return:12,Comment:13,STATEMENT:14,Value:15,Invocation:16,Code:17,Operation:18,Assign:19,If:20,Try:21,While:22,For:23,Switch:24,Class:25,Throw:26,Yield:27,YIELD:28,FROM:29,Block:30,INDENT:31,OUTDENT:32,Identifier:33,IDENTIFIER:34,Property:35,PROPERTY:36,AlphaNumeric:37,NUMBER:38,String:39,STRING:40,STRING_START:41,STRING_END:42,Regex:43,REGEX:44,REGEX_START:45,REGEX_END:46,Literal:47,JS:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,Assignable:54,"=":55,AssignObj:56,ObjAssignable:57,":":58,SimpleObjAssignable:59,ThisProperty:60,RETURN:61,AWAIT:62,HERECOMMENT:63,PARAM_START:64,ParamList:65,PARAM_END:66,FuncGlyph:67,"->":68,"=>":69,OptComma:70,",":71,Param:72,ParamVar:73,"...":74,Array:75,Object:76,Splat:77,SimpleAssignable:78,Accessor:79,Parenthetical:80,Range:81,This:82,".":83,"?.":84,"::":85,"?::":86,Index:87,INDEX_START:88,IndexValue:89,INDEX_END:90,INDEX_SOAK:91,Slice:92,"{":93,AssignList:94,"}":95,CLASS:96,EXTENDS:97,OptFuncExist:98,Arguments:99,Super:100,SUPER:101,FUNC_EXIST:102,CALL_START:103,CALL_END:104,ArgList:105,THIS:106,"@":107,"[":108,"]":109,RangeDots:110,"..":111,Arg:112,SimpleArgs:113,TRY:114,Catch:115,FINALLY:116,CATCH:117,THROW:118,"(":119,")":120,WhileSource:121,WHILE:122,WHEN:123,UNTIL:124,Loop:125,LOOP:126,ForBody:127,FOR:128,BY:129,ForStart:130,ForSource:131,ForVariables:132,OWN:133,ForValue:134,FORIN:135,FOROF:136,SWITCH:137,Whens:138,ELSE:139,When:140,LEADING_WHEN:141,IfBlock:142,IF:143,POST_IF:144,UNARY:145,UNARY_MATH:146,"-":147,"+":148,"--":149,"++":150,"?":151,MATH:152,"**":153,SHIFT:154,COMPARE:155,LOGIC:156,RELATION:157,COMPOUND_ASSIGN:158,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",14:"STATEMENT",28:"YIELD",29:"FROM",31:"INDENT",32:"OUTDENT",34:"IDENTIFIER",36:"PROPERTY",38:"NUMBER",40:"STRING",41:"STRING_START",42:"STRING_END",44:"REGEX",45:"REGEX_START",46:"REGEX_END",48:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",55:"=",58:":",61:"RETURN",62:"AWAIT",63:"HERECOMMENT",64:"PARAM_START",66:"PARAM_END",68:"->",69:"=>",71:",",74:"...",83:".",84:"?.",85:"::",86:"?::",88:"INDEX_START",90:"INDEX_END",91:"INDEX_SOAK",93:"{",95:"}",96:"CLASS",97:"EXTENDS",101:"SUPER",102:"FUNC_EXIST",103:"CALL_START",104:"CALL_END",106:"THIS",107:"@",108:"[",109:"]",111:"..",114:"TRY",116:"FINALLY",117:"CATCH",118:"THROW",119:"(",120:")",122:"WHILE",123:"WHEN",124:"UNTIL",126:"LOOP",128:"FOR",129:"BY",133:"OWN",135:"FORIN",136:"FOROF",137:"SWITCH",139:"ELSE",141:"LEADING_WHEN",143:"IF",144:"POST_IF",145:"UNARY",146:"UNARY_MATH",147:"-",148:"+",149:"--",150:"++",151:"?",152:"MATH",153:"**",154:"SHIFT",155:"COMPARE",156:"LOGIC",157:"RELATION",158:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[9,1],[9,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[27,1],[27,2],[27,3],[30,2],[30,3],[33,1],[35,1],[37,1],[37,1],[39,1],[39,3],[43,1],[43,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[19,3],[19,4],[19,5],[56,1],[56,3],[56,5],[56,3],[56,5],[56,1],[59,1],[59,1],[59,1],[57,1],[57,1],[12,2],[12,1],[10,3],[10,2],[11,3],[11,2],[13,1],[17,5],[17,2],[67,1],[67,1],[70,0],[70,1],[65,0],[65,1],[65,3],[65,4],[65,6],[72,1],[72,2],[72,3],[72,1],[73,1],[73,1],[73,1],[73,1],[77,2],[78,1],[78,2],[78,2],[78,1],[54,1],[54,1],[54,1],[15,1],[15,1],[15,1],[15,1],[15,1],[79,2],[79,2],[79,2],[79,2],[79,1],[79,1],[87,3],[87,2],[89,1],[89,1],[76,4],[94,0],[94,1],[94,3],[94,4],[94,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[16,3],[16,3],[16,1],[100,1],[100,2],[98,0],[98,1],[99,2],[99,4],[82,1],[82,1],[60,2],[75,2],[75,4],[110,1],[110,1],[81,5],[92,3],[92,2],[92,2],[92,1],[105,1],[105,3],[105,4],[105,4],[105,6],[112,1],[112,1],[112,1],[113,1],[113,3],[21,2],[21,3],[21,4],[21,5],[115,3],[115,3],[115,2],[26,2],[80,3],[80,5],[121,2],[121,4],[121,2],[121,4],[22,2],[22,2],[22,2],[22,1],[125,2],[125,2],[23,2],[23,2],[23,2],[127,2],[127,4],[127,2],[130,2],[130,3],[134,1],[134,1],[134,1],[134,1],[132,1],[132,3],[131,2],[131,2],[131,4],[131,4],[131,4],[131,6],[131,6],[24,5],[24,7],[24,4],[24,6],[138,1],[138,2],[140,3],[140,4],[142,3],[142,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(e,t,n,i,r,s,o){var a=s.length-1; +switch(r){case 1:return this.$=i.addLocationDataFn(o[a],o[a])(new i.Block);case 2:return this.$=s[a];case 3:this.$=i.addLocationDataFn(o[a],o[a])(i.Block.wrap([s[a]]));break;case 4:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].push(s[a]));break;case 5:this.$=s[a-1];break;case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 35:case 40:case 42:case 56:case 57:case 58:case 59:case 60:case 61:case 73:case 74:case 84:case 85:case 86:case 87:case 92:case 93:case 96:case 100:case 106:case 127:case 151:case 152:case 154:case 184:case 185:case 201:case 207:this.$=s[a];break;case 13:this.$=i.addLocationDataFn(o[a],o[a])(new i.StatementLiteral(s[a]));break;case 27:this.$=i.addLocationDataFn(o[a],o[a])(new i.Op(s[a],new i.Value(new i.Literal(""))));break;case 28:case 211:case 212:case 215:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(s[a-1],s[a]));break;case 29:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-2].concat(s[a-1]),s[a]));break;case 30:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Block);break;case 31:case 107:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-1]);break;case 32:this.$=i.addLocationDataFn(o[a],o[a])(new i.IdentifierLiteral(s[a]));break;case 33:this.$=i.addLocationDataFn(o[a],o[a])(new i.PropertyName(s[a]));break;case 34:this.$=i.addLocationDataFn(o[a],o[a])(new i.NumberLiteral(s[a]));break;case 36:this.$=i.addLocationDataFn(o[a],o[a])(new i.StringLiteral(s[a]));break;case 37:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.StringWithInterpolations(s[a-1]));break;case 38:this.$=i.addLocationDataFn(o[a],o[a])(new i.RegexLiteral(s[a]));break;case 39:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.RegexWithInterpolations(s[a-1].args));break;case 41:this.$=i.addLocationDataFn(o[a],o[a])(new i.PassthroughLiteral(s[a]));break;case 43:this.$=i.addLocationDataFn(o[a],o[a])(new i.UndefinedLiteral);break;case 44:this.$=i.addLocationDataFn(o[a],o[a])(new i.NullLiteral);break;case 45:this.$=i.addLocationDataFn(o[a],o[a])(new i.BooleanLiteral(s[a]));break;case 46:this.$=i.addLocationDataFn(o[a],o[a])(new i.InfinityLiteral(s[a]));break;case 47:this.$=i.addLocationDataFn(o[a],o[a])(new i.NaNLiteral);break;case 48:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a]));break;case 49:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a]));break;case 50:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1]));break;case 51:case 89:case 94:case 95:case 97:case 98:case 99:case 186:case 187:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(s[a]));break;case 52:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],"object",{operatorToken:i.addLocationDataFn(o[a-1])(new i.Literal(s[a-1]))}));break;case 53:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],"object",{operatorToken:i.addLocationDataFn(o[a-3])(new i.Literal(s[a-3]))}));break;case 54:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],null,{operatorToken:i.addLocationDataFn(o[a-1])(new i.Literal(s[a-1]))}));break;case 55:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],null,{operatorToken:i.addLocationDataFn(o[a-3])(new i.Literal(s[a-3]))}));break;case 62:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Return(s[a]));break;case 63:this.$=i.addLocationDataFn(o[a],o[a])(new i.Return);break;case 64:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.YieldReturn(s[a]));break;case 65:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.YieldReturn);break;case 66:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.AwaitReturn(s[a]));break;case 67:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.AwaitReturn);break;case 68:this.$=i.addLocationDataFn(o[a],o[a])(new i.Comment(s[a]));break;case 69:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Code(s[a-3],s[a],s[a-1]));break;case 70:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Code([],s[a],s[a-1]));break;case 71:this.$=i.addLocationDataFn(o[a],o[a])("func");break;case 72:this.$=i.addLocationDataFn(o[a],o[a])("boundfunc");break;case 75:case 112:this.$=i.addLocationDataFn(o[a],o[a])([]);break;case 76:case 113:case 146:case 188:this.$=i.addLocationDataFn(o[a],o[a])([s[a]]);break;case 77:case 114:case 147:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].concat(s[a]));break;case 78:case 115:case 148:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-3].concat(s[a]));break;case 79:case 116:case 150:this.$=i.addLocationDataFn(o[a-5],o[a])(s[a-5].concat(s[a-2]));break;case 80:this.$=i.addLocationDataFn(o[a],o[a])(new i.Param(s[a]));break;case 81:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Param(s[a-1],null,!0));break;case 82:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Param(s[a-2],s[a]));break;case 83:case 153:this.$=i.addLocationDataFn(o[a],o[a])(new i.Expansion);break;case 88:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Splat(s[a-1]));break;case 90:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].add(s[a]));break;case 91:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(s[a-1],[].concat(s[a])));break;case 101:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a]));break;case 102:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a],"soak"));break;case 103:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.PropertyName("prototype"))),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 104:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.PropertyName("prototype"),"soak")),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 105:this.$=i.addLocationDataFn(o[a],o[a])(new i.Access(new i.PropertyName("prototype")));break;case 108:this.$=i.addLocationDataFn(o[a-1],o[a])(i.extend(s[a],{soak:!0}));break;case 109:this.$=i.addLocationDataFn(o[a],o[a])(new i.Index(s[a]));break;case 110:this.$=i.addLocationDataFn(o[a],o[a])(new i.Slice(s[a]));break;case 111:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Obj(s[a-2],s[a-3].generated));break;case 117:this.$=i.addLocationDataFn(o[a],o[a])(new i.Class);break;case 118:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(null,null,s[a]));break;case 119:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(null,s[a]));break;case 120:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(null,s[a-1],s[a]));break;case 121:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(s[a]));break;case 122:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(s[a-1],null,s[a]));break;case 123:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(s[a-2],s[a]));break;case 124:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Class(s[a-3],s[a-1],s[a]));break;case 125:case 126:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Call(s[a-2],s[a],s[a-1]));break;case 128:this.$=i.addLocationDataFn(o[a],o[a])(new i.SuperCall);break;case 129:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.SuperCall(s[a]));break;case 130:this.$=i.addLocationDataFn(o[a],o[a])(!1);break;case 131:this.$=i.addLocationDataFn(o[a],o[a])(!0);break;case 132:this.$=i.addLocationDataFn(o[a-1],o[a])([]);break;case 133:case 149:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-2]);break;case 134:case 135:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(new i.ThisLiteral));break;case 136:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(i.addLocationDataFn(o[a-1])(new i.ThisLiteral),[i.addLocationDataFn(o[a])(new i.Access(s[a]))],"this"));break;case 137:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Arr([]));break;case 138:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Arr(s[a-2]));break;case 139:this.$=i.addLocationDataFn(o[a],o[a])("inclusive");break;case 140:this.$=i.addLocationDataFn(o[a],o[a])("exclusive");break;case 141:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Range(s[a-3],s[a-1],s[a-2]));break;case 142:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Range(s[a-2],s[a],s[a-1]));break;case 143:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(s[a-1],null,s[a]));break;case 144:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(null,s[a],s[a-1]));break;case 145:this.$=i.addLocationDataFn(o[a],o[a])(new i.Range(null,null,s[a]));break;case 155:this.$=i.addLocationDataFn(o[a-2],o[a])([].concat(s[a-2],s[a]));break;case 156:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Try(s[a]));break;case 157:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Try(s[a-1],s[a][0],s[a][1]));break;case 158:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Try(s[a-2],null,null,s[a]));break;case 159:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Try(s[a-3],s[a-2][0],s[a-2][1],s[a]));break;case 160:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-1],s[a]]);break;case 161:this.$=i.addLocationDataFn(o[a-2],o[a])([i.addLocationDataFn(o[a-1])(new i.Value(s[a-1])),s[a]]);break;case 162:this.$=i.addLocationDataFn(o[a-1],o[a])([null,s[a]]);break;case 163:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Throw(s[a]));break;case 164:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Parens(s[a-1]));break;case 165:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Parens(s[a-2]));break;case 166:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a]));break;case 167:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{guard:s[a]}));break;case 168:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a],{invert:!0}));break;case 169:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{invert:!0,guard:s[a]}));break;case 170:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].addBody(s[a]));break;case 171:case 172:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a].addBody(i.addLocationDataFn(o[a-1])(i.Block.wrap([s[a-1]]))));break;case 173:this.$=i.addLocationDataFn(o[a],o[a])(s[a]);break;case 174:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.BooleanLiteral("true"))).addBody(s[a]));break;case 175:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.BooleanLiteral("true"))).addBody(i.addLocationDataFn(o[a])(i.Block.wrap([s[a]]))));break;case 176:case 177:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a-1],s[a]));break;case 178:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a],s[a-1]));break;case 179:this.$=i.addLocationDataFn(o[a-1],o[a])({source:i.addLocationDataFn(o[a])(new i.Value(s[a]))});break;case 180:this.$=i.addLocationDataFn(o[a-3],o[a])({source:i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),step:s[a]});break;case 181:this.$=i.addLocationDataFn(o[a-1],o[a])(function(){return s[a].own=s[a-1].own,s[a].name=s[a-1][0],s[a].index=s[a-1][1],s[a]}());break;case 182:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a]);break;case 183:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return s[a].own=!0,s[a]}());break;case 189:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-2],s[a]]);break;case 190:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a]});break;case 191:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a],object:!0});break;case 192:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a]});break;case 193:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a],object:!0});break;case 194:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],step:s[a]});break;case 195:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],guard:s[a-2],step:s[a]});break;case 196:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],step:s[a-2],guard:s[a]});break;case 197:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Switch(s[a-3],s[a-1]));break;case 198:this.$=i.addLocationDataFn(o[a-6],o[a])(new i.Switch(s[a-5],s[a-3],s[a-1]));break;case 199:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Switch(null,s[a-1]));break;case 200:this.$=i.addLocationDataFn(o[a-5],o[a])(new i.Switch(null,s[a-3],s[a-1]));break;case 202:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].concat(s[a]));break;case 203:this.$=i.addLocationDataFn(o[a-2],o[a])([[s[a-1],s[a]]]);break;case 204:this.$=i.addLocationDataFn(o[a-3],o[a])([[s[a-2],s[a-1]]]);break;case 205:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}));break;case 206:this.$=i.addLocationDataFn(o[a-4],o[a])(s[a-4].addElse(i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}))));break;case 208:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].addElse(s[a]));break;case 209:case 210:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a],i.addLocationDataFn(o[a-2])(i.Block.wrap([s[a-2]])),{type:s[a-1],statement:!0}));break;case 213:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("-",s[a]));break;case 214:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("+",s[a]));break;case 216:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a]));break;case 217:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a]));break;case 218:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a-1],null,!0));break;case 219:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a-1],null,!0));break;case 220:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Existence(s[a-1]));break;case 221:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("+",s[a-2],s[a]));break;case 222:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("-",s[a-2],s[a]));break;case 223:case 224:case 225:case 226:case 227:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-1],s[a-2],s[a]));break;case 228:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return"!"===s[a-1].charAt(0)?new i.Op(s[a-1].slice(1),s[a-2],s[a]).invert():new i.Op(s[a-1],s[a-2],s[a])}());break;case 229:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a],s[a-1]));break;case 230:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1],s[a-3]));break;case 231:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a],s[a-2]));break;case 232:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Extends(s[a-2],s[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:23,11:24,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:b,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{1:[3]},{1:[2,2],6:H},t(G,[2,3]),t(G,[2,6],{130:76,121:96,127:97,122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(G,[2,7],{130:76,121:99,127:100,122:S,124:R,128:A,144:tt}),t(G,[2,8]),t(nt,[2,14],{98:101,79:102,87:108,83:it,84:rt,85:st,86:ot,88:at,91:ct,102:lt,103:ht}),t(nt,[2,15],{87:108,98:111,79:112,83:it,84:rt,85:st,86:ot,88:at,91:ct,102:lt,103:ht}),t(nt,[2,16]),t(nt,[2,17]),t(nt,[2,18]),t(nt,[2,19]),t(nt,[2,20]),t(nt,[2,21]),t(nt,[2,22]),t(nt,[2,23]),t(nt,[2,24]),t(nt,[2,25]),t(nt,[2,26]),t(ut,[2,11]),t(ut,[2,12]),t(ut,[2,13]),t(G,[2,9]),t(G,[2,10]),t(pt,dt,{55:[1,113]}),t(pt,[2,97]),t(pt,[2,98]),t(pt,[2,99]),t(pt,[2,100]),t(ft,[2,127]),t([6,31,66,71],mt,{65:114,72:115,73:116,33:118,60:119,75:120,76:121,34:r,74:gt,93:T,107:bt,108:yt}),{30:124,31:vt},{7:126,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:130,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:131,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:132,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:133,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:[1,134],62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{15:136,16:137,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:138,60:70,75:52,76:53,78:135,80:27,81:28,82:29,93:T,100:30,101:C,106:F,107:L,108:E,119:_},{15:136,16:137,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:138,60:70,75:52,76:53,78:139,80:27,81:28,82:29,93:T,100:30,101:C,106:F,107:L,108:E,119:_},t(Tt,Nt,{97:[1,143],149:[1,140],150:[1,141],158:[1,142]}),t(nt,[2,207],{139:[1,144]}),{30:145,31:vt},{30:146,31:vt},t(nt,[2,173]),{30:147,31:vt},{7:148,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:[1,149],33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Ct,[2,117],{47:26,80:27,81:28,82:29,100:30,75:52,76:53,37:54,43:56,33:69,60:70,39:79,15:136,16:137,54:138,30:150,78:152,31:vt,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,93:T,97:[1,151],101:C,106:F,107:L,108:E,119:_}),{7:153,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t([1,6,32,42,120,122,124,128,144,151,152,153,154,155,156,157],Ft,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,12:20,13:21,54:25,47:26,80:27,81:28,82:29,100:30,67:32,78:40,142:41,121:43,125:44,127:45,75:52,76:53,37:54,43:56,33:69,60:70,130:76,39:79,8:128,7:154,14:n,28:kt,29:Lt,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,61:[1,156],62:wt,63:y,64:v,68:k,69:w,93:T,96:N,101:C,106:F,107:L,108:E,114:x,118:D,119:_,126:I,137:O,143:$,145:j,146:M,147:P,148:B,149:V,150:U}),t(ut,Et,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,12:20,13:21,54:25,47:26,80:27,81:28,82:29,100:30,67:32,78:40,142:41,121:43,125:44,127:45,75:52,76:53,37:54,43:56,33:69,60:70,130:76,39:79,8:128,7:157,14:n,28:kt,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,61:g,62:wt,63:y,64:v,68:k,69:w,93:T,96:N,101:C,106:F,107:L,108:E,114:x,118:D,119:_,126:I,137:O,143:$,145:j,146:M,147:P,148:B,149:V,150:U}),t([1,6,31,32,42,71,95,120,122,124,128,144],[2,68]),t(Tt,[2,94]),t(Tt,[2,95]),t(pt,[2,40]),t(pt,[2,41]),t(pt,[2,42]),t(pt,[2,43]),t(pt,[2,44]),t(pt,[2,45]),t(pt,[2,46]),t(pt,[2,47]),{4:158,5:3,7:4,8:5,9:6,10:23,11:24,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,31:[1,159],33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:b,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:160,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:xt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,74:Dt,75:52,76:53,77:165,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,105:162,106:F,107:L,108:E,109:_t,112:163,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(pt,[2,134]),t(pt,[2,135],{35:167,36:St}),t([1,6,31,32,42,46,66,71,74,83,84,85,86,88,90,91,95,102,104,109,111,120,122,123,124,128,129,144,147,148,151,152,153,154,155,156,157],[2,128],{99:169,103:Rt}),{31:[2,71]},{31:[2,72]},t(It,[2,89]),t(It,[2,92]),{7:171,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:172,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:173,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:175,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,30:174,31:vt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{33:180,34:r,60:181,75:182,76:183,81:176,93:T,107:bt,108:E,132:177,133:[1,178],134:179},{131:184,135:[1,185],136:[1,186]},t([6,31,71,95],At,{39:79,94:187,56:188,57:189,59:190,13:191,37:192,33:193,35:194,60:195,34:r,36:St,38:s,40:o,41:a,63:y,107:bt}),t(Ot,[2,34]),t(Ot,[2,35]),t(pt,[2,38]),{15:136,16:196,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:138,60:70,75:52,76:53,78:197,80:27,81:28,82:29,93:T,100:30,101:C,106:F,107:L,108:E,119:_},t($t,[2,32]),t(Ot,[2,36]),{4:198,5:3,7:4,8:5,9:6,10:23,11:24,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:b,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(G,[2,5],{7:4,8:5,9:6,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,12:20,13:21,10:23,11:24,54:25,47:26,80:27,81:28,82:29,100:30,67:32,78:40,142:41,121:43,125:44,127:45,75:52,76:53,37:54,43:56,33:69,60:70,130:76,39:79,5:199,14:n,28:i,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,61:g,62:b,63:y,64:v,68:k,69:w,93:T,96:N,101:C,106:F,107:L,108:E,114:x,118:D,119:_,122:S,124:R,126:I,128:A,137:O,143:$,145:j,146:M,147:P,148:B,149:V,150:U}),t(nt,[2,220]),{7:200,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:201,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:202,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:203,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:204,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:205,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:206,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:207,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:208,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(nt,[2,172]),t(nt,[2,177]),{7:209,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(nt,[2,171]),t(nt,[2,176]),{99:210,103:Rt},t(It,[2,90]),{103:[2,131]},{35:211,36:St},{35:212,36:St},t(It,[2,105],{35:213,36:St}),{35:214,36:St},t(It,[2,106]),{7:216,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,74:jt,75:52,76:53,78:40,80:27,81:28,82:29,89:215,92:217,93:T,96:N,100:30,101:C,106:F,107:L,108:E,110:218,111:Mt,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{87:221,88:at,91:ct},{99:222,103:Rt},t(It,[2,91]),{6:[1,224],7:223,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:[1,225],33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t([6,31],Pt,{70:228,66:[1,226],71:Bt}),t(Vt,[2,76]),t(Vt,[2,80],{55:[1,230],74:[1,229]}),t(Vt,[2,83]),t(Ut,[2,84]),t(Ut,[2,85]),t(Ut,[2,86]),t(Ut,[2,87]),{35:167,36:St},{7:231,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:xt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,74:Dt,75:52,76:53,77:165,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,105:162,106:F,107:L,108:E,109:_t,112:163,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(nt,[2,70]),{4:233,5:3,7:4,8:5,9:6,10:23,11:24,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,32:[1,232],33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:b,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Ht,[2,211],{130:76,121:96,127:97,151:X}),{7:133,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{121:99,122:S,124:R,127:100,128:A,130:76,144:tt},t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,151,152,153,154,155,156,157],Ft,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,12:20,13:21,54:25,47:26,80:27,81:28,82:29,100:30,67:32,78:40,142:41,121:43,125:44,127:45,75:52,76:53,37:54,43:56,33:69,60:70,130:76,39:79,8:128,7:154,14:n,28:kt,29:Lt,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,61:g,62:wt,63:y,64:v,68:k,69:w,93:T,96:N,101:C,106:F,107:L,108:E,114:x,118:D,119:_,126:I,137:O,143:$,145:j,146:M,147:P,148:B,149:V,150:U}),t(Gt,[2,212],{130:76,121:96,127:97,151:X,153:z}),t(Gt,[2,213],{130:76,121:96,127:97,151:X,153:z}),t(Gt,[2,214],{130:76,121:96,127:97,151:X,153:z}),t(Ht,[2,215],{130:76,121:96,127:97,151:X}),t(G,[2,67],{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,12:20,13:21,54:25,47:26,80:27,81:28,82:29,100:30,67:32,78:40,142:41,121:43,125:44,127:45,75:52,76:53,37:54,43:56,33:69,60:70,130:76,39:79,8:128,7:234,14:n,28:kt,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,61:g,62:wt,63:y,64:v,68:k,69:w,93:T,96:N,101:C,106:F,107:L,108:E,114:x,118:D,119:_,122:Et,124:Et,128:Et,144:Et,126:I,137:O,143:$,145:j,146:M,147:P,148:B,149:V,150:U}),t(nt,[2,216],{83:Nt,84:Nt,85:Nt,86:Nt,88:Nt,91:Nt,102:Nt,103:Nt}),{79:102,83:it,84:rt,85:st,86:ot,87:108,88:at,91:ct,98:101,102:lt,103:ht},{79:112,83:it,84:rt,85:st,86:ot,87:108,88:at,91:ct,98:111,102:lt,103:ht},t(qt,dt),t(nt,[2,217],{83:Nt,84:Nt,85:Nt,86:Nt,88:Nt,91:Nt,102:Nt,103:Nt}),t(nt,[2,218]),t(nt,[2,219]),{6:[1,237],7:235,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:[1,236],33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:238,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{30:239,31:vt,143:[1,240]},t(nt,[2,156],{115:241,116:[1,242],117:[1,243]}),t(nt,[2,170]),t(nt,[2,178]),{31:[1,244],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},{138:245,140:246,141:Yt},t(nt,[2,118]),{7:248,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Ct,[2,121],{30:249,31:vt,83:Nt,84:Nt,85:Nt,86:Nt,88:Nt,91:Nt,102:Nt,103:Nt,97:[1,250]}),t(Wt,[2,163],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Wt,[2,28],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{7:251,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(G,[2,65],{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,12:20,13:21,54:25,47:26,80:27,81:28,82:29,100:30,67:32,78:40,142:41,121:43,125:44,127:45,75:52,76:53,37:54,43:56,33:69,60:70,130:76,39:79,8:128,7:252,14:n,28:kt,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,61:g,62:wt,63:y,64:v,68:k,69:w,93:T,96:N,101:C,106:F,107:L,108:E,114:x,118:D,119:_,122:Et,124:Et,128:Et,144:Et,126:I,137:O,143:$,145:j,146:M,147:P,148:B,149:V,150:U}),t(ut,Xt,{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{6:H,120:[1,253]},{4:254,5:3,7:4,8:5,9:6,10:23,11:24,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:b,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t([6,31,71,109],Jt,{130:76,121:96,127:97,110:255,74:[1,256],111:Mt,122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(zt,[2,137]),t([6,31,109],Pt,{70:257,71:Kt}),t(Qt,[2,146]),{7:231,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:xt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,74:Dt,75:52,76:53,77:165,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,105:259,106:F,107:L,108:E,112:163,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Qt,[2,152]),t(Qt,[2,153]),t($t,[2,136]),t($t,[2,33]),t(ft,[2,129]),{7:231,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:xt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,74:Dt,75:52,76:53,77:165,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,104:[1,260],105:261,106:F,107:L,108:E,112:163,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{30:262,31:vt,121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},t(Zt,[2,166],{130:76,121:96,127:97,122:S,123:[1,263],124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Zt,[2,168],{130:76,121:96,127:97,122:S,123:[1,264],124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(nt,[2,174]),t(en,[2,175],{130:76,121:96,127:97,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,144,147,148,151,152,153,154,155,156,157],[2,179],{129:[1,265]}),t(tn,[2,182]),{33:180,34:r,60:181,75:182,76:183,93:T,107:bt,108:yt,132:266,134:179},t(tn,[2,188],{71:[1,267]}),t(nn,[2,184]),t(nn,[2,185]),t(nn,[2,186]),t(nn,[2,187]),t(nt,[2,181]),{7:268,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:269,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t([6,31,95],Pt,{70:270,71:rn}),t(sn,[2,113]),t(sn,[2,51],{58:[1,272]}),t(on,[2,60],{55:[1,273]}),t(sn,[2,56]),t(on,[2,61]),t(an,[2,57]),t(an,[2,58]),t(an,[2,59]),{46:[1,274],79:112,83:it,84:rt,85:st,86:ot,87:108,88:at,91:ct,98:111,102:lt,103:ht},t(qt,Nt),{6:H,42:[1,275]},t(G,[2,4]),t(cn,[2,221],{130:76,121:96,127:97,151:X,152:J,153:z}),t(cn,[2,222],{130:76,121:96,127:97,151:X,152:J,153:z}),t(Gt,[2,223],{130:76,121:96,127:97,151:X,153:z}),t(Gt,[2,224],{130:76,121:96,127:97,151:X,153:z}),t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,154,155,156,157],[2,225],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z}),t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,155,156],[2,226],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,157:et}),t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,156],[2,227],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,157:et}),t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,129,144,155,156,157],[2,228],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K}),t(en,[2,210],{130:76,121:96,127:97,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(en,[2,209],{130:76,121:96,127:97,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(ft,[2,125]),t(It,[2,101]),t(It,[2,102]),t(It,[2,103]),t(It,[2,104]),{90:[1,276]},{74:jt,90:[2,109],110:277,111:Mt,121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},{90:[2,110]},{7:278,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,90:[2,145],93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(ln,[2,139]),t(ln,hn),t(It,[2,108]),t(ft,[2,126]),t(Wt,[2,48],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{7:279,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:280,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{67:281,68:k,69:w},t(un,pn,{73:116,33:118,60:119,75:120,76:121,72:282,34:r,74:gt,93:T,107:bt,108:yt}),{6:dn,31:fn},t(Vt,[2,81]),{7:285,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Qt,Jt,{130:76,121:96,127:97,74:[1,286],122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(mn,[2,30]),{6:H,32:[1,287]},t(G,[2,66],{130:76,121:96,127:97,122:Xt,124:Xt,128:Xt,144:Xt,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Wt,[2,229],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{7:288,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:289,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Wt,[2,232],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(nt,[2,208]),{7:290,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(nt,[2,157],{116:[1,291]}),{30:292,31:vt},{30:295,31:vt,33:293,34:r,76:294,93:T},{138:296,140:246,141:Yt},{32:[1,297],139:[1,298],140:299,141:Yt},t(gn,[2,201]),{7:301,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,113:300,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(bn,[2,119],{130:76,121:96,127:97,30:302,31:vt,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(nt,[2,122]),{7:303,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Wt,[2,29],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(G,[2,64],{130:76,121:96,127:97,122:Xt,124:Xt,128:Xt,144:Xt,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(pt,[2,164]),{6:H,32:[1,304]},{7:305,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t([14,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,64,68,69,93,96,101,106,107,108,114,118,119,122,124,126,128,137,143,145,146,147,148,149,150],hn,{6:yn,31:yn,71:yn,109:yn}),{6:vn,31:kn,109:[1,306]},t([6,31,32,104,109],pn,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,12:20,13:21,54:25,47:26,80:27,81:28,82:29,100:30,67:32,78:40,142:41,121:43,125:44,127:45,75:52,76:53,37:54,43:56,33:69,60:70,130:76,39:79,8:128,77:165,7:231,112:309,14:n,28:kt,34:r,38:s,40:o,41:a,44:c,45:l,48:h,49:u,50:p,51:d,52:f,53:m,61:g,62:wt,63:y,64:v,68:k,69:w,74:Dt,93:T,96:N,101:C,106:F,107:L,108:E,114:x,118:D,119:_,122:S,124:R,126:I,128:A,137:O,143:$,145:j,146:M,147:P,148:B,149:V,150:U}),t(un,Pt,{70:310,71:Kt}),t(ft,[2,132]),t([6,31,104],Pt,{70:311,71:Kt}),t(wn,[2,205]),{7:312,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:313,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:314,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(tn,[2,183]),{33:180,34:r,60:181,75:182,76:183,93:T,107:bt,108:yt,134:315},t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,124,128,144],[2,190],{130:76,121:96,127:97,123:[1,316],129:[1,317],147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Tn,[2,191],{130:76,121:96,127:97,123:[1,318],147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{6:Nn,31:Cn,95:[1,319]},t([6,31,32,95],pn,{39:79,57:189,59:190,13:191,37:192,33:193,35:194,60:195,56:322,34:r,36:St,38:s,40:o,41:a,63:y,107:bt}),{7:323,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:[1,324],33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:325,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:[1,326],33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(pt,[2,39]),t(Ot,[2,37]),t(It,[2,107]),{7:327,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,90:[2,143],93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{90:[2,144],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},t(Wt,[2,49],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{32:[1,328],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},{30:329,31:vt},t(Vt,[2,77]),{33:118,34:r,60:119,72:330,73:116,74:gt,75:120,76:121,93:T,107:bt,108:yt},t(Fn,mt,{72:115,73:116,33:118,60:119,75:120,76:121,65:331,34:r,74:gt,93:T,107:bt,108:yt}),t(Vt,[2,82],{130:76,121:96,127:97,122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Qt,yn),t(mn,[2,31]),{32:[1,332],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},t(Wt,[2,231],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{30:333,31:vt,121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},{30:334,31:vt},t(nt,[2,158]),{30:335,31:vt},{30:336,31:vt},t(Ln,[2,162]),{32:[1,337],139:[1,338],140:299,141:Yt},t(nt,[2,199]),{30:339,31:vt},t(gn,[2,202]),{30:340,31:vt,71:[1,341]},t(En,[2,154],{130:76,121:96,127:97,122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(nt,[2,120]),t(bn,[2,123],{130:76,121:96,127:97,30:342,31:vt,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{120:[1,343]},{109:[1,344],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},t(zt,[2,138]),{7:231,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,74:Dt,75:52,76:53,77:165,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,112:345,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:231,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,31:xt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,74:Dt,75:52,76:53,77:165,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,105:346,106:F,107:L,108:E,112:163,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(Qt,[2,147]),{6:vn,31:kn,32:[1,347]},{6:vn,31:kn,104:[1,348]},t(en,[2,167],{130:76,121:96,127:97,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(en,[2,169],{130:76,121:96,127:97,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(en,[2,180],{130:76,121:96,127:97,122:S,124:R,128:A,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(tn,[2,189]),{7:349,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:350,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:351,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(zt,[2,111]),{13:191,33:193,34:r,35:194,36:St,37:192,38:s,39:79,40:o,41:a,56:352,57:189,59:190,60:195,63:y,107:bt},t(Fn,At,{39:79,56:188,57:189,59:190,13:191,37:192,33:193,35:194,60:195,94:353,34:r,36:St,38:s,40:o,41:a,63:y,107:bt}),t(sn,[2,114]),t(sn,[2,52],{130:76,121:96,127:97,122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{7:354,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(sn,[2,54],{130:76,121:96,127:97,122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{7:355,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{90:[2,142],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},t(nt,[2,50]),t(nt,[2,69]),t(Vt,[2,78]),t(un,Pt,{70:356,71:Bt}),t(nt,[2,230]),t(wn,[2,206]),t(nt,[2,159]),t(Ln,[2,160]),t(Ln,[2,161]),t(nt,[2,197]),{30:357,31:vt},{32:[1,358]},t(gn,[2,203],{6:[1,359]}),{7:360,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},t(nt,[2,124]),t(pt,[2,165]),t(pt,[2,141]),t(Qt,[2,148]),t(un,Pt,{70:361,71:Kt}),t(Qt,[2,149]),t(ft,[2,133]),t([1,6,31,32,42,66,71,74,90,95,104,109,111,120,122,123,124,128,144],[2,192],{130:76,121:96,127:97,129:[1,362],147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Tn,[2,194],{130:76,121:96,127:97,123:[1,363],147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Wt,[2,193],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(sn,[2,115]),t(un,Pt,{70:364,71:rn}),{32:[1,365],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},{32:[1,366],121:96,122:S,124:R,127:97,128:A,130:76,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et},{6:dn,31:fn,32:[1,367]},{32:[1,368]},t(nt,[2,200]),t(gn,[2,204]),t(En,[2,155],{130:76,121:96,127:97,122:S,124:R,128:A,144:q,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),{6:vn,31:kn,32:[1,369]},{7:370,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{7:371,8:128,12:20,13:21,14:n,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:kt,33:69,34:r,37:54,38:s,39:79,40:o,41:a,43:56,44:c,45:l,47:26,48:h,49:u,50:p,51:d,52:f,53:m,54:25,60:70,61:g,62:wt,63:y,64:v,67:32,68:k,69:w,75:52,76:53,78:40,80:27,81:28,82:29,93:T,96:N,100:30,101:C,106:F,107:L,108:E,114:x,118:D,119:_,121:43,122:S,124:R,125:44,126:I,127:45,128:A,130:76,137:O,142:41,143:$,145:j,146:M,147:P,148:B,149:V,150:U},{6:Nn,31:Cn,32:[1,372]},t(sn,[2,53]),t(sn,[2,55]),t(Vt,[2,79]),t(nt,[2,198]),t(Qt,[2,150]),t(Wt,[2,195],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(Wt,[2,196],{130:76,121:96,127:97,147:Y,148:W,151:X,152:J,153:z,154:K,155:Q,156:Z,157:et}),t(sn,[2,116])],defaultActions:{67:[2,71],68:[2,72],103:[2,131],217:[2,110]},parseError:function(e,t){function n(e,t){this.message=e,this.hash=t +}if(!t.recoverable)throw n.prototype=Error,new n(e,t);this.trace(e)},parse:function(e){var t=this,n=[0],i=[null],r=[],s=this.table,o="",a=0,c=0,l=0,h=2,u=1,p=r.slice.call(arguments,1),d=Object.create(this.lexer),f={yy:{}};for(var m in this.yy)Object.prototype.hasOwnProperty.call(this.yy,m)&&(f.yy[m]=this.yy[m]);d.setInput(e,f.yy),f.yy.lexer=d,f.yy.parser=this,d.yylloc===void 0&&(d.yylloc={});var g=d.yylloc;r.push(g);var b=d.options&&d.options.ranges;this.parseError="function"==typeof f.yy.parseError?f.yy.parseError:Object.getPrototypeOf(this).parseError;for(var y,v,k,w,T,N,C,F,L,E=function(){var e;return e=d.lex()||u,"number"!=typeof e&&(e=t.symbols_[e]||e),e},x={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:((null===y||y===void 0)&&(y=E()),w=s[k]&&s[k][y]),w===void 0||!w.length||!w[0]){var D="";L=[];for(N in s[k])this.terminals_[N]&&N>h&&L.push("'"+this.terminals_[N]+"'");D=d.showPosition?"Parse error on line "+(a+1)+":\n"+d.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(a+1)+": Unexpected "+(y==u?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(D,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:g,expected:L})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+k+", token: "+y);switch(w[0]){case 1:n.push(y),i.push(d.yytext),r.push(d.yylloc),n.push(w[1]),y=null,v?(y=v,v=null):(c=d.yyleng,o=d.yytext,a=d.yylineno,g=d.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],x.$=i[i.length-C],x._$={first_line:r[r.length-(C||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(C||1)].first_column,last_column:r[r.length-1].last_column},b&&(x._$.range=[r[r.length-(C||1)].range[0],r[r.length-1].range[1]]),T=this.performAction.apply(x,[o,c,a,f.yy,w[1],i,r].concat(p)),T!==void 0)return T;C&&(n=n.slice(0,2*-1*C),i=i.slice(0,-1*C),r=r.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(x.$),r.push(x._$),F=s[n[n.length-2]][n[n.length-1]],n.push(F);break;case 3:return!0}}return!0}};return e.prototype=xn,xn.Parser=e,new e}();return require!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var n=require("fs").readFileSync(require("path").normalize(t[1]),"utf8");return e.parser.parse(n)},t!==void 0&&require.main===t&&e.main(process.argv.slice(1))),t.exports}(),require["./scope"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(s=this.parent)?s.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){var i,r,s,o,a,c;return null==n&&(n=!1),n?(c=e.charCodeAt(0),r="z".charCodeAt(0),i=r-c,o=c+t%(i+1),s=String.fromCharCode(o),a=Math.floor(t/(i+1)),""+s+(a||"")):""+e+(t||"")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,s;for(null==t&&(t={}),i=0;;){if(s=this.temporary(e,i,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(s,"var",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],"var"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+" = "+r.type.value);return i},e}()}.call(this),t.exports}(),require["./nodes"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,b,y,v,k,w,T,N,C,F,L,E,x,D,_,S,R,I,A,O,$,j,M,P,B,V,U,H,G,q,Y,W,X,J,z,K,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,lt,ht,ut,pt,dt,ft,mt,gt,bt,yt,vt,kt,wt,Tt,Nt,Ct,Ft,Lt,Et,xt,Dt,_t,St,Rt=function(e,t){function n(){this.constructor=e}for(var i in t)It.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},It={}.hasOwnProperty,At=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ot=[].slice;Error.stackTraceLimit=Infinity,Y=require("./scope").Scope,Ft=require("./lexer"),wt=Ft.isUnassignable,T=Ft.JS_FORBIDDEN,Lt=require("./helpers"),pt=Lt.compact,gt=Lt.flatten,mt=Lt.extend,Nt=Lt.merge,dt=Lt.del,xt=Lt.starts,ft=Lt.ends,Et=Lt.some,ut=Lt.addLocationDataFn,Tt=Lt.locationDataToString,Dt=Lt.throwSyntaxError,e.extend=mt,e.addLocationDataFn=ut,lt=function(){return!0},S=function(){return!1},tt=function(){return this},_=function(){return this.negated=!this.negated,this},e.CodeFragment=u=function(){function e(e,t){var n;this.code=""+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+Tt(this.locationData):"")},e}(),bt=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join("")},e.Base=s=function(){function e(){}return e.prototype.compile=function(e,t){return bt(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=mt({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==x&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,s,a,l,u;return(s=this.jumps())&&s.error("cannot use a pure statement in an expression"),e.sharedScope=!0,r=new h([],o.wrap([this])),r.wrap=!1,n=[],((i=this.contains(vt))||this.contains(kt))&&(n=[new nt],i?(a="apply",n.push(new b("arguments"))):a="call",r=new at(r,[new t(new B(a))])),l=new c(r,n).compileNode(e),(r.isContinuation||(null!=(u=r.base)?u.isContinuation:void 0))&&(l.unshift(this.makeCode("(yield* ")),l.push(this.makeCode(")"))),l},e.prototype.cache=function(e,t,n){var r,s,o;return r=null!=n?n(this):this.isComplex(),r?(s=new b(e.scope.freeVariable("ref")),o=new i(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[bt(e[0]),bt(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new c(new D(e+".push"),[t]):new G(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof p))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=""),null==t&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+et)}),n},e.prototype.eachChild=function(e){var t,n,i,r,s,o,a,c;if(!this.children)return this;for(a=this.children,i=0,s=a.length;s>i;i++)if(t=a[i],this[t])for(c=gt([this[t]]),r=0,o=c.length;o>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new $("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=S,e.prototype.jumps=S,e.prototype.isComplex=lt,e.prototype.isChainable=S,e.prototype.isAssignable=S,e.prototype.isNumber=S,e.prototype.unwrap=tt,e.prototype.unfoldSoak=S,e.prototype.assigns=S,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return Dt(e,this.locationData)},e.prototype.makeCode=function(e){return new u(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,s,o;for(n=[],r=s=0,o=e.length;o>s;r=++s)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=o=function(e){function t(e){this.expressions=pt(gt(e||[]))}return Rt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,s;for(s=this.expressions,n=0,r=s.length;r>n;n++)if(t=s[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof p)){this.expressions[n]=t.makeReturn(e),t instanceof G&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,s,o,a,c,l,h;for(this.tab=e.indent,h=e.level===x,i=[],l=this.expressions,s=o=0,a=l.length;a>o;s=++o)c=l[s],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):h?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(c.compileToFragments(e,F));return h?this.spaced?[].concat(this.joinFragmentArrays(i,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(i,"\n"):(n=i.length?this.joinFragmentArrays(i,", "):[this.makeCode("void 0")],i.length>1&&e.level>=F?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,s,o,a,c,l,h,u;for(e.indent=e.bare?"":et,e.level=x,this.spaced=!0,e.scope=new Y(null,this,null,null!=(l=e.referencedVars)?l:[]),h=e.locals||[],r=0,s=h.length;s>r;r++)o=h[r],e.scope.parameter(o);return a=[],e.bare||(c=function(){var e,n,r,s;for(r=this.expressions,s=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof p);i=++e)s.push(t);return s}.call(this),u=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(Nt(e,{indent:""})),a.push(this.makeCode("\n"))),this.expressions=u),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,s,o,a,c,l,h,u,d,f,m;for(r=[],c=[],l=this.expressions,s=o=0,a=l.length;a>o&&(i=l[s],i=i.unwrap(),i instanceof p||i instanceof D);s=++o);return e=Nt(e,{level:x}),s&&(d=this.expressions.splice(s,9e9),h=[this.spaced,!1],m=h[0],this.spaced=h[1],u=[this.compileNode(e),m],r=u[0],this.spaced=u[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(s&&r.push(this.makeCode("\n")),r.push(this.makeCode(this.tab+"var ")),n&&r.push(this.makeCode(f.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+et))),r.push(this.makeCode(f.assignedVariables().join(",\n"+(this.tab+et))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&c.length&&r.push(this.makeCode("\n"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(s),e.Literal=D=function(e){function t(e){this.value=e}return Rt(t,e),t.prototype.isComplex=S,t.prototype.assigns=function(e){return e===this.value},t.prototype.compileNode=function(){return[this.makeCode(this.value)]},t.prototype.toString=function(){return" "+(this.isStatement()?t.__super__.toString.apply(this,arguments):this.constructor.name)+": "+this.value},t}(s),e.NumberLiteral=A=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t}(D),e.InfinityLiteral=w=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t.prototype.compileNode=function(){return[this.makeCode("2e308")]},t}(A),e.NaNLiteral=R=function(e){function t(){t.__super__.constructor.call(this,"NaN")}return Rt(t,e),t.prototype.compileNode=function(e){var t;return t=[this.makeCode("0/0")],e.level>=L?this.wrapInBraces(t):t},t}(A),e.StringLiteral=z=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t}(D),e.RegexLiteral=U=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t}(D),e.PassthroughLiteral=P=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t}(D),e.IdentifierLiteral=b=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t.prototype.isAssignable=lt,t}(D),e.PropertyName=B=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t.prototype.isAssignable=lt,t}(D),e.StatementLiteral=J=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t.prototype.isStatement=lt,t.prototype.makeReturn=tt,t.prototype.jumps=function(e){return"break"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?"continue"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(){return[this.makeCode(""+this.tab+this.value+";")]},t}(D),e.ThisLiteral=nt=function(e){function t(){t.__super__.constructor.call(this,"this")}return Rt(t,e),t.prototype.compileNode=function(e){var t,n;return t=(null!=(n=e.scope.method)?n.bound:void 0)?e.scope.method.context:this.value,[this.makeCode(t)]},t}(D),e.UndefinedLiteral=ot=function(e){function t(){t.__super__.constructor.call(this,"undefined")}return Rt(t,e),t.prototype.compileNode=function(e){return[this.makeCode(e.level>=N?"(void 0)":"void 0")]},t}(D),e.NullLiteral=I=function(e){function t(){t.__super__.constructor.call(this,"null")}return Rt(t,e),t}(D),e.BooleanLiteral=a=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t}(D),e.Return=G=function(e){function t(e){this.expression=e}return Rt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=lt,t.prototype.makeReturn=tt,t.prototype.jumps=tt,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t;return t=[],t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,E))),t.push(this.makeCode(";")),t},t}(s),e.YieldReturn=ht=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t.prototype.compileNode=function(e){return null==e.scope.parent&&this.error("yield can only occur inside functions"),t.__super__.compileNode.apply(this,arguments)},t}(G),e.AwaitReturn=r=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t.prototype.compileNode=function(e){return null==e.scope.parent&&this.error("await can only occur inside functions"),t.__super__.compileNode.apply(this,arguments)},t}(G),e.Value=at=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return Rt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(V)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isNumber=function(){return this.bareLiteral(A)},t.prototype.isString=function(){return this.bareLiteral(z)},t.prototype.isRegex=function(){return this.bareLiteral(U)},t.prototype.isUndefined=function(){return this.bareLiteral(ot)},t.prototype.isNull=function(){return this.bareLiteral(I)},t.prototype.isBoolean=function(){return this.bareLiteral(a)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof c)return!1;return!0},t.prototype.isNotCallable=function(){return this.isNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()||this.isUndefined()||this.isNull()||this.isBoolean()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof O&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof W},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&"prototype"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,s,o,a;return a=this.properties,s=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=s?s.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new b(e.scope.freeVariable("base")),n=new t(new M(new i(r,n)))),s?(s.isComplex()&&(o=new b(e.scope.freeVariable("name")),s=new k(new i(o,s.index)),o=new k(o)),[n.add(s),new t(r||n.base,[o||s])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?N:null),s.length&&q.test(bt(t))&&t.push(this.makeCode(".")),n=0,i=s.length;i>n;n++)r=s[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,s,o,a,c,l,h,u,p,f;if(o=n.base.unfoldSoak(e))return(u=o.body.properties).push.apply(u,n.properties),o;for(p=n.properties,s=a=0,c=p.length;c>a;s=++a)if(l=p[s],l.soak)return l.soak=!1,r=new t(n.base,n.properties.slice(0,s)),f=new t(n.base,n.properties.slice(s)),r.isComplex()&&(h=new b(e.scope.freeVariable("ref")),r=new M(new i(h,r)),f.base=h),new y(new d(r),f,{soak:!0});return!1}}(this)()},t}(s),e.Comment=p=function(e){function t(e){this.comment=e}return Rt(t,e),t.prototype.isStatement=lt,t.prototype.makeReturn=tt,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *"),n="/*"+Ct(i,this.tab)+(At.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===x&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(s),e.Call=c=function(e){function t(e,t,n){this.variable=e,this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.variable instanceof at&&this.variable.isNotCallable()&&this.variable.error("literal is not a function")}return Rt(t,e),t.prototype.children=["variable","args"],t.prototype.newInstance=function(){var e,n;return e=(null!=(n=this.variable)?n.base:void 0)||this.variable,e instanceof t&&!e.isNew?e.newInstance():this.isNew=!0,this},t.prototype.unfoldSoak=function(e){var n,i,r,s,o,a,c,l,h;if(this.soak){if(this instanceof Q)s=new D(this.superReference(e)),h=new at(s);else{if(i=_t(e,this,"variable"))return i;c=new at(this.variable).cacheReference(e),s=c[0],h=c[1]}return h=new t(h,this.args),h.isNew=this.isNew,s=new D("typeof "+s.compile(e)+' === "function"'),new y(s,new at(h),{soak:!0})}for(n=this,a=[];;)if(n.variable instanceof t)a.push(n),n=n.variable;else{if(!(n.variable instanceof at))break;if(a.push(n),!((n=n.variable.base)instanceof t))break}for(l=a.reverse(),r=0,o=l.length;o>r;r++)n=l[r],i&&(n.variable instanceof t?n.variable=i:n.variable.base=i),i=_t(e,n,"variable");return i},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,l,h;if(null!=(l=this.variable)&&(l.front=this.front),r=X.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],h=this.args,n=o=0,a=h.length;a>o;n=++o)t=h[n],n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,F));return s=[],this instanceof Q?(c=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(c+=", "),s.push(this.makeCode(c))):(this.isNew&&s.push(this.makeCode("new ")),s.push.apply(s,this.variable.compileToFragments(e,N)),s.push(this.makeCode("("))),s.push.apply(s,i),s.push(this.makeCode(")")),s},t.prototype.compileSplat=function(e,t){var n,i,r,s,o,a;return this instanceof Q?[].concat(this.makeCode(this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(s=this.tab+et,[].concat(this.makeCode("(function(func, args, ctor) {\n"+s+"ctor.prototype = func.prototype;\n"+s+"var child = new ctor, result = func.apply(child, args);\n"+s+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,F),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new at(this.variable),(o=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,F),this.makeCode(")"),o.compileToFragments(e))):(r=i.compileToFragments(e,N),q.test(bt(r))&&(r=this.wrapInBraces(r)),o?(a=bt(r),r.push.apply(r,o.compileToFragments(e))):a="null",n=n.concat(r)),n=n.concat(this.makeCode(".apply("+a+", "),t,this.makeCode(")")))},t}(s),e.SuperCall=Q=function(e){function n(e){n.__super__.constructor.call(this,null,null!=e?e:[new X(new b("arguments"))]),this.isBare=null!=e}return Rt(n,e),n.prototype.superReference=function(e){var n,r,s,o,a,c,l,h;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(o=a.klass,c=a.name,h=a.variable,o.isComplex()&&(s=new b(e.scope.parent.freeVariable("base")),r=new at(new M(new i(s,o))),h.base=r,h.properties.splice(0,o.properties.length)),(c.isComplex()||c instanceof k&&c.index.isAssignable())&&(l=new b(e.scope.parent.freeVariable("name")),c=new k(new i(l,c.index)),h.properties.pop(),h.properties.push(c)),n=[new t(new B("__super__"))],a["static"]&&n.push(new t(new B("constructor"))),n.push(null!=l?new k(l):c),new at(null!=s?s:o,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},n}(c),e.RegexWithInterpolations=H=function(e){function t(e){null==e&&(e=[]),t.__super__.constructor.call(this,new at(new b("RegExp")),e,!1)}return Rt(t,e),t}(c),e.Extends=m=function(e){function t(e,t){this.child=e,this.parent=t}return Rt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new c(new at(new D(St("extend",e))),[this.child,this.parent]).compileToFragments(e)},t}(s),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak="soak"===t}return Rt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t,n,i;return t=this.name.compileToFragments(e),n=this.name.unwrap(),n instanceof B?(i=n.value,At.call(T,i)>=0?[this.makeCode('["')].concat(Ot.call(t),[this.makeCode('"]')]):[this.makeCode(".")].concat(Ot.call(t))):[this.makeCode("[")].concat(Ot.call(t),[this.makeCode("]")])},t.prototype.isComplex=S,t}(s),e.Index=k=function(e){function t(e){this.index=e}return Rt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,E),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(s),e.Range=V=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive="exclusive"===n,this.equals=this.exclusive?"":"="}return Rt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,s;return e=Nt(e,{top:!0}),t=dt(e,"isComplex"),n=this.cacheToCodeFragments(this.from.cache(e,F,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,F,t)),this.toC=i[0],this.toVar=i[1],(s=dt(e,"step"))&&(r=this.cacheToCodeFragments(s.cache(e,F,t)),this.step=r[0],this.stepVar=r[1]),this.fromNum=this.from.isNumber()?Number(this.fromVar):null,this.toNum=this.to.isNumber()?Number(this.toVar):null,this.stepNum=(null!=s?s.isNumber():void 0)?Number(this.stepVar):null},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,l,h,u,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=null!=this.fromNum&&null!=this.toNum,s=dt(e,"index"),o=dt(e,"name"),l=o&&o!==s,f=s+" = "+this.fromC,this.toC!==this.toVar&&(f+=", "+this.toC),this.step!==this.stepVar&&(f+=", "+this.step),h=[s+" <"+this.equals,s+" >"+this.equals],c=h[0],r=h[1],n=null!=this.stepNum?this.stepNum>0?c+" "+this.toVar:r+" "+this.toVar:a?(u=[this.fromNum,this.toNum],i=u[0],d=u[1],u,d>=i?c+" "+d:r+" "+d):(t=this.stepVar?this.stepVar+" > 0":this.fromVar+" <= "+this.toVar,t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),p=this.stepVar?s+" += "+this.stepVar:a?l?d>=i?"++"+s:"--"+s:d>=i?s+"++":s+"--":l?t+" ? ++"+s+" : --"+s:t+" ? "+s+"++ : "+s+"--",l&&(f=o+" = "+f),l&&(p=o+" = "+p),[this.makeCode(f+"; "+n+"; "+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,s,o,a,c,l,h,u,p,d,f;return a=null!=this.fromNum&&null!=this.toNum,a&&20>=Math.abs(this.fromNum-this.toNum)?(h=function(){d=[];for(var e=u=this.fromNum,t=this.toNum;t>=u?t>=e:e>=t;t>=u?e++:e--)d.push(e);return d}.apply(this),this.exclusive&&h.pop(),[this.makeCode("["+h.join(", ")+"]")]):(o=this.tab+et,s=e.scope.freeVariable("i",{single:!0}),p=e.scope.freeVariable("results"),l="\n"+o+p+" = [];",a?(e.index=s,n=bt(this.compileNode(e))):(f=s+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=this.fromVar+" <= "+this.toVar,n="var "+f+"; "+i+" ? "+s+" <"+this.equals+" "+this.toVar+" : "+s+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+s+"++ : "+s+"--"),c="{ "+p+".push("+s+"); }\n"+o+"return "+p+";\n"+e.indent,r=function(e){return null!=e?e.contains(vt):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+l+"\n"+o+"for ("+n+")"+c+"}).apply(this"+(null!=t?t:"")+")")])},t}(s),e.Slice=W=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return Rt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;return s=this.range,o=s.to,i=s.from,r=i&&i.compileToFragments(e,E)||[this.makeCode("0")],o&&(t=o.compileToFragments(e,E),n=bt(t),(this.range.exclusive||-1!==+n)&&(a=", "+(this.range.exclusive?n:o.isNumber()?""+(+n+1):(t=o.compileToFragments(e,N),"+"+bt(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+bt(r)+(a||"")+")")]},t}(s),e.Obj=O=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return Rt(n,e),n.prototype.children=["properties"],n.prototype.compileNode=function(e){var n,r,s,o,a,c,l,h,u,d,f,m,g,y,v,k,w,T,N,C,F;if(N=this.properties,this.generated)for(l=0,g=N.length;g>l;l++)k=N[l],k instanceof at&&k.error("cannot have an implicit value in an implicit object");for(r=u=0,y=N.length;y>u&&(T=N[r],!((T.variable||T).base instanceof M));r=++u);for(s=N.length>r,a=e.indent+=et,m=this.lastNonComment(this.properties),n=[],s&&(w=e.scope.freeVariable("obj"),n.push(this.makeCode("(\n"+a+w+" = "))),n.push(this.makeCode("{"+(0===N.length||0===r?"}":"\n"))),o=f=0,v=N.length;v>f;o=++f)T=N[o],o===r&&(0!==o&&n.push(this.makeCode("\n"+a+"}")),n.push(this.makeCode(",\n"))),h=o===N.length-1||o===r-1?"":T===m||T instanceof p?"\n":",\n",c=T instanceof p?"":a,s&&r>o&&(c+=et),T instanceof i&&("object"!==T.context&&T.operatorToken.error("unexpected "+T.operatorToken.value),T.variable instanceof at&&T.variable.hasProperties()&&T.variable.error("invalid object key")),T instanceof at&&T["this"]&&(T=new i(T.properties[0].name,T,"object")),T instanceof p||(r>o?(T instanceof i||(T=new i(T,T,"object")),(T.variable.base||T.variable).asKey=!0):(T instanceof i?(d=T.variable,F=T.value):(C=T.base.cache(e),d=C[0],F=C[1]),T=new i(new at(new b(w),[new t(d)]),F))),c&&n.push(this.makeCode(c)),n.push.apply(n,T.compileToFragments(e,x)),h&&n.push(this.makeCode(h));return s?n.push(this.makeCode(",\n"+a+w+"\n"+this.tab+")")):0!==N.length&&n.push(this.makeCode("\n"+this.tab+"}")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(s),e.Arr=n=function(e){function t(e){this.objects=e||[]}return Rt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;if(!this.objects.length)return[this.makeCode("[]")];if(e.indent+=et,t=X.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,F));return r}.call(this),r=s=0,o=n.length;o>s;r=++s)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return bt(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(s),e.Class=l=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new o,this.boundFuncs=[],this.body.classBody=!0}return Rt(n,e),n.prototype.children=["variable","parent","body"],n.prototype.defaultClassVariableName="_Class",n.prototype.determineName=function(){var e,n,i,r,s;return this.variable?(r=this.variable.properties,s=r[r.length-1],i=s?s instanceof t&&s.name:this.variable.base,i instanceof b||i instanceof B?(n=i.value,s||(e=wt(n),e&&this.variable.error(e)),At.call(T,n)>=0?"_"+n:n):this.defaultClassVariableName):this.defaultClassVariableName},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof nt?t.value=e:t instanceof h&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,s,o;for(o=this.boundFuncs,i=0,r=o.length;r>i;i++)n=o[i],s=new at(new nt,[new t(n)]).compile(e),this.ctor.body.unshift(new D(s+" = "+St("bind",e)+"("+s+", this)"))},n.prototype.addProperties=function(e,n,r){var s,o,a,c,l,u;return u=e.base.properties.slice(0),c=function(){var e;for(e=[];o=u.shift();)o instanceof i&&(a=o.variable.base,delete o.context,l=o.value,"constructor"===a.value?(this.ctor&&o.error("cannot define more than one constructor in a class"),l.bound&&o.error("cannot define a constructor as a bound function"),l instanceof h?o=this.ctor=l:(this.externalCtor=r.classScope.freeVariable("ctor"),o=new i(new b(this.externalCtor),l))):o.variable["this"]?l["static"]=!0:(s=a.isComplex()?new k(a):new t(a),o.variable=new at(new b(n),[new t(new B("prototype")),s]),l instanceof h&&l.bound&&(this.boundFuncs.push(a),l.bound=!1))),e.push(o); +return e}.call(this),pt(c)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(s){var a,c,l,h,u,p,d;if(a=!0,s instanceof n)return!1;if(s instanceof o){for(d=c=s.expressions,l=h=0,u=d.length;u>h;l=++h)p=d[l],p instanceof i&&p.variable.looksStatic(e)?p.value["static"]=!0:p instanceof at&&p.isObject(!0)&&(a=!1,c[l]=r.addProperties(p,e,t));s.expressions=c=gt(c)}return a&&!(s instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof p||n instanceof at&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new h,this.externalCtor?this.ctor.body.push(new D(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new D(e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,s,a,l,u,p,d;return(s=this.body.jumps())&&s.error("Class bodies cannot contain pure statements"),(n=this.body.contains(vt))&&n.error("Class bodies shouldn't reference arguments"),u=this.determineName(),l=new b(u),r=new h([],o.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(u),this.walkBody(u,e),this.ensureConstructor(u),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(l),this.parent&&(d=new b(e.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new m(l,d)),r.params.push(new j(d)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),a=new M(new c(r,t)),this.variable&&(a=new i(this.variable,a)),a.compileToFragments(e)},n}(s),e.Assign=i=function(e){function n(e,t,n,i){this.variable=e,this.value=t,this.context=n,null==i&&(i={}),this.param=i.param,this.subpattern=i.subpattern,this.operatorToken=i.operatorToken}return Rt(n,e),n.prototype.children=["variable","value"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===x&&null!=this.context&&At.call(this.context,"?")>=0},n.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){return _t(e,this,"variable")},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,l,u,p,d,f,m,g;if(i=this.variable instanceof at){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if("||="===(c=this.context)||"&&="===c||"?="===c)return this.compileConditional(e);if("**="===(l=this.context)||"//="===l||"%%="===l)return this.compileSpecialMath(e)}return this.value instanceof h&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(u=this.variable.properties)?u.length:void 0)>=2&&(p=this.variable.properties,o=p.length>=3?Ot.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],s=p[r++],"prototype"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new at(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(g=this.variable.unwrapAll(),g.isAssignable()||this.variable.error("'"+this.variable.compile(e)+"' can't be assigned"),("function"==typeof g.hasProperties?g.hasProperties():void 0)||(this.param?e.scope.add(g.value,"var"):e.scope.find(g.value))),m=this.value.compileToFragments(e,F),i&&this.variable.base instanceof O&&(this.variable.front=!0),n=this.variable.compileToFragments(e,F),"object"===this.context?(f=bt(n),At.call(T,f)>=0&&(n.unshift(this.makeCode('"')),n.push(this.makeCode('"'))),n.concat(this.makeCode(": "),m)):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),m),F>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,s,o,a,c,l,h,u,p,d,m,g,y,v,w,T,N,C,E,_,S,R,I,O,j,M,P;if(I=e.level===x,j=this.value,w=this.variable.base.objects,!(T=w.length))return s=j.compileToFragments(e),e.level>=L?this.wrapInBraces(s):s;if(v=w[0],1===T&&v instanceof f&&v.error("Destructuring assignment has no target"),u=this.variable.isObject(),I&&1===T&&!(v instanceof X))return o=null,v instanceof n&&"object"===v.context?(C=v,E=C.variable,h=E.base,v=C.value,v instanceof n&&(o=v.value,v=v.variable)):(v instanceof n&&(o=v.value,v=v.variable),h=u?v["this"]?v.properties[0].name:new B(v.unwrap().value):new A(0)),i=h.unwrap()instanceof B,j=new at(j),j.properties.push(new(i?t:k)(h)),g=wt(v.unwrap().value),g&&v.error(g),o&&(j=new $("?",j,o)),new n(v,j,null,{param:this.param}).compileToFragments(e,x);for(M=j.compileToFragments(e,F),P=bt(M),r=[],a=!1,j.unwrap()instanceof b&&!this.variable.assigns(P)||(r.push([this.makeCode((N=e.scope.freeVariable("ref"))+" = ")].concat(Ot.call(M))),M=[this.makeCode(N)],P=N),l=d=0,m=w.length;m>d;l=++d){if(v=w[l],h=l,!a&&v instanceof X)y=v.name.unwrap().value,v=v.unwrap(),O=T+" <= "+P+".length ? "+St("slice",e)+".call("+P+", "+l,(R=T-l-1)?(p=e.scope.freeVariable("i",{single:!0}),O+=", "+p+" = "+P+".length - "+R+") : ("+p+" = "+l+", [])"):O+=") : []",O=new D(O),a=p+"++";else{if(!a&&v instanceof f){(R=T-l-1)&&(1===R?a=P+".length - 1":(p=e.scope.freeVariable("i",{single:!0}),O=new D(p+" = "+P+".length - "+R),a=p+"++",r.push(O.compileToFragments(e,F))));continue}(v instanceof X||v instanceof f)&&v.error("multiple splats/expansions are disallowed in an assignment"),o=null,v instanceof n&&"object"===v.context?(_=v,S=_.variable,h=S.base,v=_.value,v instanceof n&&(o=v.value,v=v.variable)):(v instanceof n&&(o=v.value,v=v.variable),h=u?v["this"]?v.properties[0].name:new B(v.unwrap().value):new D(a||h)),y=v.unwrap().value,i=h.unwrap()instanceof B,O=new at(new D(P),[new(i?t:k)(h)]),o&&(O=new $("?",O,o))}null!=y&&(g=wt(y),g&&v.error(g)),r.push(new n(v,O,null,{param:this.param,subpattern:!0}).compileToFragments(e,F))}return I||this.subpattern||r.push(M),c=this.joinFragmentArrays(r,", "),F>e.level?c:this.wrapInBraces(c)},n.prototype.compileConditional=function(e){var t,i,r,s;return r=this.variable.cacheReference(e),i=r[0],s=r[1],i.properties.length||!(i.base instanceof D)||i.base instanceof nt||e.scope.check(i.base.value)||this.variable.error('the variable "'+i.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),At.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new y(new d(i),s,{type:"if"}).addElse(new n(s,this.value,"=")).compileToFragments(e)):(t=new $(this.context.slice(0,-1),i,new n(s,this.value,"=")).compileToFragments(e),F>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new $(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,s,o,a,c,l,h,u,p;return a=this.variable.properties.pop().range,i=a.from,h=a.to,n=a.exclusive,o=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,L)),r=c[0],s=c[1]):r=s="0",h?(null!=i?i.isNumber():void 0)&&h.isNumber()?(h=h.compile(e)-s,n||(h+=1)):(h=h.compile(e,N)+" - "+s,n||(h+=" + 1")):h="9e9",l=this.value.cache(e,F),u=l[0],p=l[1],t=[].concat(this.makeCode("[].splice.apply("+o+", ["+r+", "+h+"].concat("),u,this.makeCode(")), "),p),e.level>x?this.wrapInBraces(t):t},n}(s),e.Code=h=function(e){function t(e,t,n){this.params=e||[],this.body=t||new o,this.bound="boundfunc"===n,this.wrap=!0,this.isGenerator=!!this.body.contains(function(e){return e instanceof $&&e.isYield()||e instanceof ht}),this.isAsync=!!this.body.contains(function(e){return e instanceof $&&e.isAwait()||e instanceof r}),this.isContinuation=this.isGenerator||this.isAsync,this.isAsync&&this.isGenerator&&this.error("function can't contain both yield and await")}return Rt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=S,t.prototype.makeScope=function(e){return new Y(e,this.body,this)},t.prototype.compileNode=function(e){var r,s,a,l,h,u,p,d,m,g,v,k,w,T,C,F,L,E,x,_,S,R,I,A,O,M,P,B,V,U,H,G,q,Y;if(this.bound&&(null!=(A=e.scope.method)?A.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",Y=new t([new j(new b(this.context))],new o([this])),a=new c(Y,[new nt]),a.updateLocationDataIfMissing(this.locationData),a.compileNode(e);for(e.scope=dt(e,"classScope")||this.makeScope(e.scope),e.scope.shared=dt(e,"sharedScope"),e.indent+=et,delete e.bare,delete e.isExistentialEquals,_=[],h=[],O=this.params,p=0,g=O.length;g>p;p++)x=O[p],x instanceof f||e.scope.parameter(x.asReference(e));for(M=this.params,d=0,v=M.length;v>d;d++)if(x=M[d],x.splat||x instanceof f){for(P=this.params,m=0,k=P.length;k>m;m++)E=P[m],E instanceof f||!E.name.value||e.scope.add(E.name.value,"var",!0);U=new i(new at(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)E=i[n],r.push(E.asReference(e));return r}.call(this))),new at(new b("arguments")));break}for(B=this.params,L=0,w=B.length;w>L;L++)x=B[L],x.isComplex()?(G=I=x.asReference(e),x.value&&(G=new $("?",I,x.value)),h.push(new i(new at(x.name),G,"=",{param:!0}))):(I=x,x.value&&(F=new D(I.name.value+" == null"),G=new i(new at(x.name),x.value,"="),h.push(new y(F,G)))),U||_.push(I);for(q=this.body.isEmpty(),U&&h.unshift(U),h.length&&(V=this.body.expressions).unshift.apply(V,h),u=S=0,T=_.length;T>S;u=++S)E=_[u],_[u]=E.compileToFragments(e),e.scope.parameter(bt(_[u]));for(H=[],this.eachParamName(function(e,t){return At.call(H,e)>=0&&t.error("multiple parameters named "+e),H.push(e)}),q||this.noReturn||this.body.makeReturn(),s=this.isAsync&&this.wrap,l="",s&&(l+=St("async",e)+"("),l+="function",(this.isGenerator||this.isAsync)&&(l+="*"),this.ctor&&(l+=" "+this.name),l+="(",r=[this.makeCode(l)],u=R=0,C=_.length;C>R;u=++R)E=_[u],u&&r.push(this.makeCode(", ")),r.push.apply(r,E);return r.push(this.makeCode(") {")),this.body.isEmpty()||(r=r.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),r.push(this.makeCode("}")),s&&r.push(this.makeCode(")")),this.ctor?[this.makeCode(this.tab)].concat(Ot.call(r)):this.front||e.level>=N?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,s;for(r=this.params,s=[],t=0,n=r.length;n>t;t++)i=r[t],s.push(i.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(s),e.Param=j=function(e){function t(e,t,n){var i,r;this.name=e,this.value=t,this.splat=n,i=wt(this.name.unwrapAll().value),i&&this.name.error(i),this.name instanceof O&&this.name.generated&&(r=this.name.objects[0].operatorToken,r.error("unexpected "+r.value))}return Rt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,F)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n["this"]?(t=n.properties[0].name.value,At.call(T,t)>=0&&(t="_"+t),n=new b(e.scope.freeVariable(t))):n.isComplex()&&(n=new b(e.scope.freeVariable("arg"))),n=new at(n),this.splat&&(n=new X(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,s,o,a,c,l;if(null==t&&(t=this.name),n=function(t){return e("@"+t.properties[0].name.value,t)},t instanceof D)return e(t.value,t);if(t instanceof at)return n(t);for(l=null!=(c=t.objects)?c:[],r=0,s=l.length;s>r;r++)a=l[r],a instanceof i&&null==a.context&&(a=a.variable),a instanceof i?(a.value instanceof i&&(a=a.value),this.eachName(e,a.value.unwrap())):a instanceof X?(o=a.name.unwrap(),e(o.value,o)):a instanceof at?a.isArray()||a.isObject()?this.eachName(e,a.base):a["this"]?n(a):e(a.base.value,a.base):a instanceof f||a.error("illegal parameter "+a.compile())},t}(s),e.Splat=X=function(e){function t(e){this.name=e.compile?e:new D(e)}return Rt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=lt,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,s,o,a,c,l,h,u,p,d,f;for(h=-1;(f=n[++h])&&!(f instanceof t););if(h>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,F),i?c:[].concat(f.makeCode(St("slice",e)+".call("),c,f.makeCode(")"));for(r=n.slice(h),l=u=0,d=r.length;d>u;l=++u)f=r[l],o=f.compileToFragments(e,F),r[l]=f instanceof t?[].concat(f.makeCode(St("slice",e)+".call("),o,f.makeCode(")")):[].concat(f.makeCode("["),o,f.makeCode("]"));return 0===h?(f=n[0],a=f.joinFragmentArrays(r.slice(1),", "),r[0].concat(f.makeCode(".concat("),a,f.makeCode(")"))):(s=function(){var t,i,r,s;for(r=n.slice(0,h),s=[],t=0,i=r.length;i>t;t++)f=r[t],s.push(f.compileToFragments(e,F));return s}(),s=n[0].joinFragmentArrays(s,", "),a=n[h].joinFragmentArrays(r,", "),p=n[n.length-1],[].concat(n[0].makeCode("["),s,n[h].makeCode("].concat("),a,p.makeCode(")")))},t}(s),e.Expansion=f=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t.prototype.isComplex=S,t.prototype.compileNode=function(){return this.error("Expansion must be used inside a destructuring assignment or parameter list")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(s),e.While=ct=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return Rt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=lt,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=et,r="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(i=e.scope.freeVariable("results")),r=""+this.tab+i+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new y(new M(this.guard).invert(),new J("continue"))):this.guard&&(n=o.wrap([new y(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,x),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,E),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+i+";")),t},t}(s),e.Op=$=function(e){function n(e,t,n,i){if("in"===e)return new v(t,n);if("do"===e)return this.generateDo(t);if("new"===e){if(t instanceof c&&!t["do"]&&!t.isNew)return t.newInstance();(t instanceof h&&t.bound||t["do"])&&(t=new M(t))}return this.operator=r[e]||e,this.originalOperator=e,this.first=t,this.second=n,this.flip=!!i,this}var r,s;return Rt(n,e),r={"==":"===","!=":"!==",of:"in",await:"yield",yieldfrom:"yield*"},s={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isNumber=function(){var e;return this.isUnary()&&("+"===(e=this.operator)||"-"===e)&&this.first instanceof at&&this.first.isNumber()},n.prototype.isAwait=function(){return"await"===this.originalOperator},n.prototype.isYield=function(){var e;return"await"!==this.originalOperator&&("yield"===(e=this.operator)||"yield*"===e)},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){return!this.isNumber()},n.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},n.prototype.invert=function(){var e,t,i,r,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return new M(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(r=s[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new M(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof n&&("!"===(o=i.operator)||"in"===o||"instanceof"===o)?i:new n("!",this)},n.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&_t(e,this,"first")},n.prototype.generateDo=function(e){var t,n,r,s,o,a,l,u;for(a=[],n=e instanceof i&&(l=e.value.unwrap())instanceof h?l:e,u=n.params||[],r=0,s=u.length;s>r;r++)o=u[r],o.value?(a.push(o.value),delete o.value):a.push(o);return t=new c(e,a),t["do"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),"delete"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),("--"===(s=this.operator)||"++"===s)&&(r=wt(this.first.unwrapAll().value),r&&this.first.error(r)),this.isYield()||this.isAwait())return this.compileContinuation(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case"?":return this.compileExistence(e);case"**":return this.compilePower(e);case"//":return this.compileFloorDivision(e);case"%%":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,L),o=this.second.compileToFragments(e,L),t=[].concat(i,this.makeCode(" "+this.operator+" "),o),L>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,L),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,L)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new b(e.scope.freeVariable("ref")),t=new M(new i(n,this.first))):(t=this.first,n=t),new y(new d(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),"!"===t&&this.first instanceof d?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=N?new M(this).compileToFragments(e):(r="+"===t||"-"===t,("new"===t||"typeof"===t||"delete"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof n||"new"===t&&this.first.isStatement(e))&&(this.first=new M(this.first)),i.push(this.first.compileToFragments(e,L)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},n.prototype.compileContinuation=function(e){var t,n,i;return n=[],t=this.operator,null==e.scope.parent&&this.error(this.originalOperator+" can only occur inside functions"),At.call(Object.keys(this.first),"expression")>=0&&!(this.first instanceof it)?null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,L)):(e.level>=E&&n.push([this.makeCode("(")]),n.push([this.makeCode(t)]),""!==(null!=(i=this.first.base)?i.value:void 0)&&n.push([this.makeCode(" ")]),n.push(this.first.compileToFragments(e,L)),e.level>=E&&n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},n.prototype.compilePower=function(e){var n;return n=new at(new b("Math"),[new t(new B("pow"))]),new c(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new at(new b("Math"),[new t(new B("floor"))]),i=new n("/",this.first,this.second),new c(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new at(new D(St("modulo",e))),new c(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},n}(s),e.In=v=function(e){function t(e,t){this.object=e,this.array=t}return Rt(t,e),t.prototype.children=["object","array"],t.prototype.invert=_,t.prototype.compileNode=function(e){var t,n,i,r,s;if(this.array instanceof at&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,i=s.length;i>n;n++)if(r=s[n],r instanceof X){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,s,o,a,c,l,h,u,p;for(c=this.object.cache(e,L),u=c[0],a=c[1],l=this.negated?[" !== "," && "]:[" === "," || "],t=l[0],n=l[1],p=[],h=this.array.base.objects,i=s=0,o=h.length;o>s;i=++s)r=h[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:u,this.makeCode(t),r.compileToFragments(e,N));return L>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,F),r=i[0],n=i[1],t=[].concat(this.makeCode(St("indexOf",e)+".call("),this.array.compileToFragments(e,F),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),bt(r)===bt(n)?t:(t=r.concat(this.makeCode(", "),t),F>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(s),e.Try=rt=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return Rt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=lt,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,s,o,a;return e.indent+=et,a=this.attempt.compileToFragments(e,x),t=this.recovery?(r=e.scope.freeVariable("error",{reserve:!1}),o=new b(r),this.errorVariable?(s=wt(this.errorVariable.unwrapAll().value),s?this.errorVariable.error(s):void 0,this.recovery.unshift(new i(this.errorVariable,o))):void 0,[].concat(this.makeCode(" catch ("),o.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,x),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:(r=e.scope.freeVariable("error",{reserve:!1}),[this.makeCode(" catch ("+r+") {}")]),n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,x),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(this.tab+"try {\n"),a,this.makeCode("\n"+this.tab+"}"),t,n)},t}(s),e.Throw=it=function(e){function t(e){this.expression=e}return Rt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=lt,t.prototype.jumps=S,t.prototype.makeReturn=tt,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(s),e.Existence=d=function(e){function t(e){this.expression=e}return Rt(t,e),t.prototype.children=["expression"],t.prototype.invert=_,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,L),this.expression.unwrap()instanceof b&&!e.scope.check(i)?(r=this.negated?["===","||"]:["!==","&&"],t=r[0],n=r[1],i="typeof "+i+" "+t+' "undefined" '+n+" "+i+" "+t+" null"):i=i+" "+(this.negated?"==":"!=")+" null",[this.makeCode(C>=e.level?i:"("+i+")")]},t}(s),e.Parens=M=function(e){function t(e){this.body=e}return Rt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof at&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,E),t=L>e.level&&(n instanceof $||n instanceof c||n instanceof g&&n.returns),t?i:this.wrapInBraces(i))},t}(s),e.StringWithInterpolations=K=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Rt(t,e),t}(M),e.For=g=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=o.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof at&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof at&&this.source.base instanceof V&&!this.source.properties.length,this.pattern=this.name instanceof at,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return Rt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,s,a,c,l,h,u,p,d,f,m,g,v,k,w,T,N,C,L,E,_,S,R,I,A,O,$,j,P,B,V,U;return t=o.wrap([this.body]),_=t.expressions,T=_[_.length-1],(null!=T?T.jumps():void 0)instanceof G&&(this.returns=!1),$=this.range?this.source.base:this.source,O=e.scope,this.pattern||(C=this.name&&this.name.compile(e,F)),g=this.index&&this.index.compile(e,F),C&&!this.pattern&&O.find(C),g&&O.find(g),this.returns&&(A=O.freeVariable("results")),v=this.object&&g||O.freeVariable("i",{single:!0}),k=this.range&&C||g||v,w=k!==v?k+" = ":"",this.step&&!this.range&&(S=this.cacheToCodeFragments(this.step.cache(e,F,yt)),j=S[0],B=S[1],this.step.isNumber()&&(P=Number(B))),this.pattern&&(C=v),U="",d="",l="",f=this.tab+et,this.range?p=$.compileToFragments(Nt(e,{index:v,name:C,step:this.step,isComplex:yt})):(V=this.source.compile(e,F),!C&&!this.own||this.source.unwrap()instanceof b||(l+=""+this.tab+(E=O.freeVariable("ref"))+" = "+V+";\n",V=E),C&&!this.pattern&&(L=C+" = "+V+"["+k+"]"),this.object||(j!==B&&(l+=""+this.tab+j+";\n"),u=0>P,this.step&&null!=P&&u||(N=O.freeVariable("len")),a=""+w+v+" = 0, "+N+" = "+V+".length",c=""+w+v+" = "+V+".length - 1",r=v+" < "+N,s=v+" >= 0",this.step?(null!=P?u&&(r=s,a=c):(r=B+" > 0 ? "+r+" : "+s,a="("+B+" > 0 ? ("+a+") : "+c+")"),m=v+" += "+B):m=""+(k!==v?"++"+v:v+"++"),p=[this.makeCode(a+"; "+r+"; "+w+m)])),this.returns&&(R=""+this.tab+A+" = [];\n",I="\n"+this.tab+"return "+A+";",t.makeReturn(A)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new y(new M(this.guard).invert(),new J("continue"))):this.guard&&(t=o.wrap([new y(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new D(V+"["+k+"]"))),h=[].concat(this.makeCode(l),this.pluckDirectCall(e,t)),L&&(U="\n"+f+L+";"),this.object&&(p=[this.makeCode(k+" in "+V)],this.own&&(d="\n"+f+"if (!"+St("hasProp",e)+".call("+V+", "+k+")) continue;")),n=t.compileToFragments(Nt(e,{indent:f}),x),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(h,this.makeCode(""+(R||"")+this.tab+"for ("),p,this.makeCode(") {"+d+U),n,this.makeCode(this.tab+"}"+(I||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,s,o,a,l,u,p,d,f,m,g,y,v,k,w;for(r=[],d=t.expressions,a=l=0,u=d.length;u>l;a=++l)s=d[a],s=s.unwrapAll(),s instanceof c&&(w=null!=(f=s.variable)?f.unwrapAll():void 0,(w instanceof h||w instanceof at&&(null!=(m=w.base)?m.unwrapAll():void 0)instanceof h&&1===w.properties.length&&("call"===(g=null!=(y=w.properties[0].name)?y.value:void 0)||"apply"===g))&&(o=(null!=(v=w.base)?v.unwrapAll():void 0)||w,p=new b(e.scope.freeVariable("fn")),n=new at(p),w.base&&(k=[n,w],w.base=k[0],n=k[1]),t.expressions[a]=new c(n,s.args),r=r.concat(this.makeCode(this.tab),new i(p,o).compileToFragments(e,x),this.makeCode(";\n"))));return r},t}(ct),e.Switch=Z=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return Rt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=lt,t.prototype.jumps=function(e){var t,n,i,r,s,o,a,c;for(null==e&&(e={block:!0}),o=this.cases,i=0,s=o.length;s>i;i++)if(a=o[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,s;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new o([new D("void 0")]))),null!=(s=this.otherwise)&&s.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g;for(c=e.indent+et,l=e.indent=c+et,o=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,E):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=h=0,p=f.length;p>h;a=++h){for(m=f[a],r=m[0],t=m[1],g=gt([r]),u=0,d=g.length;d>u;u++)i=g[u],this.subject||(i=i.invert()),o=o.concat(this.makeCode(c+"case "),i.compileToFragments(e,E),this.makeCode(":\n"));if((n=t.compileToFragments(e,x)).length>0&&(o=o.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof G||s instanceof D&&s.jumps()&&"debugger"!==s.value||o.push(i.makeCode(l+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(c+"default:\n")].concat(Ot.call(this.otherwise.compileToFragments(e,x)),[this.makeCode("\n")])),o.push(this.makeCode(this.tab+"}")),o},t}(s),e.If=y=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition="unless"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return Rt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===x||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new o([new D("void 0")]))),this.body&&(this.body=new o([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new o([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof o?e:new o([e])},t.prototype.compileStatement=function(e){var n,i,r,s,o,a,c;return r=dt(e,"chainChild"),(o=dt(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+et,s=this.condition.compileToFragments(e,E),i=this.ensureBlock(this.body).compileToFragments(Nt(e,{indent:c})),a=[].concat(this.makeCode("if ("),s,this.makeCode(") {\n"),i,this.makeCode("\n"+this.tab+"}")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,x))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Nt(e,{indent:c}),x),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,C),n=this.bodyNode().compileToFragments(e,F),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,F):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=C?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(s),st={async:function(){return"(function(){ var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); }); }; }; function Tracker() { var self = this; this.thenHandle = function(value) { self.result = value; self.tick(); }; this.failHandle = function(err) { self.result = err; self.throw = true; self.tick(); }; this.throw = false; this.result = undefined; this.iterator = undefined; this.win = undefined; this.fail = undefined; }; Tracker.prototype = { tick: function() { var next; if (this.throw) { next = this.iterator.throw(this.result); this.throw = false; } else { next = this.iterator.next(this.result); } if (next.done) { this.win(next.value); } else { next.value.then(this.thenHandle, this.failHandle); } } }; return async; }())" +},extend:function(e){return"function(child, parent) { for (var key in parent) { if ("+St("hasProp",e)+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b = +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},x=1,E=2,F=3,C=4,L=5,N=6,et=" ",q=/^[+-]?\d+$/,St=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,st[e](t)),i.utilities[e]=n)},Ct=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},vt=function(e){return e instanceof D&&"arguments"===e.value&&!e.asKey},kt=function(e){return e instanceof nt&&!e.asKey||e instanceof h&&e.bound||e instanceof Q},yt=function(e){return e.isComplex()||("function"==typeof e.isAssignable?e.isAssignable():void 0)},_t=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new at(t),i}}.call(this),t.exports}(),require["./sourcemap"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,s;return t.prototype.add=function(t,n,i){var r,s,o,a;return null==i&&(i={}),o=n[0],s=n[1],a=(r=this.lines)[o]||(r[o]=new e(o)),a.add(s,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,b;for(null==e&&(e={}),null==t&&(t=null),b=0,s=0,a=0,o=0,d=!1,n="",f=this.lines,u=i=0,c=f.length;c>i;u=++i)if(h=f[u])for(m=h.columns,r=0,l=m.length;l>r;r++)if(p=m[r]){for(;p.line>b;)s=0,d=!1,n+=";",b++;d&&(n+=",",d=!1),n+=this.encodeVlq(p.column-s),s=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-o),o=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inlineMap&&(g.sourcesContent=[t]),g},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+o;a||!t;)n=a&s,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e)}()},t}(),t.exports=n}.call(this),t.exports}(),require["./coffee-script"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,l,h,u,p,d,f,m,g,b,y,v,k={}.hasOwnProperty,w=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(c=require("fs"),y=require("vm"),m=require("path"),t=require("./lexer").Lexer,f=require("./parser").parser,h=require("./helpers"),n=require("./sourcemap"),e.VERSION="1.10.0",e.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md"],e.helpers=h,i=function(e){switch(!1){case"function"!=typeof Buffer:return new Buffer(e).toString("base64");case"function"!=typeof btoa:return btoa(e);default:throw Error("Unable to base64 encode inline sourcemap.")}},v=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n)}catch(r){if(i=r,"string"!=typeof t)throw i;throw h.updateSyntaxError(i,t,n.filename)}}},e.compile=r=v(function(e,t){var r,s,o,a,c,l,u,p,m,g,b,y,v,k,w,T,N,C,F,L;for(v=h.merge,a=h.extend,t=a({},t),u=t.sourceMap||t.inlineMap,u&&(y=new n),F=d.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=F.length;t>e;e++)C=F[e],"IDENTIFIER"===C[0]&&n.push(C[1]);return n}(),l=f.parse(F).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),r=0,g="",m=0,b=l.length;b>m;m++)c=l[m],u&&(c.locationData&&!/^[;\s]*$/.test(c.code)&&y.add([c.locationData.first_line,c.locationData.first_column],[s,r],{noReplace:!0}),k=h.count(c.code,"\n"),s+=k,k?r=c.code.length-(c.code.lastIndexOf("\n")+1):r+=c.code.length),g+=c.code;return t.header&&(p="Generated by CoffeeScript "+this.VERSION,g="// "+p+"\n"+g),u&&(L=y.generate(t,e)),t.inlineMap&&(o=i(JSON.stringify(L)),T="//# sourceMappingURL=data:application/json;base64,"+o,N="//# sourceURL="+(null!=(w=t.filename)?w:"coffeescript"),g=g+"\n"+T+"\n"+N),t.sourceMap?{js:g,sourceMap:y,v3SourceMap:JSON.stringify(L,null,2)}:g}),e.tokens=v(function(e,t){return d.tokenize(e,t)}),e.nodes=v(function(e,t){return"string"==typeof e?f.parse(d.tokenize(e,t)):f.parse(e)}),e.run=function(e,t){var n,i,s,o;return null==t&&(t={}),s=require.main,s.filename=process.argv[1]=t.filename?c.realpathSync(t.filename):".",s.moduleCache&&(s.moduleCache={}),i=t.filename?m.dirname(c.realpathSync(t.filename)):c.realpathSync("."),s.paths=require("module")._nodeModulePaths(i),(!h.isCoffee(s.filename)||require.extensions)&&(n=r(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,i,s,o,a,c,l,h,u,p,d,f,g,b,v,w,T;if(null==t&&(t={}),e=e.trim()){if(o=null!=(f=y.Script.createContext)?f:y.createContext,c=null!=(g=y.isContext)?g:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=o(),b=t.sandbox;for(h in b)k.call(b,h)&&(T=b[h],w[h]=T)}w.global=w.root=w.GLOBAL=w}else w=global;if(w.__filename=t.filename||"eval",w.__dirname=m.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=require("module"),w.module=i=new n(t.modulename||"eval"),w.require=s=function(e){return n._load(e,i,!0)},i.filename=w.__filename,v=Object.getOwnPropertyNames(require),a=0,u=v.length;u>a;a++)d=v[a],"paths"!==d&&"arguments"!==d&&"caller"!==d&&(s[d]=require[d]);s.paths=i.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,i)}}}p={};for(h in t)k.call(t,h)&&(T=t[h],p[h]=T);return p.bare=!0,l=r(e,p),w===global?y.runInThisContext(l):y.runInContext(l,w)}},e.register=function(){return require("./register")},require.extensions)for(g=this.FILE_EXTENSIONS,o=function(e){var t;return null!=(t=require.extensions)[e]?t[e]:t[e]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+e+" files.")}},u=0,p=g.length;p>u;u++)s=g[u],o(s);e._compileFile=function(e,t,n){var i,s,o,a;null==t&&(t=!1),null==n&&(n=!1),o=c.readFileSync(e,"utf8"),a=65279===o.charCodeAt(0)?o.substring(1):o;try{i=r(a,{filename:e,sourceMap:t,inlineMap:n,sourceFiles:[e],literate:h.isLiterate(e)})}catch(l){throw s=l,h.updateSyntaxError(s,a,e)}return i},d=new t,f.lexer={lex:function(){var e,t;return t=f.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],f.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return f.tokens=e,this.pos=0},upcomingInput:function(){return""}},f.yy=require("./nodes"),f.yy.parseError=function(e,t){var n,i,r,s,o,a;return o=t.token,s=f.errorToken,a=f.tokens,i=s[0],r=s[1],n=s[2],r=function(){switch(!1){case s!==a[a.length-1]:return"end of input";case"INDENT"!==i&&"OUTDENT"!==i:return"indentation";case"IDENTIFIER"!==i&&"NUMBER"!==i&&"INFINITY"!==i&&"STRING"!==i&&"STRING_START"!==i&&"REGEX"!==i&&"REGEX_START"!==i:return i.replace(/_START$/,"").toLowerCase();default:return h.nameWhitespaceCharacter(r)}}(),h.throwSyntaxError("unexpected "+r,n)},a=function(e,t){var n,i,r,s,o,a,c,l,h,u,p,d;return s=void 0,r="",e.isNative()?r="native":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(r=e.getEvalOrigin()+", ")):s=e.getFileName(),s||(s=""),l=e.getLineNumber(),i=e.getColumnNumber(),u=t(s,l,i),r=u?s+":"+u[0]+":"+u[1]:s+":"+l+":"+i),o=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(h=e.getMethodName(),d=e.getTypeName(),o?(p=n="",d&&o.indexOf(d)&&(p=d+"."),h&&o.indexOf("."+h)!==o.length-h.length-1&&(n=" [as "+h+"]"),""+p+o+n+" ("+r+")"):d+"."+(h||"")+" ("+r+")"):a?"new "+(o||"")+" ("+r+")":o?o+" ("+r+")":r},b={},l=function(t){var n,i;if(b[t])return b[t];if(i=null!=m?m.extname(t):void 0,!(0>w.call(e.FILE_EXTENSIONS,i)))return n=e._compileFile(t,!0),b[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var i,r,s;return s=function(e,t,n){var i,r;return r=l(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var t,r,o;for(o=[],t=0,r=n.length;r>t&&(i=n[t],i.getFunction()!==e.run);t++)o.push(" at "+a(i,s));return o}(),""+t+"\n"+r.join("\n")+"\n"}}.call(this),t.exports}(),require["./browser"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=require("./coffee-script"),CoffeeScript.require=require,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&(compile=function(e,t){return null==t&&(t={}),t.inlineMap=!0,CoffeeScript.compile(e,t)}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var s,o;if(4===r.readyState){if(0!==(o=r.status)&&200!==o)throw Error("Could not load "+e);if(s=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},r.send(null)},runScripts=function(){var e,t,n,i,r,s,o,a,c,l,h;for(h=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=h.length;n>e;e++)c=h[e],i=c.type,indexOf.call(t,i)>=0&&r.push(c);return r}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},i=function(i,r){var s,o;return s={literate:i.type===t[1]},o=i.src||i.getAttribute("data-src"),o?CoffeeScript.load(o,function(t){return e[r]=t,n()},s,!0):(s.sourceFiles=["embedded"],e[r]=[i.innerHTML,s])},r=o=0,a=e.length;a>o;r=++o)l=e[r],i(l,r);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts))}.call(this),module.exports}(),require["./coffee-script"]}();"function"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript})(this); \ No newline at end of file diff --git a/test/async.coffee b/test/async.coffee index dae7b283c0..45c7f57e49 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -5,7 +5,62 @@ execute the then method snchronously when sync promises are used. All promises used here are sync, as they resolve/reject immediately, and use no callbacks. ### -global.Promise = require "./promise.js" # override native Promise +class Promise + constructor: (fn) -> + @_fulfilled = no + @_rejected = no + @_value = null + @_thens = [] + + fn @_win.bind(this), @_fail.bind(this) + + _empty: -> + + _win: (val) -> + @_fulfilled = true + @_value = val + while @_thens.length > 0 + {fulfill, win} = @_thens.shift() + fulfill win val + 1 + + + + _fail: (val) -> + @_rejected = true + @_value = val + while @_thens.length > 0 + {fail, reject} = @_thens.shift() + fail val + reject val + 0 + + + _iscomplete: -> + @_fulfilled or @_rejected + + + then: (win, fail = @_empty) -> + self = this + fulfill = null + reject = null + promise = new Promise (win, fail) -> + fulfill = win + reject = fail + + if @_iscomplete() + if @_fulfilled + fulfill win @_value + else + fail @_value + reject @_value + else + @_thens.push + win : win + fail : fail + fulfill : fulfill + reject : reject + promise # always fulfills winning = (val)-> diff --git a/test/promise.js b/test/promise.js deleted file mode 100644 index 46f29320bd..0000000000 --- a/test/promise.js +++ /dev/null @@ -1,78 +0,0 @@ -function Promise (fn) { - this._fulfilled = false; - this._rejected = false; - this._value = undefined; - this._thens = []; - - fn(this._win.bind(this), this._fail.bind(this)); -} - -Promise.prototype = { - constructor: Promise, - - _empty: function(){ - - }, - - _win: function(val){ - this._fulfilled = true; - this._value = val; - while (this._thens.length > 0){ - var rval; - thenable = this._thens.shift(); - - rval = thenable.win(val); - thenable.fulfill(rval); - } - }, - - _fail: function(val){ - this._rejected = true; - this._value = val; - while (this._thens.length > 0){ - thenable = this._thens.shift(); - thenable.fail(val); - thenable.reject(val); - } - }, - - _iscomplete: function(){ - return this._fulfilled || this._rejected; - }, - - then: function(win, fail){ - var self = this, - fulfill, - reject, - promise = new Promise(function(win, fail){ - fulfill = win; - reject = fail; - }); - - if (fail === undefined){ - fail = this._empty; - } - - if (this._iscomplete()){ - if (this._fulfilled){ - var rval; - rval = win(this._value); - fulfill(rval); - } else { - fail(this._value); - reject(this._value); - } - } else { - this._thens.push({ - win: win, - fail: fail, - fulfill: fulfill, - reject: reject - }); - } - - return promise; - } -}; - -module.exports = Promise; \ No newline at end of file From 0cdaee07c4f885aa3da51b30872d12dcf962ef16 Mon Sep 17 00:00:00 2001 From: Gabe Date: Thu, 22 Sep 2016 12:47:39 -0700 Subject: [PATCH 13/35] Minor cleanup --- .gitignore | 4 +--- Cakefile | 5 ----- lib/coffee-script/lexer.js | 4 ++-- src/lexer.coffee | 6 +++--- src/nodes.coffee | 4 ++-- 5 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index dba2cceee0..2718abbefa 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,6 @@ test.litcoffee parser.output test/fixtures/underscore test/*.js -!test/promise.js examples/beautiful_code/parse.coffee *.gem -/node_modules -build.sh +/node_modules \ No newline at end of file diff --git a/Cakefile b/Cakefile index ce70fb20ed..ffb6db49ba 100644 --- a/Cakefile +++ b/Cakefile @@ -83,11 +83,6 @@ monthNames = [ 'December' ] -harmonyFiles = [ - 'async.coffee' - 'generators.coffee' -] - formatDate = (date) -> date.replace /^(\d\d\d\d)-(\d\d)-(\d\d)$/, (match, $1, $2, $3) -> "#{monthNames[$2 - 1]} #{+$3}, #{$1}" diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index a37a8914f0..0c41ae4920 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -931,9 +931,9 @@ exports.isUnassignable = isUnassignable; - JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super', 'import', 'export', 'default']; + JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'await', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super', 'import', 'export', 'default']; - COFFEE_KEYWORDS = ['undefined', 'Infinity', 'NaN', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when', 'await']; + COFFEE_KEYWORDS = ['undefined', 'Infinity', 'NaN', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; COFFEE_ALIAS_MAP = { and: '&&', diff --git a/src/lexer.coffee b/src/lexer.coffee index 4e0b137879..834d4649f2 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -800,7 +800,7 @@ exports.isUnassignable = isUnassignable JS_KEYWORDS = [ 'true', 'false', 'null', 'this' 'new', 'delete', 'typeof', 'in', 'instanceof' - 'return', 'throw', 'break', 'continue', 'debugger', 'yield' + 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'await' 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally' 'class', 'extends', 'super' 'import', 'export', 'default' @@ -809,7 +809,7 @@ JS_KEYWORDS = [ # CoffeeScript-only keywords. COFFEE_KEYWORDS = [ 'undefined', 'Infinity', 'NaN', - 'then', 'unless', 'until', 'loop', 'of', 'by', 'when', 'await' + 'then', 'unless', 'until', 'loop', 'of', 'by', 'when' ] COFFEE_ALIAS_MAP = @@ -988,4 +988,4 @@ NOT_REGEX = INDEXABLE.concat ['++', '--'] LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR'] # Additional indent in front of these is ignored. -INDENTABLE_CLOSERS = [')', '}', ']'] \ No newline at end of file +INDENTABLE_CLOSERS = [')', '}', ']'] diff --git a/src/nodes.coffee b/src/nodes.coffee index 2a8fbcc4b2..6f7f9b129c 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -2017,8 +2017,8 @@ exports.Op = class Op extends Base message = isUnassignable @first.unwrapAll().value @first.error message if message return @compileContinuation o if @isYield() or @isAwait() - return @compileUnary o if @isUnary() - return @compileChain o if isChain + return @compileUnary o if @isUnary() + return @compileChain o if isChain switch @operator when '?' then @compileExistence o when '**' then @compilePower o From 83347ab767b519f0fdd87d91f932f1c95bff1159 Mon Sep 17 00:00:00 2001 From: Gabe Date: Sat, 24 Sep 2016 00:13:32 -0700 Subject: [PATCH 14/35] Async test-suite and Cake support, simplified/removed funky tests --- Cakefile | 32 ++-- lib/coffee-script/cake.js | 6 +- lib/coffee-script/helpers.js | 28 ++- package.json | 10 +- src/cake.coffee | 6 +- src/helpers.coffee | 17 ++ test/async.coffee | 319 ++++++++++++++--------------------- test/comprehensions.coffee | 18 +- test/importing.coffee | 14 -- 9 files changed, 211 insertions(+), 239 deletions(-) diff --git a/Cakefile b/Cakefile index ffb6db49ba..dce076544a 100644 --- a/Cakefile +++ b/Cakefile @@ -218,12 +218,13 @@ task 'bench', 'quick benchmark of compilation time', -> # Run the CoffeeScript test suite. -runTests = (CoffeeScript) -> +runTests = helpers.async (CoffeeScript) -> CoffeeScript.register() startTime = Date.now() currentFile = null passedTests = 0 failures = [] + testCases = [] global[name] = func for name, func of require 'assert' @@ -233,16 +234,7 @@ runTests = (CoffeeScript) -> # Our test helper function for delimiting different test cases. global.test = (description, fn) -> - try - fn.test = {description, currentFile} - fn.call(fn) - ++passedTests - catch e - failures.push - filename: currentFile - error: e - description: description if description? - source: fn.toString() if fn.toString? + testCases.push {description, fn} # See http://wiki.ecmascript.org/doku.php?id=harmony:egal egal = (a, b) -> @@ -265,6 +257,7 @@ runTests = (CoffeeScript) -> # When all the tests have run, collect and print errors. # If a stacktrace is available, output the compiled function source. process.on 'exit', -> + time = ((Date.now() - startTime) / 1000).toFixed(2) message = "passed #{passedTests} tests in #{time} seconds#{reset}" return log(message, green) unless failures.length @@ -284,10 +277,25 @@ runTests = (CoffeeScript) -> literate = helpers.isLiterate file currentFile = filename = path.join 'test', file code = fs.readFileSync filename + testCases = [] try CoffeeScript.run code.toString(), {filename, literate} + for {description, fn} in testCases + try + fn.test = {description, currentFile} + val = fn.call(fn) + if typeof val?.then == 'function' + yield val + ++passedTests + catch e + failures.push + filename: currentFile + error: e + description: description if description? + source: fn.toString() if fn.toString? catch error failures.push {filename, error} + return !failures.length @@ -300,4 +308,4 @@ task 'test:browser', 'run the test suite against the merged browser script', -> result = {} global.testingBrowser = yes (-> eval source).call result - runTests result.CoffeeScript + runTests result.CoffeeScript \ No newline at end of file diff --git a/lib/coffee-script/cake.js b/lib/coffee-script/cake.js index bc5ea6fe69..386ad7985a 100644 --- a/lib/coffee-script/cake.js +++ b/lib/coffee-script/cake.js @@ -45,7 +45,7 @@ } }); - exports.run = function() { + exports.run = helpers.async(function*() { var arg, args, e, i, len, ref, results; global.__originalDirname = fs.realpathSync('.'); process.chdir(cakefileDirectory(__originalDirname)); @@ -67,10 +67,10 @@ results = []; for (i = 0, len = ref.length; i < len; i++) { arg = ref[i]; - results.push(invoke(arg)); + results.push((yield invoke(arg))); } return results; - }; + }); printTasks = function() { var cakefilePath, desc, name, relative, spaces, task; diff --git a/lib/coffee-script/helpers.js b/lib/coffee-script/helpers.js index 38c3f51e15..233320faf2 100644 --- a/lib/coffee-script/helpers.js +++ b/lib/coffee-script/helpers.js @@ -1,6 +1,32 @@ // Generated by CoffeeScript 1.10.0 (function() { - var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString; + var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString, + slice = [].slice; + + exports.async = function(generatorFunction) { + return function() { + var args, generator, proceed, rejector, resolver; + args = 1 <= arguments.length ? slice.call(arguments, 0) : []; + proceed = function(arg) { + var done, promise, value; + done = arg.done, value = arg.value; + promise = Promise.resolve(value); + if (done) { + return promise; + } else { + return promise.then(resolver, rejector); + } + }; + resolver = function(value) { + return proceed(generator.next(value)); + }; + rejector = function(error) { + return proceed(generator["throw"](error)); + }; + generator = generatorFunction.apply(this, args); + return proceed(generator.next()); + }; + }; exports.starts = function(string, literal, start) { return literal === string.substr(start, literal.length); diff --git a/package.json b/package.json index 526d5a6376..6cf6306329 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "preferGlobal": true, "scripts": { - "test": "node ./bin/cake test", + "test": "node ./bin/cake test", "test-harmony": "node --harmony ./bin/cake test" }, "homepage": "http://coffeescript.org", @@ -33,10 +33,10 @@ "url": "git://github.com/jashkenas/coffeescript.git" }, "devDependencies": { - "uglify-js": "~2.2", - "jison": ">=0.2.0", + "docco": "~0.7.0", "highlight.js": "~9.6.0", - "underscore": "~1.5.2", - "docco": "~0.7.0" + "jison": ">=0.2.0", + "uglify-js": "~2.2", + "underscore": "~1.5.2" } } diff --git a/src/cake.coffee b/src/cake.coffee index b64959a68c..cd769a3526 100644 --- a/src/cake.coffee +++ b/src/cake.coffee @@ -46,7 +46,7 @@ helpers.extend global, # asynchrony may cause tasks to execute in a different order than you'd expect. # If no tasks are passed, print the help screen. Keep a reference to the # original directory name, when running Cake tasks from subdirectories. -exports.run = -> +exports.run = helpers.async -> global.__originalDirname = fs.realpathSync '.' process.chdir cakefileDirectory __originalDirname args = process.argv[2..] @@ -57,7 +57,7 @@ exports.run = -> options = oparse.parse(args) catch e return fatalError "#{e}" - invoke arg for arg in options.arguments + yield invoke arg for arg in options.arguments # Display the list of Cake tasks in a format similar to `rake -T` printTasks = -> @@ -85,4 +85,4 @@ cakefileDirectory = (dir) -> return dir if fs.existsSync path.join dir, 'Cakefile' parent = path.normalize path.join dir, '..' return cakefileDirectory parent unless parent is dir - throw new Error "Cakefile not found in #{process.cwd()}" + throw new Error "Cakefile not found in #{process.cwd()}" \ No newline at end of file diff --git a/src/helpers.coffee b/src/helpers.coffee index b7d73acfa6..19bd13791c 100644 --- a/src/helpers.coffee +++ b/src/helpers.coffee @@ -2,6 +2,23 @@ # the **Lexer**, **Rewriter**, and the **Nodes**. Merge objects, flatten # arrays, count characters, that sort of thing. +# async/await for test-suite +exports.async = (generatorFunction) -> + return (args...) -> + proceed = ({done, value}) -> + promise = Promise.resolve value + if done + promise + else + promise.then resolver, rejector + resolver = (value) -> + proceed generator.next value + rejector = (error) -> + proceed generator.throw error + + generator = generatorFunction.apply this, args + proceed generator.next() + # Peek at the beginning of a given string to see if it matches a sequence. exports.starts = (string, literal, start) -> literal is string.substr start, literal.length diff --git a/test/async.coffee b/test/async.coffee index 45c7f57e49..959bddd85a 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -1,236 +1,171 @@ -### -For testing purposes pseudo-promises are used. These -execute the then method snchronously when sync promises are used. -All promises used here are sync, as they resolve/reject immediately, -and use no callbacks. -### -class Promise - constructor: (fn) -> - @_fulfilled = no - @_rejected = no - @_value = null - @_thens = [] - - fn @_win.bind(this), @_fail.bind(this) - - _empty: -> - - _win: (val) -> - @_fulfilled = true - @_value = val - while @_thens.length > 0 - {fulfill, win} = @_thens.shift() - fulfill win val - 1 - - - - _fail: (val) -> - @_rejected = true - @_value = val - while @_thens.length > 0 - {fail, reject} = @_thens.shift() - fail val - reject val - 0 - - - _iscomplete: -> - @_fulfilled or @_rejected - - - then: (win, fail = @_empty) -> - self = this - fulfill = null - reject = null - promise = new Promise (win, fail) -> - fulfill = win - reject = fail - - if @_iscomplete() - if @_fulfilled - fulfill win @_value - else - fail @_value - reject @_value - else - @_thens.push - win : win - fail : fail - fulfill : fulfill - reject : reject - promise # always fulfills -winning = (val)-> - new Promise (win, fail) -> - win(val) - 1 +winning = (val) -> Promise.resolve val # always is rejected -failing = (val)-> - new Promise (win, fail) -> - fail(new Error(val)) - 0 +failing = (val) -> Promise.reject new Error val test "async as argument", -> - ok -> - await winning() + ok -> + await winning() test "explicit async", -> - a = do -> - await return [1, 2, 3] - - eq a.constructor, Promise + a = do -> + await return [1, 2, 3] + eq a.constructor, Promise test "implicit async", -> - a = do -> - x = await winning(5) - y = await winning(4) - z = await winning(3) - [x, y, z] + a = do -> + x = await winning(5) + y = await winning(4) + z = await winning(3) + [x, y, z] - eq a.constructor, Promise + eq a.constructor, Promise test "async return value (implicit)", -> - out = null - a = -> - x = await winning(5) - y = await winning(4) - z = await winning(3) - [x, y, z] + out = null + a = -> + x = await winning(5) + y = await winning(4) + z = await winning(3) + [x, y, z] - do -> - out = await a() + b = do -> + out = await a() - arrayEq out, [5, 4, 3] + b.then -> + arrayEq out, [5, 4, 3] test "async return value (explicit)", -> - out = null - a = -> - await return [5, 2, 3] + out = null + a = -> + await return [5, 2, 3] - do -> - out = await a() + b = do -> + out = await a() - arrayEq out, [5, 2, 3] + b.then -> + arrayEq out, [5, 2, 3] test "async parameters", -> - [out1, out2] = [null, null] - a = (a, [b, c])-> - arr = [a] - arr.push b - arr.push c - await return arr - - b = (a, b, c = 5)-> - arr = [a] - arr.push b - arr.push c - await return arr - - do -> - out1 = await a(5, [4, 3]) - out2 = await b(4, 4) - - arrayEq out1, [5, 4, 3] - arrayEq out2, [4, 4, 5] + [out1, out2] = [null, null] + a = (a, [b, c])-> + arr = [a] + arr.push b + arr.push c + await return arr + + b = (a, b, c = 5)-> + arr = [a] + arr.push b + arr.push c + await return arr + + c = do -> + out1 = await a(5, [4, 3]) + out2 = await b(4, 4) + + c.then -> + arrayEq out1, [5, 4, 3] + arrayEq out2, [4, 4, 5] test "async `this` scoping", -> - bnd = null - ubnd = null - nst = null - obj = - bound: -> - return do => - await return this - unbound: -> - return do -> - await return this - nested: -> - return do => - await do => - await do => - await return this - - do -> - bnd = await obj.bound() - ubnd = await obj.unbound() - nst = await obj.nested() - - eq bnd, obj - ok ubnd isnt obj - eq nst, obj + bnd = null + ubnd = null + nst = null + obj = + bound: -> + return do => + await return this + unbound: -> + return do -> + await return this + nested: -> + return do => + await do => + await do => + await return this + + promise = do -> + bnd = await obj.bound() + ubnd = await obj.unbound() + nst = await obj.nested() + + promise.then -> + eq bnd, obj + ok ubnd isnt obj + eq nst, obj test "await precedence", -> - out = null + out = null - fn = (win, fail) -> - win(3) + fn = (win, fail) -> + win(3) - do -> - # assert precedence between unary (new) and power (**) operators - out = 1 + await new Promise(fn) ** 2 + promise = do -> + # assert precedence between unary (new) and power (**) operators + out = 1 + await new Promise(fn) ** 2 - eq out, 10 + promise.then -> + eq out, 10 test "`await` inside IIFEs", -> - [x, y, z] = new Array(3) - - a = do -> - x = switch (4) # switch 4 - when 2 - await winning(1) - when 4 - await winning(5) - when 7 - await winning(2) - - y = try - text = "this should be caught" - throw new Error(text) - await winning(1) - catch e - await winning(4) - - z = for i in [0..5] - a = i * i - await winning(a) - - eq x, 5 - eq y, 4 - - arrayEq z, [0, 1, 4, 9, 16, 25] + [x, y, z] = new Array(3) + + a = do -> + x = switch (4) # switch 4 + when 2 + await winning(1) + when 4 + await winning(5) + when 7 + await winning(2) + + y = try + text = "this should be caught" + throw new Error(text) + await winning(1) + catch e + await winning(4) + + z = for i in [0..5] + a = i * i + await winning(a) + + a.then -> + eq x, 5 + eq y, 4 + + arrayEq z, [0, 1, 4, 9, 16, 25] test "error if function contains both `await`, and `yield` or `yieldfrom`", -> - throws -> CoffeeScript.compile '()-> yield 5; await a;' - throws -> CoffeeScript.compile '()-> yield from a; await b;' + throws -> CoffeeScript.compile '()-> yield 5; await a;' + throws -> CoffeeScript.compile '()-> yield from a; await b;' test "error if `await` occurs outside of a function", -> - throws -> CoffeeScript.compile 'await 1' + throws -> CoffeeScript.compile 'await 1' -test "error throwing", -> - throws -> - await failing(2) test "error handling", -> - res = null - val = 0 - a = -> - try - await failing("fail") - catch e - val = 7 # to assure the catch block runs - return e + res = null + val = 0 + a = -> + try + await failing("fail") + catch e + val = 7 # to assure the catch block runs + return e - do -> - res = await a() + b = do -> + res = await a() - eq val, 7 + b.then -> + eq val, 7 - ok res.message? - eq res.message, "fail" + ok res.message? + eq res.message, "fail" diff --git a/test/comprehensions.coffee b/test/comprehensions.coffee index 6bbbda70a1..cb7c6e4cfa 100644 --- a/test/comprehensions.coffee +++ b/test/comprehensions.coffee @@ -9,6 +9,12 @@ # TODO: refactor comprehension tests +evens = -> + for num in [1, 2, 3, 4, 5, 6] when not (num & 1) + num *= -1 + num -= 2 + num * -1 + test "Basic array comprehensions.", -> nums = (n * n for n in [1, 2, 3] when n & 1) @@ -76,17 +82,11 @@ test "Range comprehension gymnastics.", -> test "Multiline array comprehension with filter.", -> + eq evens() + '', '4,6,8' - evens = for num in [1, 2, 3, 4, 5, 6] when not (num & 1) - num *= -1 - num -= 2 - num * -1 - eq evens + '', '4,6,8' - - - test "The in operator still works, standalone.", -> - ok 2 of evens +test "The in operator still works, standalone.", -> + ok 2 of evens() test "all isn't reserved.", -> diff --git a/test/importing.coffee b/test/importing.coffee index 96fff02028..95dcfa46cb 100644 --- a/test/importing.coffee +++ b/test/importing.coffee @@ -2,20 +2,6 @@ # --------- unless window? or testingBrowser? - test "coffeescript modules can be imported and executed", -> - - magicKey = __filename - magicValue = 0xFFFF - - if global[magicKey]? - if exports? - local = magicValue - exports.method = -> local - else - global[magicKey] = {} - if require?.extensions? - ok require(__filename).method() is magicValue - delete global[magicKey] test "javascript modules can be imported", -> magicVal = 1 From 2d878f8cd998c8045cdc5db6dc1d0ea746699eb2 Mon Sep 17 00:00:00 2001 From: Gabe Date: Sat, 24 Sep 2016 01:58:23 -0700 Subject: [PATCH 15/35] Skip async/await tests when not supported in runtime --- Cakefile | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Cakefile b/Cakefile index dce076544a..34a1b426f6 100644 --- a/Cakefile +++ b/Cakefile @@ -254,6 +254,7 @@ runTests = helpers.async (CoffeeScript) -> global.eq = (a, b, msg) -> ok egal(a, b), msg ? "Expected #{a} to equal #{b}" global.arrayEq = (a, b, msg) -> ok arrayEgal(a,b), msg ? "Expected #{a} to deep equal #{b}" + # When all the tests have run, collect and print errors. # If a stacktrace is available, output the compiled function source. process.on 'exit', -> @@ -273,7 +274,14 @@ runTests = helpers.async (CoffeeScript) -> # Run every test in the `test` folder, recording failures. files = fs.readdirSync 'test' + asyncIsAvailable = '--harmony' in process.execArgv or + '--harmony_async_await' in process.execArgv + for file in files when helpers.isCoffee file + # skip async/await tests if JS runtime doesn't support it + if not asyncIsAvailable and file == 'async.coffee' + continue + literate = helpers.isLiterate file currentFile = filename = path.join 'test', file code = fs.readFileSync filename @@ -284,8 +292,7 @@ runTests = helpers.async (CoffeeScript) -> try fn.test = {description, currentFile} val = fn.call(fn) - if typeof val?.then == 'function' - yield val + yield val ++passedTests catch e failures.push From 20e4c4b792b31cfc48833c52bb9f314699faa93b Mon Sep 17 00:00:00 2001 From: Gabe Date: Sat, 24 Sep 2016 14:21:37 -0700 Subject: [PATCH 16/35] cleanup --- .gitignore | 2 +- Cakefile | 2 +- src/lexer.coffee | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2718abbefa..4ed75b7fdf 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,4 @@ test/fixtures/underscore test/*.js examples/beautiful_code/parse.coffee *.gem -/node_modules \ No newline at end of file +/node_modules diff --git a/Cakefile b/Cakefile index 34a1b426f6..c3696821fd 100644 --- a/Cakefile +++ b/Cakefile @@ -315,4 +315,4 @@ task 'test:browser', 'run the test suite against the merged browser script', -> result = {} global.testingBrowser = yes (-> eval source).call result - runTests result.CoffeeScript \ No newline at end of file + runTests result.CoffeeScript diff --git a/src/lexer.coffee b/src/lexer.coffee index 834d4649f2..18dc3e5fff 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -808,7 +808,7 @@ JS_KEYWORDS = [ # CoffeeScript-only keywords. COFFEE_KEYWORDS = [ - 'undefined', 'Infinity', 'NaN', + 'undefined', 'Infinity', 'NaN' 'then', 'unless', 'until', 'loop', 'of', 'by', 'when' ] From 5885b5ad07227abd4bccfe6f1b72e5eb8dd04f7d Mon Sep 17 00:00:00 2001 From: Gabe Date: Sun, 25 Sep 2016 11:16:58 -0700 Subject: [PATCH 17/35] Replaced polyfill with native JS async/await --- lib/coffee-script/nodes.js | 38 +++++++---------- src/nodes.coffee | 87 ++++++-------------------------------- 2 files changed, 29 insertions(+), 96 deletions(-) diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index 1beb9a377b..03313b4df4 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -87,13 +87,12 @@ }; Base.prototype.compileClosure = function(o) { - var args, argumentsNode, func, jumpNode, meth, parts, ref3; + var args, argumentsNode, func, jumpNode, meth, parts, ref3, ref4; if (jumpNode = this.jumps()) { jumpNode.error('cannot use a pure statement in an expression'); } o.sharedScope = true; func = new Code([], Block.wrap([this])); - func.wrap = false; args = []; if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) { args = [new ThisLiteral]; @@ -106,9 +105,14 @@ func = new Value(func, [new Access(new PropertyName(meth))]); } parts = (new Call(func, args)).compileNode(o); - if (func.isContinuation || ((ref3 = func.base) != null ? ref3.isContinuation : void 0)) { - parts.unshift(this.makeCode("(yield* ")); - parts.push(this.makeCode(")")); + switch (false) { + case !(func.isGenerator || ((ref3 = func.base) != null ? ref3.isGenerator : void 0)): + parts.unshift(this.makeCode("(yield* ")); + parts.push(this.makeCode(")")); + break; + case !(func.isAsync || ((ref4 = func.base) != null ? ref4.isAsync : void 0)): + parts.unshift(this.makeCode("(await ")); + parts.push(this.makeCode(")")); } return parts; }; @@ -2427,7 +2431,6 @@ this.params = params || []; this.body = body || new Block; this.bound = tag === 'boundfunc'; - this.wrap = true; this.isGenerator = !!this.body.contains(function(node) { return (node instanceof Op && node.isYield()) || node instanceof YieldReturn; }); @@ -2453,7 +2456,7 @@ }; Code.prototype.compileNode = function(o) { - var answer, asyncify, boundfunc, code, exprs, i, j, k, l, len1, len2, len3, len4, len5, len6, lit, m, p, param, params, q, r, ref, ref3, ref4, ref5, ref6, ref7, ref8, splats, uniqs, val, wasEmpty, wrapper; + var answer, boundfunc, code, exprs, i, j, k, l, len1, len2, len3, len4, len5, len6, lit, m, p, param, params, q, r, ref, ref3, ref4, ref5, ref6, ref7, ref8, splats, uniqs, val, wasEmpty, wrapper; if (this.bound && ((ref3 = o.scope.method) != null ? ref3.bound : void 0)) { this.context = o.scope.method.context; } @@ -2548,13 +2551,12 @@ if (!(wasEmpty || this.noReturn)) { this.body.makeReturn(); } - asyncify = this.isAsync && this.wrap; code = ''; - if (asyncify) { - code += (utility('async', o)) + "("; + if (this.isAsync) { + code += "async "; } code += 'function'; - if (this.isGenerator || this.isAsync) { + if (this.isGenerator) { code += '*'; } if (this.ctor) { @@ -2574,9 +2576,6 @@ answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab)); } answer.push(this.makeCode('}')); - if (asyncify) { - answer.push(this.makeCode(')')); - } if (this.ctor) { return [this.makeCode(this.tab)].concat(slice.call(answer)); } @@ -2899,7 +2898,6 @@ } } this.operator = CONVERSIONS[op] || op; - this.originalOperator = op; this.first = first; this.second = second; this.flip = !!flip; @@ -2910,7 +2908,6 @@ '==': '===', '!=': '!==', 'of': 'in', - 'await': 'yield', 'yieldfrom': 'yield*' }; @@ -2927,12 +2924,12 @@ }; Op.prototype.isAwait = function() { - return this.originalOperator === 'await'; + return this.operator === 'await'; }; Op.prototype.isYield = function() { var ref3; - return this.originalOperator !== 'await' && ((ref3 = this.operator) === 'yield' || ref3 === 'yield*'); + return (ref3 = this.operator) === 'yield' || ref3 === 'yield*'; }; Op.prototype.isUnary = function() { @@ -3104,7 +3101,7 @@ parts = []; op = this.operator; if (o.scope.parent == null) { - this.error(this.originalOperator + " can only occur inside functions"); + this.error(this.operator + " can only occur inside functions"); } if (indexOf.call(Object.keys(this.first), 'expression') >= 0 && !(this.first instanceof Throw)) { if (this.first.expression != null) { @@ -3766,9 +3763,6 @@ })(Base); UTILITIES = { - async: function() { - return "(function(){ var async = function(generator) { return function() { var args = arguments, self = this; return new Promise(function(win, fail){ var tracker = new Tracker(); tracker.iterator = generator.apply(self, args); tracker.win = win; tracker.fail = fail; tracker.tick(); }); }; }; function Tracker() { var self = this; this.thenHandle = function(value) { self.result = value; self.tick(); }; this.failHandle = function(err) { self.result = err; self.throw = true; self.tick(); }; this.throw = false; this.result = undefined; this.iterator = undefined; this.win = undefined; this.fail = undefined; }; Tracker.prototype = { tick: function() { var next; if (this.throw) { next = this.iterator.throw(this.result); this.throw = false; } else { next = this.iterator.next(this.result); } if (next.done) { this.win(next.value); } else { next.value.then(this.thenHandle, this.failHandle); } } }; return async; }())"; - }, extend: function(o) { return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp', o)) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"; }, diff --git a/src/nodes.coffee b/src/nodes.coffee index 6f7f9b129c..3deebafcfb 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -80,7 +80,6 @@ exports.Base = class Base jumpNode.error 'cannot use a pure statement in an expression' o.sharedScope = yes func = new Code [], Block.wrap [this] - func.wrap = no args = [] if (argumentsNode = @contains isLiteralArguments) or @contains isLiteralThis args = [new ThisLiteral] @@ -91,9 +90,14 @@ exports.Base = class Base meth = 'call' func = new Value func, [new Access new PropertyName meth] parts = (new Call func, args).compileNode o - if func.isContinuation or func.base?.isContinuation - parts.unshift @makeCode "(yield* " - parts.push @makeCode ")" + + switch + when func.isGenerator or func.base?.isGenerator + parts.unshift @makeCode "(yield* " + parts.push @makeCode ")" + when func.isAsync or func.base?.isAsync + parts.unshift @makeCode "(await " + parts.push @makeCode ")" parts # If the code generation wishes to use the result of a complex expression @@ -1609,7 +1613,6 @@ exports.Code = class Code extends Base @params = params or [] @body = body or new Block @bound = tag is 'boundfunc' - @wrap = yes # wrap function declarations in modifier invokation (async) @isGenerator = !!@body.contains (node) -> (node instanceof Op and node.isYield()) or node instanceof YieldReturn @isAsync = !!@body.contains (node) -> @@ -1684,11 +1687,10 @@ exports.Code = class Code extends Base node.error "multiple parameters named #{name}" if name in uniqs uniqs.push name @body.makeReturn() unless wasEmpty or @noReturn - asyncify = @isAsync and @wrap code = '' - code += "#{utility 'async', o}(" if asyncify + code += "async " if @isAsync code += 'function' - code += '*' if @isGenerator or @isAsync + code += '*' if @isGenerator code += ' ' + @name if @ctor code += '(' answer = [@makeCode(code)] @@ -1698,7 +1700,6 @@ exports.Code = class Code extends Base answer.push @makeCode ') {' answer = answer.concat(@makeCode("\n"), @body.compileWithDeclarations(o), @makeCode("\n#{@tab}")) unless @body.isEmpty() answer.push @makeCode '}' - answer.push @makeCode ')' if asyncify return [@makeCode(@tab), answer...] if @ctor if @front or (o.level >= LEVEL_ACCESS) then @wrapInBraces answer else answer @@ -1918,7 +1919,6 @@ exports.Op = class Op extends Base return first.newInstance() if first instanceof Call and not first.do and not first.isNew first = new Parens first if first instanceof Code and first.bound or first.do @operator = CONVERSIONS[op] or op - @originalOperator = op @first = first @second = second @flip = !!flip @@ -1929,7 +1929,6 @@ exports.Op = class Op extends Base '==': '===' '!=': '!==' 'of': 'in' - 'await': 'yield' 'yieldfrom': 'yield*' # The map of invertible operators. @@ -1944,10 +1943,10 @@ exports.Op = class Op extends Base @first instanceof Value and @first.isNumber() isAwait: -> - @originalOperator is 'await' + @operator is 'await' isYield: -> - @originalOperator isnt 'await' and @operator in ['yield', 'yield*'] + @operator in ['yield', 'yield*'] isUnary: -> not @second @@ -2076,7 +2075,7 @@ exports.Op = class Op extends Base op = @operator unless o.scope.parent? # all continuations must occur inside function body - @error "#{@originalOperator} can only occur inside functions" + @error "#{@operator} can only occur inside functions" if 'expression' in Object.keys(@first) and not (@first instanceof Throw) parts.push @first.expression.compileToFragments o, LEVEL_OP if @first.expression? else @@ -2512,66 +2511,6 @@ exports.If = class If extends Base UTILITIES = - # for async functions containing `await` - async: -> " - (function(){ - var async = function(generator) { - return function() { - var args = arguments, self = this; - return new Promise(function(win, fail){ - var tracker = new Tracker(); - tracker.iterator = generator.apply(self, args); - tracker.win = win; - tracker.fail = fail; - tracker.tick(); - }); - }; - }; - - function Tracker() { - var self = this; - - this.thenHandle = function(value) { - self.result = value; - self.tick(); - }; - - this.failHandle = function(err) { - self.result = err; - self.throw = true; - self.tick(); - }; - - this.throw = false; - this.result = undefined; - - this.iterator = undefined; - this.win = undefined; - this.fail = undefined; - }; - - Tracker.prototype = { - tick: function() { - var next; - if (this.throw) { - next = this.iterator.throw(this.result); - this.throw = false; - } else { - next = this.iterator.next(this.result); - } - - if (next.done) { - this.win(next.value); - } else { - next.value.then(this.thenHandle, this.failHandle); - } - } - }; - - return async; - }()) - " - # Correctly set up a prototype chain for inheritance, including a reference # to the superclass for `super()` calls, and copies of any static properties. extend: (o) -> " From 22d3b49d47c5dea13f9f7fbe7d2b427ab804bd68 Mon Sep 17 00:00:00 2001 From: Gabe Date: Sun, 25 Sep 2016 12:17:52 -0700 Subject: [PATCH 18/35] Oops --- extras/coffee-script.js.orig | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 extras/coffee-script.js.orig diff --git a/extras/coffee-script.js.orig b/extras/coffee-script.js.orig deleted file mode 100644 index 994a32df5f..0000000000 --- a/extras/coffee-script.js.orig +++ /dev/null @@ -1,12 +0,0 @@ -/** - * CoffeeScript Compiler v1.11.0 - * http://coffeescript.org - * - * Copyright 2011, Jeremy Ashkenas - * Released under the MIT License - */ -(function(root){var CoffeeScript=function(){function require(e){return require[e]}return require["./helpers"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s;e.starts=function(e,t,n){return t===e.substr(n,t.length)},e.ends=function(e,t,n){var i;return i=t.length,t===e.substr(e.length-i-(n||0),i)},e.repeat=o=function(e,t){var n;for(n="";t>0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,o;for(n=[],r=0,o=e.length;o>r;r++)t=e[r],"[object Array]"===Object.prototype.toString.call(t)?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i,r;for(r=this,n=0,i=r.length;i>n;n++)if(t=r[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,o,s;for(o=e.split("\n"),s=[],n=0,r=o.length;r>n;n++)t=o[n],i&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?s.push(t):(i=/^\s*$/.test(t))?s.push(t):s.push("# "+t);return s}(),n.join("\n")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?t.first_line+1+":"+(t.first_column+1)+"-"+(t.last_line+1+":"+(t.last_column+1)):"No location data"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\|\//:/\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(".")>=0?(i=e.split("."),i.pop(),"coffee"===i[i.length-1]&&i.length>1&&i.pop(),i.join(".")):e},e.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},e.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=s,n.stack=""+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===s&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},s=function(){var e,t,n,i,r,s,a,c,l,u,h,p,d,f,m;return this.code&&this.location?(h=this.location,a=h.first_line,s=h.first_column,l=h.last_line,c=h.last_column,null==l&&(l=a),null==c&&(c=s),r=this.filename||"[stdin]",e=this.code.split("\n")[a],m=s,i=a===l?c+1:e.length,u=e.slice(0,m).replace(/[^\s]/g," ")+o("^",i-m),"undefined"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return""+e+""},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),u=t(u)),r+":"+(a+1)+":"+(s+1)+": error: "+this.message+"\n"+e+"\n"+u):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case" ":return"space";case"\n":return"newline";case"\r":return"carriage return";case" ":return"tab";default:return e}}}.call(this),t.exports}(),require["./rewriter"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,s,a,c,l;for(l=this.tokens,i=0;c=l[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);s=c[0],k.call(o,s)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],"TERMINATOR"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return")"===(n=e[0])||"CALL_END"===n||"OUTDENT"===e[0]&&")"===this.tag(t-1)},e=function(e,t){return this.tokens["OUTDENT"===e[0]?t-1:t][0]="CALL_END"},this.scanTokens(function(n,i){return"CALL_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return"]"===(t=e[0])||"INDEX_END"===t},e=function(e){return e[0]="INDEX_END"},this.scanTokens(function(n,i){return"INDEX_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,o,s;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,o=r.length;o>=0?o>i:i>o;n=o>=0?++i:--i){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&("string"==typeof r[n]&&(r[n]=[r[n]]),s=this.tag(t+n+e),0>k.call(r[n],s)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,"@",null,":")>-1||this.indexOfTag(e,null,":")>-1?!0:(n=this.indexOfTag(e,o),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),":"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,s,a,c,l,u;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(o,c)||this.tokens[e].generated)&&(l=this.tag(e),0>k.call(h,l))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),s=this.tag(e),k.call(o,s)>=0&&n.length&&n.pop(),e-=1;return u=this.tag(e),k.call(t,u)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,u,p){var d,m,g,b,y,v,w,T,N,L,C,F,E,D,x,_,S,I,R,A,O,$,P,M,j,B,V,U;if(U=i[0],C=(F=u>0?p[u-1]:[])[0],N=(p.length-1>u?p[u+1]:[])[0],P=function(){return e[e.length-1]},M=u,g=function(e){return u-M+e},b=function(){var e,t;return null!=(e=P())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return b()&&"("===(null!=(e=P())?e[0]:void 0)},w=function(){var e;return b()&&"{"===(null!=(e=P())?e[0]:void 0)},v=function(){var e;return b&&"CONTROL"===(null!=(e=P())?e[0]:void 0)},j=function(t){var n;return n=null!=t?t:u,e.push(["(",n,{ours:!0}]),p.splice(n,0,f("CALL_START","(")),null==t?u+=1:void 0},d=function(){return e.pop(),p.splice(u,0,f("CALL_END",")",["","end of input",i[2]])),u+=1},B=function(t,n){var r,o;return null==n&&(n=!0),r=null!=t?t:u,e.push(["{",r,{sameLine:!0,startsLine:n,ours:!0}]),o=new String("{"),o.generated=!0,p.splice(r,0,f("{",o,i)),null==t?u+=1:void 0},m=function(t){return t=null!=t?t:u,e.pop(),p.splice(t,0,f("}","}",i)),u+=1},y()&&("IF"===U||"TRY"===U||"FINALLY"===U||"CATCH"===U||"CLASS"===U||"SWITCH"===U))return e.push(["CONTROL",u,{ours:!0}]),g(1);if("INDENT"===U&&b()){if("=>"!==C&&"->"!==C&&"["!==C&&"("!==C&&","!==C&&"{"!==C&&"TRY"!==C&&"ELSE"!==C&&"="!==C)for(;y();)d();return v()&&e.pop(),e.push([U,u]),g(1)}if(k.call(o,U)>=0)return e.push([U,u]),g(1);if(k.call(r,U)>=0){for(;b();)y()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||"?"===U&&u>0&&!p[u-1].spaced)&&(k.call(s,N)>=0||k.call(l,N)>=0&&!(null!=(E=p[u+1])?E.spaced:void 0)&&!(null!=(D=p[u+1])?D.newLine:void 0)))return"?"===U&&(U=i[0]="FUNC_EXIST"),j(u+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(u+1,"INDENT")>-1&&this.looksObjectish(u+2)&&!this.findTagsBackwards(u,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return j(u+1),e.push(["INDENT",u+2]),g(3);if(":"===U){for(R=function(){var e;switch(!1){case e=this.tag(u-1),0>k.call(r,e):return t[1];case"@"!==this.tag(u-2):return u-2;default:return u-1}}.call(this);"HERECOMMENT"===this.tag(R-2);)R-=2;return this.insideForDeclaration="FOR"===N,V=0===R||(x=this.tag(R-1),k.call(h,x)>=0)||p[R-1].newLine,P()&&(_=P(),$=_[0],O=_[1],("{"===$||"INDENT"===$&&"{"===this.tag(O-1))&&(V||","===this.tag(R-1)||"{"===this.tag(R-1)))?g(1):(B(R,!!V),g(2))}if(w()&&k.call(h,U)>=0&&(P()[2].sameLine=!1),T="OUTDENT"===C||F.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;b();)if(S=P(),$=S[0],O=S[1],I=S[2],A=I.sameLine,V=I.startsLine,y()&&","!==C)d();else if(w()&&!this.insideForDeclaration&&A&&"TERMINATOR"!==U&&":"!==C)m();else{if(!w()||"TERMINATOR"!==U||","===C||V&&this.looksObjectish(u+1))break;if("HERECOMMENT"===N)return g(1);m()}if(!(","!==U||this.looksObjectish(u+1)||!w()||this.insideForDeclaration||"TERMINATOR"===N&&this.looksObjectish(u+2)))for(L="OUTDENT"===N?1:0;w();)m(u+L);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,o,s,a,c;return e[2]?1:e.generated||e.explicit?("{"===e[0]&&(o=null!=(a=n[t+1])?a[2]:void 0)?(r=o.first_line,i=o.first_column):(s=null!=(c=n[t-1])?c[2]:void 0)?(r=s.last_line,i=s.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,o,s;return s=r=o=null,t=function(e,t){var r,o,a,c;return";"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(o=this.tag(t+1),k.call(i,o)>=0))&&!("ELSE"===e[0]&&"THEN"!==s)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==s&&"=>"!==s)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,o)},this.scanTokens(function(n,a,c){var l,u,h,p,f,m;if(m=n[0],"TERMINATOR"===m){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(h=this.tag(a+1),k.call(i,h)>=0)return c.splice(a,1),0}if("CATCH"===m)for(l=u=1;2>=u;l=++u)if("OUTDENT"===(p=this.tag(a+l))||"TERMINATOR"===p||"FINALLY"===p)return c.splice.apply(c,[a+l,0].concat(w.call(this.indentation()))),2+l;return k.call(d,m)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==m||"IF"!==this.tag(a+1))?(s=m,f=this.indentation(c[a]),r=f[0],o=f[1],"THEN"===s&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),"THEN"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],"TERMINATOR"===i||"INDENT"===i&&0>k.call(d,n)},e=function(e){return"INDENT"!==e[0]||e.generated&&!e.fromThen?n[0]="POST_"+n[0]:void 0},this.scanTokens(function(i,r){return"IF"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=["INDENT",2],n=["OUTDENT",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]],e.INVERSES=u={},o=[],r=[],m=0,b=t.length;b>m;m++)y=t[m],g=y[0],v=y[1],o.push(u[v]=g),r.push(u[g]=v);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],s=["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","UNDEFINED","NULL","BOOL","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],l=["+","-"],a=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],d=["ELSE","->","=>","TRY","FINALLY","THEN"],p=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],h=["TERMINATOR","INDENT","OUTDENT"],n=[".","?.","::","?::"]}.call(this),t.exports}(),require["./lexer"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k,w,T,N,L,C,F,E,D,x,_,S,I,R,A,O,$,P,M,j,B,V,U,H,G,q,Y,X,W,J,z,K,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,lt,ut,ht=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},pt=[].slice;st=require("./rewriter"),B=st.Rewriter,w=st.INVERSES,at=require("./helpers"),tt=at.count,lt=at.starts,et=at.compact,ct=at.repeat,nt=at.invertLiterate,ot=at.locationDataToString,ut=at.throwSyntaxError,e.Lexer=D=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,o;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),o=this.getLineAndColumnFromChunk(n),this.chunkLine=o[0],this.chunkColumn=o[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new B).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(J,""),Z.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=nt(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,l,u,h,p,d,f,m,g,y;return(l=b.exec(this.chunk))?(c=l[0],i=l[1],t=l[2],r=i.length,u=void 0,"own"===i&&"FOR"===this.tag()?(this.token("OWN",i),i.length):"from"===i&&"YIELD"===this.tag()?(this.token("FROM",i),i.length):"as"!==i||!this.seenImport||"IDENTIFIER"!==this.tag()&&"*"!==this.value()?"as"===i&&this.seenExport&&"IDENTIFIER"===this.tag()?(this.token("AS",i),i.length):"default"===i&&this.seenExport?(this.token("DEFAULT",i),i.length):(p=this.tokens,h=p[p.length-1],g=t||null!=h&&("."===(d=h[0])||"?."===d||"::"===d||"?::"===d||!h.spaced&&"@"===h[0])?"PROPERTY":"IDENTIFIER","IDENTIFIER"===g&&(ht.call(N,i)>=0||ht.call(a,i)>=0)&&(g=i.toUpperCase(),"WHEN"===g&&(f=this.tag(),ht.call(C,f)>=0)?g="LEADING_WHEN":"FOR"===g?this.seenFor=!0:"UNLESS"===g?g="IF":"IMPORT"===g?this.seenImport=!0:"EXPORT"===g?this.seenExport=!0:ht.call(z,g)>=0?g="UNARY":ht.call(M,g)>=0&&("INSTANCEOF"!==g&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION","!"===this.value()&&(u=this.tokens.pop(),i="!"+i)))),"IDENTIFIER"===g&&ht.call(j,i)>=0&&this.error("reserved word '"+i+"'",{length:i.length}),"PROPERTY"!==g&&(ht.call(o,i)>=0&&(e=i,i=s[i]),g=function(){switch(i){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),y=this.token(g,i,0,r),e&&(y.origin=[g,e,y[2]]),u&&(m=[u[2].first_line,u[2].first_column],y[2].first_line=m[0],y[2].first_column=m[1]),t&&(n=c.lastIndexOf(":"),this.token(":",":",n,t.length)),c.length):("*"===this.value()&&(this.tokens[this.tokens.length-1][0]="IMPORT_ALL"),this.token("AS",i),i.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r,o,s;return(n=I.exec(this.chunk))?(i=n[0],t=i.length,/^0[BOX]/.test(i)?this.error("radix prefix in '"+i+"' must be lowercase",{offset:1}):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation in '"+i+"' must be indicated with a lowercase 'e'",{offset:i.indexOf("E")}):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'",{length:t}):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'",{length:t}),(o=/^0o([0-7]+)/.exec(i))?(r=parseInt(o[1],8),i="0x"+r.toString(16)):(e=/^0b([01]+)/.exec(i))?(r=parseInt(e[1],2),i="0x"+r.toString(16)):r=parseFloat(i),s=Infinity===r?"INFINITY":"NUMBER",this.token(s,i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,o,s,a,c,l,u,h,m,g,b,y;if(u=(X.exec(this.chunk)||[])[0],!u)return 0;if(this.tokens.length&&"from"===this.value()&&(this.seenImport||this.seenExport)&&(this.tokens[this.tokens.length-1][0]="FROM"),g=function(){switch(u){case"'":return Y;case'"':return G;case"'''":return f;case'"""':return p}}(),o=3===u.length,h=this.matchWithInterpolations(g,u),y=h.tokens,r=h.index,e=y.length-1,n=u.charAt(0),o){for(a=null,i=function(){var e,t,n;for(n=[],s=e=0,t=y.length;t>e;s=++e)b=y[s],"NEOSTRING"===b[0]&&n.push(b[1]);return n}().join("#{}");l=d.exec(i);)t=l[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp("^"+a,"gm")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),0===i&&(n=n.replace(L,"")),i===e&&(n=n.replace(W,"")),c&&(n=n.replace(c,"")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(U,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?"":" "})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=h.exec(e))&&this.error("block comments cannot contain "+n[0],{offset:n.index,length:n[0].length}),t.indexOf("\n")>=0&&(t=t.replace(RegExp("\\n"+ct(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,o,s,a,c,l,u,h,p,d;switch(!1){case!(s=P.exec(this.chunk)):this.error("regular expressions cannot begin with "+s[2],{offset:s.index+s[1].length});break;case!(s=this.matchWithInterpolations(m,"///")):d=s.tokens,o=s.index;break;case!(s=O.exec(this.chunk)):if(p=s[0],e=s[1],t=s[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),o=p.length,l=this.tokens,c=l[l.length-1],c)if(c.spaced&&(u=c[0],ht.call(i,u)>=0)){if(!t||A.test(p))return 0}else if(h=c[0],ht.call(S,h)>=0)return 0;t||this.error("missing / (unclosed regex)");break;default:return 0}switch(r=$.exec(this.chunk.slice(o))[0],n=o+r.length,a=this.makeToken("REGEX",null,0,n),!1){case!!Q.test(r):this.error("invalid regular expression flags "+r,{offset:o,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token("REGEX",""+this.makeDelimitedLiteral(e,{delimiter:"/"})+r,0,n,a);break;default:this.token("REGEX_START","(",0,0,a),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(d,{delimiter:'"',"double":!0},this.formatHeregex),r&&(this.token(",",",",o,0),this.token("STRING",'"'+r+'"',o,r.length)),this.token(")",")",n,0),this.token("REGEX_END",")",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=_.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf("\n"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token("INDENT",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,o,s;for(i=this.indent-e;e>0;)o=this.indents[this.indents.length-1],o?o===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>o?(this.outdebt-=o,e-=o):(r=this.indents.pop()+this.outdebt,n&&(s=this.chunk[n],ht.call(y,s)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);";"===this.value();)this.tokens.pop();return"TERMINATOR"===this.tag()||t||this.token("TERMINATOR","\n",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=Z.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;";"===this.value();)this.tokens.pop();return"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return"\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,o,s,a,c,h,p,d,f,m,g;if((e=R.exec(this.chunk))?(g=e[0],r.test(g)&&this.tagParameters()):g=this.chunk.charAt(0),f=g,s=this.tokens,o=s[s.length-1],o&&ht.call(["="].concat(pt.call(u)),g)>=0&&(d=!1,"="!==g||"||"!==(a=o[1])&&"&&"!==a||o.spaced||(o[0]="COMPOUND_ASSIGN",o[1]+="=",o=this.tokens[this.tokens.length-2],d=!0),o&&"PROPERTY"!==o[0]&&(n=null!=(c=o.origin)?c:o,t=it(o[1],n[1]),t&&this.error(t,n[2])),d))return g.length;if(";"===g)this.seenFor=this.seenImport=this.seenExport=!1,f="TERMINATOR";else if("*"===g&&"EXPORT"===o[0])f="EXPORT_ALL";else if(ht.call(x,g)>=0)f="MATH";else if(ht.call(l,g)>=0)f="COMPARE";else if(ht.call(u,g)>=0)f="COMPOUND_ASSIGN";else if(ht.call(z,g)>=0)f="UNARY";else if(ht.call(K,g)>=0)f="UNARY_MATH";else if(ht.call(V,g)>=0)f="SHIFT";else if(ht.call(E,g)>=0||"?"===g&&(null!=o?o.spaced:void 0))f="LOGIC";else if(o&&!o.spaced)if("("===g&&(h=o[0],ht.call(i,h)>=0))"?"===o[0]&&(o[0]="FUNC_EXIST"),f="CALL_START";else if("["===g&&(p=o[0],ht.call(v,p)>=0))switch(f="INDEX_START",o[0]){case"?":o[0]="INDEX_SOAK"}switch(m=this.makeToken(f,g),g){case"(":case"{":case"[":this.ends.push({tag:w[g],origin:m});break;case")":case"}":case"]":this.pair(g)}return this.tokens.push(m),g.length},e.prototype.tagParameters=function(){var e,t,n,i;if(")"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]="PARAM_END";n=i[--e];)switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return"("===n[0]?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,o,s,a,c,l,u,h,p,d,f,m,g,b;if(b=[],u=n.length,this.chunk.slice(0,u)!==n)return null;for(m=this.chunk.slice(u);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:"/"===n.charAt(0),offsetInChunk:u}),b.push(this.makeToken("NEOSTRING",g,u)),m=m.slice(g.length),u+=g.length,"#{"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(u+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),l=d.tokens,s=d.index,s+=1,h=l[0],i=l[l.length-1],h[0]=h[1]="(",i[0]=i[1]=")",i.origin=["","end of interpolation",i[2]],"TERMINATOR"===(null!=(f=l[1])?f[0]:void 0)&&l.splice(1,1),b.push(["TOKENS",l]),m=m.slice(s),u+=s}return m.slice(0,n.length)!==n&&this.error("missing "+n,{length:n.length}),o=b[0],a=b[b.length-1],o[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:b,index:u+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y;for(e.length>1&&(h=this.token("STRING_START","(",0,0)),o=this.tokens.length,s=a=0,l=e.length;l>a;s=++a){switch(g=e[s],m=g[0],y=g[1],m){case"TOKENS":if(2===y.length)continue;u=y[0],b=y;break;case"NEOSTRING":if(i=n(g[1],s),0===i.length){if(0!==s)continue;r=this.tokens.length}2===s&&null!=r&&this.tokens.splice(r,2),g[0]="STRING",g[1]=this.makeDelimitedLiteral(i,t),u=g,b=[g]}this.tokens.length>o&&(p=this.token("+","+"),p[2]={first_line:u[2].first_line,first_column:u[2].first_column,last_line:u[2].first_line,last_column:u[2].first_column}),(d=this.tokens).push.apply(d,b)}return h?(c=e[e.length-1],h.origin=["STRING",null,{first_line:h[2].first_line,first_column:h[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token("STRING_END",")"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,o;return i=this.ends,n=i[i.length-1],e!==(o=null!=n?n.tag:void 0)?("OUTDENT"!==o&&this.error("unmatched "+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,o;return 0===e?[this.chunkLine,this.chunkColumn]:(o=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=tt(o,"\n"),t=this.chunkColumn,i>0?(r=o.split("\n"),n=r[r.length-1],t=n.length):t+=o.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,o,s,a,c;return null==n&&(n=0),null==i&&(i=t.length),o={},s=this.getLineAndColumnFromChunk(n),o.first_line=s[0],o.first_column=s[1],r=i>0?i-1:0,a=this.getLineAndColumnFromChunk(n+r),o.last_line=a[0],o.last_column=a[1],c=[e,t,o]},e.prototype.token=function(e,t,n,i,r){var o;return o=this.makeToken(e,t,n,i),r&&(o.origin=r),this.tokens.push(o),o},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return F.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.formatString=function(e){return e.replace(q,"$1")},e.prototype.formatHeregex=function(e){return e.replace(g,"$1$2")},e.prototype.validateEscapes=function(e,t){var n,i,r,o,s,a,c,l;return null==t&&(t={}),o=k.exec(e),!o||(o[0],n=o[1],a=o[2],i=o[3],l=o[4],t.isRegex&&a&&"0"!==a.charAt(0))?void 0:(s=a?"octal escape sequences are not allowed":"invalid escape sequence",r="\\"+(a||i||l),this.error(s+" "+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+o.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),""===e&&"/"===t.delimiter&&(e="(?:)"),n=RegExp("(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?("+t.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),e=e.replace(n,function(e,n,i,r,o,s,a,c,l){switch(!1){case!n:return t.double?n+n:n;case!i:return"\\x00";case!r:return"\\"+r;case!o:return"\\n";case!s:return"\\r";case!a:return"\\u2028";case!c:return"\\u2029";case!l:return t.double?"\\"+l:l}}),""+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,o,s,a;return null==t&&(t={}),r="first_line"in t?t:(s=this.getLineAndColumnFromChunk(null!=(o=t.offset)?o:0),i=s[0],n=s[1],s,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),ut(e,r)},e}(),it=function(e,t){switch(null==t&&(t=e),!1){case 0>ht.call(pt.call(N).concat(pt.call(a)),e):return"keyword '"+t+"' can't be assigned";case 0>ht.call(H,e):return"'"+t+"' can't be assigned";case 0>ht.call(j,e):return"reserved word '"+t+"' can't be assigned";default:return!1}},e.isUnassignable=it,N=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"],a=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when"],s={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},o=function(){var e;e=[];for(rt in s)e.push(rt);return e}(),a=a.concat(o),j=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"],H=["arguments","eval"],e.JS_FORBIDDEN=N.concat(j).concat(H),t=65279,b=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,R=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,Z=/^[^\n\S]+/,c=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,r=/^[-=]>/,_=/^(?:\n[^\n\S]*)+/,T=/^`[^\\`]*(?:\\.[^\\`]*)*`/,X=/^(?:'''|"""|'|")/,Y=/^(?:[^\\']|\\[\s\S])*/,G=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/,f=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/,q=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g,U=/\s*\n\s*/g,d=/\n+([^\n\S]*)(?=\S)/g,O=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,$=/^\w*/,Q=/^(?!.*(.).*\1)[imgy]*$/,m=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/,g=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g,P=/^(\/|\/{3}\s*)(\*)/,A=/^\/=?\s/,h=/\*\//,F=/^\s*(?:,|\??\.(?![.\d])|::)/,k=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/,L=/^[^\n\S]*\n/,W=/\n[^\n\S]*$/,J=/\s+$/,u=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],z=["NEW","TYPEOF","DELETE","DO"],K=["!","~"],E=["&&","||","&","|","^"],V=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],x=["*","/","%","//","%%"],M=["IN","OF","INSTANCEOF"],n=["TRUE","FALSE"],i=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER"],v=i.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::"]),S=v.concat(["++","--"]),C=["INDENT","OUTDENT","TERMINATOR"],y=[")","}","]"]}.call(this),t.exports}(),require["./parser"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,22],i=[1,25],r=[1,83],o=[1,79],s=[1,84],a=[1,85],c=[1,81],l=[1,82],u=[1,56],h=[1,58],p=[1,59],d=[1,60],f=[1,61],m=[1,62],g=[1,49],b=[1,50],y=[1,32],v=[1,68],k=[1,69],w=[1,78],T=[1,47],N=[1,51],L=[1,52],C=[1,67],F=[1,65],E=[1,66],D=[1,64],x=[1,42],_=[1,48],S=[1,63],I=[1,73],R=[1,74],A=[1,75],O=[1,76],$=[1,46],P=[1,72],M=[1,34],j=[1,35],B=[1,36],V=[1,37],U=[1,38],H=[1,39],G=[1,86],q=[1,6,32,42,131],Y=[1,96],X=[1,89],W=[1,88],J=[1,87],z=[1,90],K=[1,91],Q=[1,92],Z=[1,93],et=[1,94],tt=[1,95],nt=[1,99],it=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],rt=[1,105],ot=[1,106],st=[1,107],at=[1,108],ct=[1,110],lt=[1,111],ut=[1,104],ht=[2,161],pt=[1,6,32,42,131,133,135,139,155],dt=[2,27],ft=[1,118],mt=[1,116],gt=[1,6,31,32,42,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],bt=[2,94],yt=[1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],vt=[2,73],kt=[1,123],wt=[1,128],Tt=[1,129],Nt=[1,131],Lt=[1,6,31,32,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],Ct=[2,91],Ft=[1,6,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],Et=[2,63],Dt=[1,161],xt=[1,173],_t=[1,175],St=[1,170],It=[1,177],Rt=[1,179],At=[1,6,31,32,42,55,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,155,158,159,160,161,162,163,164,165,166,167,168,169],Ot=[2,110],$t=[1,6,31,32,42,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],Pt=[1,229],Mt=[1,228],jt=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155],Bt=[2,71],Vt=[1,238],Ut=[6,31,32,65,70],Ht=[6,31,32,55,65,70,73],Gt=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,163,165,166,167,168],qt=[82,83,84,85,87,90,113,114],Yt=[1,257],Xt=[2,62],Wt=[1,267],Jt=[1,273],zt=[2,182],Kt=[1,6,31,32,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,146,147,155,158,159,162,163,164,165,166,167,168],Qt=[1,283],Zt=[6,31,32,70,115,120],en=[1,6,31,32,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,146,147,155,158,159,160,161,162,163,164,165,166,167,168,169],tn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,140,155],nn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,134,140,155],rn=[146,147],on=[70,146,147],sn=[6,31,94],an=[1,296],cn=[6,31,32,70,94],ln=[6,31,32,58,70,94],un=[6,31,32,55,58,70,94],hn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,165,166,167,168],pn=[12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,89,92,95,97,104,112,117,118,119,125,129,130,133,135,137,139,148,154,156,157,158,159,160,161],dn=[2,171],fn=[6,31,32],mn=[2,72],gn=[1,308],bn=[1,309],yn=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,128,131,133,134,135,139,140,150,152,155,158,159,162,163,164,165,166,167,168],vn=[32,150,152],kn=[1,6,32,42,65,70,73,89,94,115,120,122,131,134,140,155],wn=[1,335],Tn=[1,340],Nn=[1,6,32,42,131,155],Ln=[2,86],Cn=[1,350],Fn=[1,351],En=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,150,155,158,159,162,163,164,165,166,167,168],Dn=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,140,155],xn=[1,363],_n=[1,364],Sn=[6,31,32,94],In=[6,31,32,70],Rn=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],An=[31,70],On=[1,390],$n=[1,391],Pn=[1,396],Mn=[1,397],jn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,YieldReturn:9,Return:10,Comment:11,STATEMENT:12,Import:13,Export:14,Value:15,Invocation:16,Code:17,Operation:18,Assign:19,If:20,Try:21,While:22,For:23,Switch:24,Class:25,Throw:26,Yield:27,YIELD:28,FROM:29,Block:30,INDENT:31,OUTDENT:32,Identifier:33,IDENTIFIER:34,Property:35,PROPERTY:36,AlphaNumeric:37,NUMBER:38,String:39,STRING:40,STRING_START:41,STRING_END:42,Regex:43,REGEX:44,REGEX_START:45,REGEX_END:46,Literal:47,JS:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,Assignable:54,"=":55,AssignObj:56,ObjAssignable:57,":":58,SimpleObjAssignable:59,ThisProperty:60,RETURN:61,HERECOMMENT:62,PARAM_START:63,ParamList:64,PARAM_END:65,FuncGlyph:66,"->":67,"=>":68,OptComma:69,",":70,Param:71,ParamVar:72,"...":73,Array:74,Object:75,Splat:76,SimpleAssignable:77,Accessor:78,Parenthetical:79,Range:80,This:81,".":82,"?.":83,"::":84,"?::":85,Index:86,INDEX_START:87,IndexValue:88,INDEX_END:89,INDEX_SOAK:90,Slice:91,"{":92,AssignList:93,"}":94,CLASS:95,EXTENDS:96,IMPORT:97,ImportDefaultSpecifier:98,ImportNamespaceSpecifier:99,ImportSpecifierList:100,ImportSpecifier:101,AS:102,IMPORT_ALL:103,EXPORT:104,ExportSpecifierList:105,DEFAULT:106,EXPORT_ALL:107,ExportSpecifier:108,OptFuncExist:109,Arguments:110,Super:111,SUPER:112,FUNC_EXIST:113,CALL_START:114,CALL_END:115,ArgList:116,THIS:117,"@":118,"[":119,"]":120,RangeDots:121,"..":122,Arg:123,SimpleArgs:124,TRY:125,Catch:126,FINALLY:127,CATCH:128,THROW:129,"(":130,")":131,WhileSource:132,WHILE:133,WHEN:134,UNTIL:135,Loop:136,LOOP:137,ForBody:138,FOR:139,BY:140,ForStart:141,ForSource:142,ForVariables:143,OWN:144,ForValue:145,FORIN:146,FOROF:147,SWITCH:148,Whens:149,ELSE:150,When:151,LEADING_WHEN:152,IfBlock:153,IF:154,POST_IF:155,UNARY:156,UNARY_MATH:157,"-":158,"+":159,"--":160,"++":161,"?":162,MATH:163,"**":164,SHIFT:165,COMPARE:166,LOGIC:167,RELATION:168,COMPOUND_ASSIGN:169,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",12:"STATEMENT",28:"YIELD",29:"FROM",31:"INDENT",32:"OUTDENT",34:"IDENTIFIER",36:"PROPERTY",38:"NUMBER",40:"STRING",41:"STRING_START",42:"STRING_END",44:"REGEX",45:"REGEX_START",46:"REGEX_END",48:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",55:"=",58:":",61:"RETURN",62:"HERECOMMENT",63:"PARAM_START",65:"PARAM_END",67:"->",68:"=>",70:",",73:"...",82:".",83:"?.",84:"::",85:"?::",87:"INDEX_START",89:"INDEX_END",90:"INDEX_SOAK",92:"{",94:"}",95:"CLASS",96:"EXTENDS",97:"IMPORT",102:"AS",103:"IMPORT_ALL",104:"EXPORT",106:"DEFAULT",107:"EXPORT_ALL",112:"SUPER",113:"FUNC_EXIST",114:"CALL_START",115:"CALL_END",117:"THIS",118:"@",119:"[",120:"]",122:"..",125:"TRY",127:"FINALLY",128:"CATCH",129:"THROW",130:"(",131:")",133:"WHILE",134:"WHEN",135:"UNTIL",137:"LOOP",139:"FOR",140:"BY",144:"OWN",146:"FORIN",147:"FOROF",148:"SWITCH",150:"ELSE",152:"LEADING_WHEN",154:"IF",155:"POST_IF",156:"UNARY",157:"UNARY_MATH",158:"-",159:"+",160:"--",161:"++",162:"?",163:"MATH",164:"**",165:"SHIFT",166:"COMPARE",167:"LOGIC",168:"RELATION",169:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[27,1],[27,2],[27,3],[30,2],[30,3],[33,1],[35,1],[37,1],[37,1],[39,1],[39,3],[43,1],[43,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[19,3],[19,4],[19,5],[56,1],[56,3],[56,5],[56,3],[56,5],[56,1],[59,1],[59,1],[59,1],[57,1],[57,1],[10,2],[10,1],[9,3],[9,2],[11,1],[17,5],[17,2],[66,1],[66,1],[69,0],[69,1],[64,0],[64,1],[64,3],[64,4],[64,6],[71,1],[71,2],[71,3],[71,1],[72,1],[72,1],[72,1],[72,1],[76,2],[77,1],[77,2],[77,2],[77,1],[54,1],[54,1],[54,1],[15,1],[15,1],[15,1],[15,1],[15,1],[78,2],[78,2],[78,2],[78,2],[78,1],[78,1],[86,3],[86,2],[88,1],[88,1],[75,4],[93,0],[93,1],[93,3],[93,4],[93,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,4],[25,5],[13,2],[13,4],[13,4],[13,5],[13,7],[13,6],[13,9],[100,1],[100,3],[100,4],[100,4],[100,6],[101,1],[101,3],[98,1],[99,3],[14,3],[14,5],[14,2],[14,4],[14,5],[14,6],[14,3],[14,4],[14,7],[105,1],[105,3],[105,4],[105,4],[105,6],[108,1],[108,3],[108,3],[16,3],[16,3],[16,1],[111,1],[111,2],[109,0],[109,1],[110,2],[110,4],[81,1],[81,1],[60,2],[74,2],[74,4],[121,1],[121,1],[80,5],[91,3],[91,2],[91,2],[91,1],[116,1],[116,3],[116,4],[116,4],[116,6],[123,1],[123,1],[123,1],[124,1],[124,3],[21,2],[21,3],[21,4],[21,5],[126,3],[126,3],[126,2],[26,2],[79,3],[79,5],[132,2],[132,4],[132,2],[132,4],[22,2],[22,2],[22,2],[22,1],[136,2],[136,2],[23,2],[23,2],[23,2],[138,2],[138,4],[138,2],[141,2],[141,3],[145,1],[145,1],[145,1],[145,1],[143,1],[143,3],[142,2],[142,2],[142,4],[142,4],[142,4],[142,6],[142,6],[24,5],[24,7],[24,4],[24,6],[149,1],[149,2],[151,3],[151,4],[153,3],[153,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(e,t,n,i,r,o,s){var a=o.length-1; -switch(r){case 1:return this.$=i.addLocationDataFn(s[a],s[a])(new i.Block);case 2:return this.$=o[a];case 3:this.$=i.addLocationDataFn(s[a],s[a])(i.Block.wrap([o[a]]));break;case 4:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].push(o[a]));break;case 5:this.$=o[a-1];break;case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 35:case 40:case 42:case 56:case 57:case 58:case 59:case 60:case 61:case 71:case 72:case 82:case 83:case 84:case 85:case 90:case 91:case 94:case 98:case 104:case 158:case 182:case 183:case 185:case 215:case 216:case 232:case 238:this.$=o[a];break;case 11:this.$=i.addLocationDataFn(s[a],s[a])(new i.StatementLiteral(o[a]));break;case 27:this.$=i.addLocationDataFn(s[a],s[a])(new i.Op(o[a],new i.Value(new i.Literal(""))));break;case 28:case 242:case 243:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op(o[a-1],o[a]));break;case 29:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-2].concat(o[a-1]),o[a]));break;case 30:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Block);break;case 31:case 105:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-1]);break;case 32:this.$=i.addLocationDataFn(s[a],s[a])(new i.IdentifierLiteral(o[a]));break;case 33:this.$=i.addLocationDataFn(s[a],s[a])(new i.PropertyName(o[a]));break;case 34:this.$=i.addLocationDataFn(s[a],s[a])(new i.NumberLiteral(o[a]));break;case 36:this.$=i.addLocationDataFn(s[a],s[a])(new i.StringLiteral(o[a]));break;case 37:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.StringWithInterpolations(o[a-1]));break;case 38:this.$=i.addLocationDataFn(s[a],s[a])(new i.RegexLiteral(o[a]));break;case 39:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.RegexWithInterpolations(o[a-1].args));break;case 41:this.$=i.addLocationDataFn(s[a],s[a])(new i.PassthroughLiteral(o[a]));break;case 43:this.$=i.addLocationDataFn(s[a],s[a])(new i.UndefinedLiteral);break;case 44:this.$=i.addLocationDataFn(s[a],s[a])(new i.NullLiteral);break;case 45:this.$=i.addLocationDataFn(s[a],s[a])(new i.BooleanLiteral(o[a]));break;case 46:this.$=i.addLocationDataFn(s[a],s[a])(new i.InfinityLiteral(o[a]));break;case 47:this.$=i.addLocationDataFn(s[a],s[a])(new i.NaNLiteral);break;case 48:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a]));break;case 49:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a]));break;case 50:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1]));break;case 51:case 87:case 92:case 93:case 95:case 96:case 97:case 217:case 218:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(o[a]));break;case 52:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(i.addLocationDataFn(s[a-2])(new i.Value(o[a-2])),o[a],"object",{operatorToken:i.addLocationDataFn(s[a-1])(new i.Literal(o[a-1]))}));break;case 53:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(i.addLocationDataFn(s[a-4])(new i.Value(o[a-4])),o[a-1],"object",{operatorToken:i.addLocationDataFn(s[a-3])(new i.Literal(o[a-3]))}));break;case 54:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(i.addLocationDataFn(s[a-2])(new i.Value(o[a-2])),o[a],null,{operatorToken:i.addLocationDataFn(s[a-1])(new i.Literal(o[a-1]))}));break;case 55:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(i.addLocationDataFn(s[a-4])(new i.Value(o[a-4])),o[a-1],null,{operatorToken:i.addLocationDataFn(s[a-3])(new i.Literal(o[a-3]))}));break;case 62:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Return(o[a]));break;case 63:this.$=i.addLocationDataFn(s[a],s[a])(new i.Return);break;case 64:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.YieldReturn(o[a]));break;case 65:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.YieldReturn);break;case 66:this.$=i.addLocationDataFn(s[a],s[a])(new i.Comment(o[a]));break;case 67:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Code(o[a-3],o[a],o[a-1]));break;case 68:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Code([],o[a],o[a-1]));break;case 69:this.$=i.addLocationDataFn(s[a],s[a])("func");break;case 70:this.$=i.addLocationDataFn(s[a],s[a])("boundfunc");break;case 73:case 110:this.$=i.addLocationDataFn(s[a],s[a])([]);break;case 74:case 111:case 130:case 148:case 177:case 219:this.$=i.addLocationDataFn(s[a],s[a])([o[a]]);break;case 75:case 112:case 131:case 149:case 178:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].concat(o[a]));break;case 76:case 113:case 132:case 150:case 179:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-3].concat(o[a]));break;case 77:case 114:case 134:case 152:case 181:this.$=i.addLocationDataFn(s[a-5],s[a])(o[a-5].concat(o[a-2]));break;case 78:this.$=i.addLocationDataFn(s[a],s[a])(new i.Param(o[a]));break;case 79:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Param(o[a-1],null,!0));break;case 80:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Param(o[a-2],o[a]));break;case 81:case 184:this.$=i.addLocationDataFn(s[a],s[a])(new i.Expansion);break;case 86:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Splat(o[a-1]));break;case 88:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].add(o[a]));break;case 89:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(o[a-1],[].concat(o[a])));break;case 99:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a]));break;case 100:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Access(o[a],"soak"));break;case 101:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.PropertyName("prototype"))),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 102:this.$=i.addLocationDataFn(s[a-1],s[a])([i.addLocationDataFn(s[a-1])(new i.Access(new i.PropertyName("prototype"),"soak")),i.addLocationDataFn(s[a])(new i.Access(o[a]))]);break;case 103:this.$=i.addLocationDataFn(s[a],s[a])(new i.Access(new i.PropertyName("prototype")));break;case 106:this.$=i.addLocationDataFn(s[a-1],s[a])(i.extend(o[a],{soak:!0}));break;case 107:this.$=i.addLocationDataFn(s[a],s[a])(new i.Index(o[a]));break;case 108:this.$=i.addLocationDataFn(s[a],s[a])(new i.Slice(o[a]));break;case 109:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Obj(o[a-2],o[a-3].generated));break;case 115:this.$=i.addLocationDataFn(s[a],s[a])(new i.Class);break;case 116:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(null,null,o[a]));break;case 117:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(null,o[a]));break;case 118:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(null,o[a-1],o[a]));break;case 119:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Class(o[a]));break;case 120:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Class(o[a-1],null,o[a]));break;case 121:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Class(o[a-2],o[a]));break;case 122:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Class(o[a-3],o[a-1],o[a]));break;case 123:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.ImportDeclaration(null,o[a]));break;case 124:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ImportDeclaration(new i.ImportClause(o[a-2],null),o[a]));break;case 125:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ImportDeclaration(new i.ImportClause(null,o[a-2]),o[a]));break;case 126:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.ImportDeclaration(new i.ImportClause(null,new i.ImportSpecifierList([])),o[a]));break;case 127:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.ImportDeclaration(new i.ImportClause(null,new i.ImportSpecifierList(o[a-4])),o[a]));break;case 128:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.ImportDeclaration(new i.ImportClause(o[a-4],o[a-2]),o[a]));break;case 129:this.$=i.addLocationDataFn(s[a-8],s[a])(new i.ImportDeclaration(new i.ImportClause(o[a-7],new i.ImportSpecifierList(o[a-4])),o[a]));break;case 133:case 151:case 164:case 180:this.$=i.addLocationDataFn(s[a-3],s[a])(o[a-2]);break;case 135:this.$=i.addLocationDataFn(s[a],s[a])(new i.ImportSpecifier(o[a]));break;case 136:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ImportSpecifier(o[a-2],o[a]));break;case 137:this.$=i.addLocationDataFn(s[a],s[a])(new i.ImportDefaultSpecifier(o[a]));break;case 138:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ImportNamespaceSpecifier(new i.Literal(o[a-2]),o[a]));break;case 139:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportNamedDeclaration(new i.ExportSpecifierList([])));break;case 140:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.ExportNamedDeclaration(new i.ExportSpecifierList(o[a-2])));break;case 141:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.ExportNamedDeclaration(o[a]));break;case 142:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ExportNamedDeclaration(new i.Assign(o[a-2],o[a],null,{moduleDeclaration:"export"})));break;case 143:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.ExportNamedDeclaration(new i.Assign(o[a-3],o[a],null,{moduleDeclaration:"export"})));break;case 144:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.ExportNamedDeclaration(new i.Assign(o[a-4],o[a-1],null,{moduleDeclaration:"export"})));break;case 145:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportDefaultDeclaration(o[a]));break;case 146:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.ExportAllDeclaration(new i.Literal(o[a-2]),o[a]));break;case 147:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.ExportNamedDeclaration(new i.ExportSpecifierList(o[a-4]),o[a]));break;case 153:this.$=i.addLocationDataFn(s[a],s[a])(new i.ExportSpecifier(o[a]));break;case 154:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportSpecifier(o[a-2],o[a]));break;case 155:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.ExportSpecifier(o[a-2],new i.Literal(o[a])));break;case 156:case 157:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Call(o[a-2],o[a],o[a-1]));break;case 159:this.$=i.addLocationDataFn(s[a],s[a])(new i.SuperCall);break;case 160:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.SuperCall(o[a]));break;case 161:this.$=i.addLocationDataFn(s[a],s[a])(!1);break;case 162:this.$=i.addLocationDataFn(s[a],s[a])(!0);break;case 163:this.$=i.addLocationDataFn(s[a-1],s[a])([]);break;case 165:case 166:this.$=i.addLocationDataFn(s[a],s[a])(new i.Value(new i.ThisLiteral));break;case 167:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Value(i.addLocationDataFn(s[a-1])(new i.ThisLiteral),[i.addLocationDataFn(s[a])(new i.Access(o[a]))],"this"));break;case 168:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Arr([]));break;case 169:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Arr(o[a-2]));break;case 170:this.$=i.addLocationDataFn(s[a],s[a])("inclusive");break;case 171:this.$=i.addLocationDataFn(s[a],s[a])("exclusive");break;case 172:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Range(o[a-3],o[a-1],o[a-2]));break;case 173:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Range(o[a-2],o[a],o[a-1]));break;case 174:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(o[a-1],null,o[a]));break;case 175:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Range(null,o[a],o[a-1]));break;case 176:this.$=i.addLocationDataFn(s[a],s[a])(new i.Range(null,null,o[a]));break;case 186:this.$=i.addLocationDataFn(s[a-2],s[a])([].concat(o[a-2],o[a]));break;case 187:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Try(o[a]));break;case 188:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Try(o[a-1],o[a][0],o[a][1]));break;case 189:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Try(o[a-2],null,null,o[a]));break;case 190:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Try(o[a-3],o[a-2][0],o[a-2][1],o[a]));break;case 191:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-1],o[a]]);break;case 192:this.$=i.addLocationDataFn(s[a-2],s[a])([i.addLocationDataFn(s[a-1])(new i.Value(o[a-1])),o[a]]);break;case 193:this.$=i.addLocationDataFn(s[a-1],s[a])([null,o[a]]);break;case 194:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Throw(o[a]));break;case 195:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Parens(o[a-1]));break;case 196:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Parens(o[a-2]));break;case 197:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a]));break;case 198:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{guard:o[a]}));break;case 199:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(o[a],{invert:!0}));break;case 200:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.While(o[a-2],{invert:!0,guard:o[a]}));break;case 201:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].addBody(o[a]));break;case 202:case 203:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a].addBody(i.addLocationDataFn(s[a-1])(i.Block.wrap([o[a-1]]))));break;case 204:this.$=i.addLocationDataFn(s[a],s[a])(o[a]);break;case 205:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.BooleanLiteral("true"))).addBody(o[a]));break;case 206:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.While(i.addLocationDataFn(s[a-1])(new i.BooleanLiteral("true"))).addBody(i.addLocationDataFn(s[a])(i.Block.wrap([o[a]]))));break;case 207:case 208:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a-1],o[a]));break;case 209:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.For(o[a],o[a-1]));break;case 210:this.$=i.addLocationDataFn(s[a-1],s[a])({source:i.addLocationDataFn(s[a])(new i.Value(o[a]))});break;case 211:this.$=i.addLocationDataFn(s[a-3],s[a])({source:i.addLocationDataFn(s[a-2])(new i.Value(o[a-2])),step:o[a]});break;case 212:this.$=i.addLocationDataFn(s[a-1],s[a])(function(){return o[a].own=o[a-1].own,o[a].name=o[a-1][0],o[a].index=o[a-1][1],o[a]}());break;case 213:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a]);break;case 214:this.$=i.addLocationDataFn(s[a-2],s[a])(function(){return o[a].own=!0,o[a]}());break;case 220:this.$=i.addLocationDataFn(s[a-2],s[a])([o[a-2],o[a]]);break;case 221:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a]});break;case 222:this.$=i.addLocationDataFn(s[a-1],s[a])({source:o[a],object:!0});break;case 223:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a]});break;case 224:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],guard:o[a],object:!0});break;case 225:this.$=i.addLocationDataFn(s[a-3],s[a])({source:o[a-2],step:o[a]});break;case 226:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],guard:o[a-2],step:o[a]});break;case 227:this.$=i.addLocationDataFn(s[a-5],s[a])({source:o[a-4],step:o[a-2],guard:o[a]});break;case 228:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Switch(o[a-3],o[a-1]));break;case 229:this.$=i.addLocationDataFn(s[a-6],s[a])(new i.Switch(o[a-5],o[a-3],o[a-1]));break;case 230:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Switch(null,o[a-1]));break;case 231:this.$=i.addLocationDataFn(s[a-5],s[a])(new i.Switch(null,o[a-3],o[a-1]));break;case 233:this.$=i.addLocationDataFn(s[a-1],s[a])(o[a-1].concat(o[a]));break;case 234:this.$=i.addLocationDataFn(s[a-2],s[a])([[o[a-1],o[a]]]);break;case 235:this.$=i.addLocationDataFn(s[a-3],s[a])([[o[a-2],o[a-1]]]);break;case 236:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a-1],o[a],{type:o[a-2]}));break;case 237:this.$=i.addLocationDataFn(s[a-4],s[a])(o[a-4].addElse(i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a-1],o[a],{type:o[a-2]}))));break;case 239:this.$=i.addLocationDataFn(s[a-2],s[a])(o[a-2].addElse(o[a]));break;case 240:case 241:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.If(o[a],i.addLocationDataFn(s[a-2])(i.Block.wrap([o[a-2]])),{type:o[a-1],statement:!0}));break;case 244:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("-",o[a]));break;case 245:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("+",o[a]));break;case 246:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a]));break;case 247:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a]));break;case 248:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("--",o[a-1],null,!0));break;case 249:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Op("++",o[a-1],null,!0));break;case 250:this.$=i.addLocationDataFn(s[a-1],s[a])(new i.Existence(o[a-1]));break;case 251:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("+",o[a-2],o[a]));break;case 252:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op("-",o[a-2],o[a]));break;case 253:case 254:case 255:case 256:case 257:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Op(o[a-1],o[a-2],o[a]));break;case 258:this.$=i.addLocationDataFn(s[a-2],s[a])(function(){return"!"===o[a-1].charAt(0)?new i.Op(o[a-1].slice(1),o[a-2],o[a]).invert():new i.Op(o[a-1],o[a-2],o[a])}());break;case 259:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Assign(o[a-2],o[a],o[a-1]));break;case 260:this.$=i.addLocationDataFn(s[a-4],s[a])(new i.Assign(o[a-4],o[a-1],o[a-3]));break;case 261:this.$=i.addLocationDataFn(s[a-3],s[a])(new i.Assign(o[a-3],o[a],o[a-2]));break;case 262:this.$=i.addLocationDataFn(s[a-2],s[a])(new i.Extends(o[a-2],o[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{1:[3]},{1:[2,2],6:G},t(q,[2,3]),t(q,[2,6],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(q,[2,7],{141:77,132:100,138:101,133:I,135:R,139:O,155:nt}),t(q,[2,8]),t(it,[2,14],{109:102,78:103,86:109,82:rt,83:ot,84:st,85:at,87:ct,90:lt,113:ut,114:ht}),t(it,[2,15],{86:109,109:112,78:113,82:rt,83:ot,84:st,85:at,87:ct,90:lt,113:ut,114:ht}),t(it,[2,16]),t(it,[2,17]),t(it,[2,18]),t(it,[2,19]),t(it,[2,20]),t(it,[2,21]),t(it,[2,22]),t(it,[2,23]),t(it,[2,24]),t(it,[2,25]),t(it,[2,26]),t(pt,[2,9]),t(pt,[2,10]),t(pt,[2,11]),t(pt,[2,12]),t(pt,[2,13]),t([1,6,32,42,131,133,135,139,155,162,163,164,165,166,167,168],dt,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:115,8:117,12:n,28:ft,29:mt,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:[1,114],62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:x,129:_,130:S,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(gt,bt,{55:[1,119]}),t(gt,[2,95]),t(gt,[2,96]),t(gt,[2,97]),t(gt,[2,98]),t(yt,[2,158]),t([6,31,65,70],vt,{64:120,71:121,72:122,33:124,60:125,74:126,75:127,34:r,73:kt,92:w,118:wt,119:Tt}),{30:130,31:Nt},{7:132,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:133,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:134,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:135,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{15:137,16:138,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:139,60:71,74:53,75:54,77:136,79:28,80:29,81:30,92:w,111:31,112:C,117:F,118:E,119:D,130:S},{15:137,16:138,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:139,60:71,74:53,75:54,77:140,79:28,80:29,81:30,92:w,111:31,112:C,117:F,118:E,119:D,130:S},t(Lt,Ct,{96:[1,144],160:[1,141],161:[1,142],169:[1,143]}),t(it,[2,238],{150:[1,145]}),{30:146,31:Nt},{30:147,31:Nt},t(it,[2,204]),{30:148,31:Nt},{7:149,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,150],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Ft,[2,115],{47:27,79:28,80:29,81:30,111:31,74:53,75:54,37:55,43:57,33:70,60:71,39:80,15:137,16:138,54:139,30:151,77:153,31:Nt,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,92:w,96:[1,152],112:C,117:F,118:E,119:D,130:S}),{7:154,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(pt,Et,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:117,7:155,12:n,28:ft,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:x,129:_,130:S,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t([1,6,31,32,42,70,94,131,133,135,139,155],[2,66]),{33:160,34:r,39:156,40:s,41:a,92:[1,159],98:157,99:158,103:Dt},{25:163,33:164,34:r,92:[1,162],95:T,106:[1,165],107:[1,166]},t(Lt,[2,92]),t(Lt,[2,93]),t(gt,[2,40]),t(gt,[2,41]),t(gt,[2,42]),t(gt,[2,43]),t(gt,[2,44]),t(gt,[2,45]),t(gt,[2,46]),t(gt,[2,47]),{4:167,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,31:[1,168],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:169,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:xt,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:_t,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:171,117:F,118:E,119:D,120:St,123:172,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(gt,[2,165]),t(gt,[2,166],{35:176,36:It}),t([1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,115,120,122,131,133,134,135,139,140,155,158,159,162,163,164,165,166,167,168],[2,159],{110:178,114:Rt}),{31:[2,69]},{31:[2,70]},t(At,[2,87]),t(At,[2,90]),{7:180,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:181,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:182,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:184,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,30:183,31:Nt,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{33:189,34:r,60:190,74:191,75:192,80:185,92:w,118:wt,119:D,143:186,144:[1,187],145:188},{142:193,146:[1,194],147:[1,195]},t([6,31,70,94],Ot,{39:80,93:196,56:197,57:198,59:199,11:200,37:201,33:202,35:203,60:204,34:r,36:It,38:o,40:s,41:a,62:b,118:wt}),t($t,[2,34]),t($t,[2,35]),t(gt,[2,38]),{15:137,16:205,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:139,60:71,74:53,75:54,77:206,79:28,80:29,81:30,92:w,111:31,112:C,117:F,118:E,119:D,130:S},t([1,6,29,31,32,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,102,113,114,115,120,122,131,133,134,135,139,140,146,147,155,158,159,160,161,162,163,164,165,166,167,168,169],[2,32]),t($t,[2,36]),{4:207,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(q,[2,5],{7:4,8:5,9:6,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,5:208,12:n,28:i,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:x,129:_,130:S,133:I,135:R,137:A,139:O,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(it,[2,250]),{7:209,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:210,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:211,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:212,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:213,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:214,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:215,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:216,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:217,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,203]),t(it,[2,208]),{7:218,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,202]),t(it,[2,207]),{110:219,114:Rt},t(At,[2,88]),{114:[2,162]},{35:220,36:It},{35:221,36:It},t(At,[2,103],{35:222,36:It}),{35:223,36:It},t(At,[2,104]),{7:225,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:Pt,74:53,75:54,77:40,79:28,80:29,81:30,88:224,91:226,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,121:227,122:Mt,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{86:230,87:ct,90:lt},{110:231,114:Rt},t(At,[2,89]),t(q,[2,65],{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:117,7:232,12:n,28:ft,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:x,129:_,130:S,133:Et,135:Et,139:Et,155:Et,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(jt,[2,28],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:233,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{132:100,133:I,135:R,138:101,139:O,141:77,155:nt},t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,162,163,164,165,166,167,168],dt,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:115,8:117,12:n,28:ft,29:mt,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:x,129:_,130:S,137:A,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),{6:[1,235],7:234,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,236],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([6,31],Bt,{69:239,65:[1,237],70:Vt}),t(Ut,[2,74]),t(Ut,[2,78],{55:[1,241],73:[1,240]}),t(Ut,[2,81]),t(Ht,[2,82]),t(Ht,[2,83]),t(Ht,[2,84]),t(Ht,[2,85]),{35:176,36:It},{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:xt,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:_t,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:171,117:F,118:E,119:D,120:St,123:172,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,68]),{4:244,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,32:[1,243],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,158,159,163,164,165,166,167,168],[2,242],{141:77,132:97,138:98,162:J}),t(Gt,[2,243],{141:77,132:97,138:98,162:J,164:K}),t(Gt,[2,244],{141:77,132:97,138:98,162:J,164:K}),t(Gt,[2,245],{141:77,132:97,138:98,162:J,164:K}),t(it,[2,246],{82:Ct,83:Ct,84:Ct,85:Ct,87:Ct,90:Ct,113:Ct,114:Ct}),{78:103,82:rt,83:ot,84:st,85:at,86:109,87:ct,90:lt,109:102,113:ut,114:ht},{78:113,82:rt,83:ot,84:st,85:at,86:109,87:ct,90:lt,109:112,113:ut,114:ht},t(qt,bt),t(it,[2,247],{82:Ct,83:Ct,84:Ct,85:Ct,87:Ct,90:Ct,113:Ct,114:Ct}),t(it,[2,248]),t(it,[2,249]),{6:[1,247],7:245,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,246],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:248,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{30:249,31:Nt,154:[1,250]},t(it,[2,187],{126:251,127:[1,252],128:[1,253]}),t(it,[2,201]),t(it,[2,209]),{31:[1,254],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{149:255,151:256,152:Yt},t(it,[2,116]),{7:258,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Ft,[2,119],{30:259,31:Nt,82:Ct,83:Ct,84:Ct,85:Ct,87:Ct,90:Ct,113:Ct,114:Ct,96:[1,260]}),t(jt,[2,194],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,Xt,{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,[2,123]),{29:[1,261],70:[1,262]},{29:[1,263]},{31:Wt,33:268,34:r,94:[1,264],100:265,101:266},t([29,70],[2,137]),{102:[1,269]},{31:Jt,33:274,34:r,94:[1,270],105:271,108:272},t(pt,[2,141]),{55:[1,275]},{7:276,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{29:[1,277]},{6:G,131:[1,278]},{4:279,5:3,7:4,8:5,9:6,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:i,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([6,31,70,120],zt,{141:77,132:97,138:98,121:280,73:[1,281],122:Mt,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Kt,[2,168]),t([6,31,120],Bt,{69:282,70:Qt}),t(Zt,[2,177]),{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:xt,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:_t,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:284,117:F,118:E,119:D,123:172,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Zt,[2,183]),t(Zt,[2,184]),t(en,[2,167]),t(en,[2,33]),t(yt,[2,160]),{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:xt,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:_t,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,115:[1,285],116:286,117:F,118:E,119:D,123:172,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{30:287,31:Nt,132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(tn,[2,197],{141:77,132:97,138:98,133:I,134:[1,288],135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(tn,[2,199],{141:77,132:97,138:98,133:I,134:[1,289],135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,205]),t(nn,[2,206],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,155,158,159,162,163,164,165,166,167,168],[2,210],{140:[1,290]}),t(rn,[2,213]),{33:189,34:r,60:190,74:191,75:192,92:w,118:wt,119:Tt,143:291,145:188},t(rn,[2,219],{70:[1,292]}),t(on,[2,215]),t(on,[2,216]),t(on,[2,217]),t(on,[2,218]),t(it,[2,212]),{7:293,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:294,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(sn,Bt,{69:295,70:an}),t(cn,[2,111]),t(cn,[2,51],{58:[1,297]}),t(ln,[2,60],{55:[1,298]}),t(cn,[2,56]),t(ln,[2,61]),t(un,[2,57]),t(un,[2,58]),t(un,[2,59]),{46:[1,299],78:113,82:rt,83:ot,84:st,85:at,86:109,87:ct,90:lt,109:112,113:ut,114:ht},t(qt,Ct),{6:G,42:[1,300]},t(q,[2,4]),t(hn,[2,251],{141:77,132:97,138:98,162:J,163:z,164:K}),t(hn,[2,252],{141:77,132:97,138:98,162:J,163:z,164:K}),t(Gt,[2,253],{141:77,132:97,138:98,162:J,164:K}),t(Gt,[2,254],{141:77,132:97,138:98,162:J,164:K}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,165,166,167,168],[2,255],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,166,167],[2,256],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,168:tt}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,167],[2,257],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,168:tt}),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,155,166,167,168],[2,258],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q}),t(nn,[2,241],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(nn,[2,240],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(yt,[2,156]),t(At,[2,99]),t(At,[2,100]),t(At,[2,101]),t(At,[2,102]),{89:[1,301]},{73:Pt,89:[2,107],121:302,122:Mt,132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{89:[2,108]},{7:303,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,176],92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(pn,[2,170]),t(pn,dn),t(At,[2,106]),t(yt,[2,157]),t(q,[2,64],{141:77,132:97,138:98,133:Xt,135:Xt,139:Xt,155:Xt,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,29],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,48],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:304,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:305,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{66:306,67:v,68:k},t(fn,mn,{72:122,33:124,60:125,74:126,75:127,71:307,34:r,73:kt,92:w,118:wt,119:Tt}),{6:gn,31:bn},t(Ut,[2,79]),{7:310,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Zt,zt,{141:77,132:97,138:98,73:[1,311],133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(yn,[2,30]),{6:G,32:[1,312]},t(jt,[2,259],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:313,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:314,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(jt,[2,262],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,239]),{7:315,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,188],{127:[1,316]}),{30:317,31:Nt},{30:320,31:Nt,33:318,34:r,75:319,92:w},{149:321,151:256,152:Yt},{32:[1,322],150:[1,323],151:324,152:Yt},t(vn,[2,232]),{7:326,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,124:325,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(kn,[2,117],{141:77,132:97,138:98,30:327,31:Nt,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,120]),{7:328,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{39:329,40:s,41:a},{92:[1,331],99:330,103:Dt},{39:332,40:s,41:a},{29:[1,333]},t(sn,Bt,{69:334,70:wn}),t(cn,[2,130]),{31:Wt,33:268,34:r,100:336,101:266},t(cn,[2,135],{102:[1,337]}),{33:338,34:r},t(pt,[2,139]),t(sn,Bt,{69:339,70:Tn}),t(cn,[2,148]),{31:Jt,33:274,34:r,105:341,108:272},t(cn,[2,153],{102:[1,342]}),{6:[1,344],7:343,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,345],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Nn,[2,145],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{39:346,40:s,41:a},t(gt,[2,195]),{6:G,32:[1,347]},{7:348,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t([12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,92,95,97,104,112,117,118,119,125,129,130,133,135,137,139,148,154,156,157,158,159,160,161],dn,{6:Ln,31:Ln,70:Ln,120:Ln}),{6:Cn,31:Fn,120:[1,349]},t([6,31,32,115,120],mn,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,153:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:117,76:174,7:242,123:352,12:n,28:ft,34:r,38:o,40:s,41:a,44:c,45:l,48:u,49:h,50:p,51:d,52:f,53:m,61:g,62:b,63:y,67:v,68:k,73:_t,92:w,95:T,97:N,104:L,112:C,117:F,118:E,119:D,125:x,129:_,130:S,133:I,135:R,137:A,139:O,148:$,154:P,156:M,157:j,158:B,159:V,160:U,161:H}),t(fn,Bt,{69:353,70:Qt}),t(yt,[2,163]),t([6,31,115],Bt,{69:354,70:Qt}),t(En,[2,236]),{7:355,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:356,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:357,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(rn,[2,214]),{33:189,34:r,60:190,74:191,75:192,92:w,118:wt,119:Tt,145:358},t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,155],[2,221],{141:77,132:97,138:98,134:[1,359],140:[1,360],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Dn,[2,222],{141:77,132:97,138:98,134:[1,361],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{6:xn,31:_n,94:[1,362]},t(Sn,mn,{39:80,57:198,59:199,11:200,37:201,33:202,35:203,60:204,56:365,34:r,36:It,38:o,40:s,41:a,62:b,118:wt}),{7:366,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,367],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:368,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:[1,369],33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(gt,[2,39]),t($t,[2,37]),t(At,[2,105]),{7:370,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,174],92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{89:[2,175],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(jt,[2,49],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{32:[1,371],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{30:372,31:Nt},t(Ut,[2,75]),{33:124,34:r,60:125,71:373,72:122,73:kt,74:126,75:127,92:w,118:wt,119:Tt},t(In,vt,{71:121,72:122,33:124,60:125,74:126,75:127,64:374,34:r,73:kt,92:w,118:wt,119:Tt}),t(Ut,[2,80],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Zt,Ln),t(yn,[2,31]),{32:[1,375],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(jt,[2,261],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{30:376,31:Nt,132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{30:377,31:Nt},t(it,[2,189]),{30:378,31:Nt},{30:379,31:Nt},t(Rn,[2,193]),{32:[1,380],150:[1,381],151:324,152:Yt},t(it,[2,230]),{30:382,31:Nt},t(vn,[2,233]),{30:383,31:Nt,70:[1,384]},t(An,[2,185],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(it,[2,118]),t(kn,[2,121],{141:77,132:97,138:98,30:385,31:Nt,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,[2,124]),{29:[1,386]},{31:Wt,33:268,34:r,100:387,101:266},t(pt,[2,125]),{39:388,40:s,41:a},{6:On,31:$n,94:[1,389]},t(Sn,mn,{33:268,101:392,34:r}),t(fn,Bt,{69:393,70:wn}),{33:394,34:r},{29:[2,138]},{6:Pn,31:Mn,94:[1,395]},t(Sn,mn,{33:274,108:398,34:r}),t(fn,Bt,{69:399,70:Tn}),{33:400,34:r,106:[1,401]},t(Nn,[2,142],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:402,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:403,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(pt,[2,146]),{131:[1,404]},{120:[1,405],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(Kt,[2,169]),{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:_t,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,123:406,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:242,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,31:xt,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,73:_t,74:53,75:54,76:174,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,116:407,117:F,118:E,119:D,123:172,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Zt,[2,178]),{6:Cn,31:Fn,32:[1,408]},{6:Cn,31:Fn,115:[1,409]},t(nn,[2,198],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(nn,[2,200],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(nn,[2,211],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(rn,[2,220]),{7:410,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:411,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:412,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(Kt,[2,109]),{11:200,33:202,34:r,35:203,36:It,37:201,38:o,39:80,40:s,41:a,56:413,57:198,59:199,60:204,62:b,118:wt},t(In,Ot,{39:80,56:197,57:198,59:199,11:200,37:201,33:202,35:203,60:204,93:414,34:r,36:It,38:o,40:s,41:a,62:b,118:wt}),t(cn,[2,112]),t(cn,[2,52],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:415,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(cn,[2,54],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{7:416,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{89:[2,173],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(it,[2,50]),t(it,[2,67]),t(Ut,[2,76]),t(fn,Bt,{69:417,70:Vt}),t(it,[2,260]),t(En,[2,237]),t(it,[2,190]),t(Rn,[2,191]),t(Rn,[2,192]),t(it,[2,228]),{30:418,31:Nt},{32:[1,419]},t(vn,[2,234],{6:[1,420]}),{7:421,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},t(it,[2,122]),{39:422,40:s,41:a},t(sn,Bt,{69:423,70:wn}),t(pt,[2,126]),{29:[1,424]},{33:268,34:r,101:425},{31:Wt,33:268,34:r,100:426,101:266},t(cn,[2,131]),{6:On,31:$n,32:[1,427]},t(cn,[2,136]),t(pt,[2,140],{29:[1,428]}),{33:274,34:r,108:429},{31:Jt,33:274,34:r,105:430,108:272},t(cn,[2,149]),{6:Pn,31:Mn,32:[1,431]},t(cn,[2,154]),t(cn,[2,155]),t(Nn,[2,143],{141:77,132:97,138:98,133:I,135:R,139:O,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),{32:[1,432],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},t(gt,[2,196]),t(gt,[2,172]),t(Zt,[2,179]),t(fn,Bt,{69:433,70:Qt}),t(Zt,[2,180]),t(yt,[2,164]),t([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,155],[2,223],{141:77,132:97,138:98,140:[1,434],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(Dn,[2,225],{141:77,132:97,138:98,134:[1,435],158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,224],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(cn,[2,113]),t(fn,Bt,{69:436,70:an}),{32:[1,437],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{32:[1,438],132:97,133:I,135:R,138:98,139:O,141:77,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt},{6:gn,31:bn,32:[1,439]},{32:[1,440]},t(it,[2,231]),t(vn,[2,235]),t(An,[2,186],{141:77,132:97,138:98,133:I,135:R,139:O,155:Y,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(pt,[2,128]),{6:On,31:$n,94:[1,441]},{39:442,40:s,41:a},t(cn,[2,132]),t(fn,Bt,{69:443,70:wn}),t(cn,[2,133]),{39:444,40:s,41:a},t(cn,[2,150]),t(fn,Bt,{69:445,70:Tn}),t(cn,[2,151]),t(pt,[2,144]),{6:Cn,31:Fn,32:[1,446]},{7:447,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{7:448,8:117,10:20,11:21,12:n,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ft,33:70,34:r,37:55,38:o,39:80,40:s,41:a,43:57,44:c,45:l,47:27,48:u,49:h,50:p,51:d,52:f,53:m,54:26,60:71,61:g,62:b,63:y,66:33,67:v,68:k,74:53,75:54,77:40,79:28,80:29,81:30,92:w,95:T,97:N,104:L,111:31,112:C,117:F,118:E,119:D,125:x,129:_,130:S,132:43,133:I,135:R,136:44,137:A,138:45,139:O,141:77,148:$,153:41,154:P,156:M,157:j,158:B,159:V,160:U,161:H},{6:xn,31:_n,32:[1,449]},t(cn,[2,53]),t(cn,[2,55]),t(Ut,[2,77]),t(it,[2,229]),{29:[1,450]},t(pt,[2,127]),{6:On,31:$n,32:[1,451]},t(pt,[2,147]),{6:Pn,31:Mn,32:[1,452]},t(Zt,[2,181]),t(jt,[2,226],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(jt,[2,227],{141:77,132:97,138:98,158:X,159:W,162:J,163:z,164:K,165:Q,166:Z,167:et,168:tt}),t(cn,[2,114]),{39:453,40:s,41:a},t(cn,[2,134]),t(cn,[2,152]),t(pt,[2,129])],defaultActions:{68:[2,69],69:[2,70],104:[2,162],226:[2,108],338:[2,138]},parseError:function(e,t){function n(e,t){this.message=e,this.hash=t -}if(!t.recoverable)throw n.prototype=Error,new n(e,t);this.trace(e)},parse:function(e){var t=this,n=[0],i=[null],r=[],o=this.table,s="",a=0,c=0,l=0,u=2,h=1,p=r.slice.call(arguments,1),d=Object.create(this.lexer),f={yy:{}};for(var m in this.yy)Object.prototype.hasOwnProperty.call(this.yy,m)&&(f.yy[m]=this.yy[m]);d.setInput(e,f.yy),f.yy.lexer=d,f.yy.parser=this,d.yylloc===void 0&&(d.yylloc={});var g=d.yylloc;r.push(g);var b=d.options&&d.options.ranges;this.parseError="function"==typeof f.yy.parseError?f.yy.parseError:Object.getPrototypeOf(this).parseError;for(var y,v,k,w,T,N,L,C,F,E=function(){var e;return e=d.lex()||h,"number"!=typeof e&&(e=t.symbols_[e]||e),e},D={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:((null===y||y===void 0)&&(y=E()),w=o[k]&&o[k][y]),w===void 0||!w.length||!w[0]){var x="";F=[];for(N in o[k])this.terminals_[N]&&N>u&&F.push("'"+this.terminals_[N]+"'");x=d.showPosition?"Parse error on line "+(a+1)+":\n"+d.showPosition()+"\nExpecting "+F.join(", ")+", got '"+(this.terminals_[y]||y)+"'":"Parse error on line "+(a+1)+": Unexpected "+(y==h?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(x,{text:d.match,token:this.terminals_[y]||y,line:d.yylineno,loc:g,expected:F})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+k+", token: "+y);switch(w[0]){case 1:n.push(y),i.push(d.yytext),r.push(d.yylloc),n.push(w[1]),y=null,v?(y=v,v=null):(c=d.yyleng,s=d.yytext,a=d.yylineno,g=d.yylloc,l>0&&l--);break;case 2:if(L=this.productions_[w[1]][1],D.$=i[i.length-L],D._$={first_line:r[r.length-(L||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(L||1)].first_column,last_column:r[r.length-1].last_column},b&&(D._$.range=[r[r.length-(L||1)].range[0],r[r.length-1].range[1]]),T=this.performAction.apply(D,[s,c,a,f.yy,w[1],i,r].concat(p)),T!==void 0)return T;L&&(n=n.slice(0,2*-1*L),i=i.slice(0,-1*L),r=r.slice(0,-1*L)),n.push(this.productions_[w[1]][0]),i.push(D.$),r.push(D._$),C=o[n[n.length-2]][n[n.length-1]],n.push(C);break;case 3:return!0}}return!0}};return e.prototype=jn,jn.Parser=e,new e}();return require!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var n=require("fs").readFileSync(require("path").normalize(t[1]),"utf8");return e.parser.parse(n)},t!==void 0&&require.main===t&&e.main(process.argv.slice(1))),t.exports}(),require["./scope"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,o;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(o=this.parent)?o.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){var i,r,o,s,a,c;return null==n&&(n=!1),n?(c=e.charCodeAt(0),r="z".charCodeAt(0),i=r-c,s=c+t%(i+1),o=String.fromCharCode(s),a=Math.floor(t/(i+1)),""+o+(a||"")):""+e+(t||"")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,o;for(null==t&&(t={}),i=0;;){if(o=this.temporary(e,i,t.single),!(this.check(o)||n.call(this.root.referencedVars,o)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(o,"var",!0),o},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],"var"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+" = "+r.type.value);return i},e}()}.call(this),t.exports}(),require["./nodes"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k,w,T,N,L,C,F,E,D,x,_,S,I,R,A,O,$,P,M,j,B,V,U,H,G,q,Y,X,W,J,z,K,Q,Z,et,tt,nt,it,rt,ot,st,at,ct,lt,ut,ht,pt,dt,ft,mt,gt,bt,yt,vt,kt,wt,Tt,Nt,Lt,Ct,Ft,Et,Dt,xt,_t,St,It,Rt,At,Ot,$t,Pt,Mt,jt,Bt,Vt,Ut,Ht,Gt,qt,Yt=function(e,t){function n(){this.constructor=e}for(var i in t)Xt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},Xt={}.hasOwnProperty,Wt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Jt=[].slice;Error.stackTraceLimit=Infinity,st=require("./scope").Scope,jt=require("./lexer"),Ot=jt.isUnassignable,R=jt.JS_FORBIDDEN,Bt=require("./helpers"),Ft=Bt.compact,_t=Bt.flatten,xt=Bt.extend,Pt=Bt.merge,Et=Bt.del,Ut=Bt.starts,Dt=Bt.ends,Vt=Bt.some,Ct=Bt.addLocationDataFn,$t=Bt.locationDataToString,Ht=Bt.throwSyntaxError,e.extend=xt,e.addLocationDataFn=Ct,Nt=function(){return!0},q=function(){return!1},mt=function(){return this},G=function(){return this.negated=!this.negated,this},e.CodeFragment=u=function(){function e(e,t){var n;this.code=""+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+$t(this.locationData):"")},e}(),St=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join("")},e.Base=r=function(){function e(){}return e.prototype.compile=function(e,t){return St(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=xt({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==j&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,s,c,u,h;return(s=this.jumps())&&s.error("cannot use a pure statement in an expression"),e.sharedScope=!0,r=new l([],o.wrap([this])),n=[],((i=this.contains(Rt))||this.contains(At))&&(n=[new gt],i?(c="apply",n.push(new T("arguments"))):c="call",r=new wt(r,[new t(new et(c))])),u=new a(r,n).compileNode(e),(r.isGenerator||(null!=(h=r.base)?h.isGenerator:void 0))&&(u.unshift(this.makeCode("(yield* ")),u.push(this.makeCode(")"))),u},e.prototype.cache=function(e,t,n){var r,o,s;return r=null!=n?n(this):this.isComplex(),r?(o=new T(e.scope.freeVariable("ref")),s=new i(o,this),t?[s.compileToFragments(e,t),[this.makeCode(o.value)]]:[s,o]):(o=t?this.compileToFragments(e,t):this,[o,o])},e.prototype.cacheToCodeFragments=function(e){return[St(e[0]),St(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new a(new B(e+".push"),[t]):new rt(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof h))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=""),null==t&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+ft)}),n},e.prototype.eachChild=function(e){var t,n,i,r,o,s,a,c;if(!this.children)return this;for(a=this.children,i=0,o=a.length;o>i;i++)if(t=a[i],this[t])for(c=_t([this[t]]),r=0,s=c.length;s>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new z("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=q,e.prototype.jumps=q,e.prototype.isComplex=Nt,e.prototype.isChainable=q,e.prototype.isAssignable=q,e.prototype.isNumber=q,e.prototype.unwrap=mt,e.prototype.unfoldSoak=q,e.prototype.assigns=q,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return Ht(e,this.locationData)},e.prototype.makeCode=function(e){return new u(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,o,s;for(n=[],r=o=0,s=e.length;s>o;r=++o)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=o=function(e){function t(e){this.expressions=Ft(_t(e||[]))}return Yt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,o;for(o=this.expressions,n=0,r=o.length;r>n;n++)if(t=o[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof h)){this.expressions[n]=t.makeReturn(e),t instanceof rt&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,o,s,a,c,l,u;for(this.tab=e.indent,u=e.level===j,i=[],l=this.expressions,o=s=0,a=l.length;a>s;o=++s)c=l[o],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):u?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(c.compileToFragments(e,$));return u?this.spaced?[].concat(this.joinFragmentArrays(i,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(i,"\n"):(n=i.length?this.joinFragmentArrays(i,", "):[this.makeCode("void 0")],i.length>1&&e.level>=$?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,o,s,a,c,l,u,p;for(e.indent=e.bare?"":ft,e.level=j,this.spaced=!0,e.scope=new st(null,this,null,null!=(l=e.referencedVars)?l:[]),u=e.locals||[],r=0,o=u.length;o>r;r++)s=u[r],e.scope.parameter(s);return a=[],e.bare||(c=function(){var e,n,r,o;for(r=this.expressions,o=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof h);i=++e)o.push(t);return o}.call(this),p=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(Pt(e,{indent:""})),a.push(this.makeCode("\n"))),this.expressions=p),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,o,s,a,c,l,u,p,d,f,m;for(r=[],c=[],l=this.expressions,o=s=0,a=l.length;a>s&&(i=l[o],i=i.unwrap(),i instanceof h||i instanceof B);o=++s);return e=Pt(e,{level:j}),o&&(d=this.expressions.splice(o,9e9),u=[this.spaced,!1],m=u[0],this.spaced=u[1],p=[this.compileNode(e),m],r=p[0],this.spaced=p[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(o&&r.push(this.makeCode("\n")),r.push(this.makeCode(this.tab+"var ")),n&&r.push(this.makeCode(f.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+ft))),r.push(this.makeCode(f.assignedVariables().join(",\n"+(this.tab+ft))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&c.length&&r.push(this.makeCode("\n"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(r),e.Literal=B=function(e){function t(e){this.value=e}return Yt(t,e),t.prototype.isComplex=q,t.prototype.assigns=function(e){return e===this.value},t.prototype.compileNode=function(){return[this.makeCode(this.value)]},t.prototype.toString=function(){return" "+(this.isStatement()?t.__super__.toString.apply(this,arguments):this.constructor.name)+": "+this.value},t}(r),e.NumberLiteral=W=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.InfinityLiteral=I=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(){return[this.makeCode("2e308")]},t}(W),e.NaNLiteral=Y=function(e){function t(){t.__super__.constructor.call(this,"NaN")}return Yt(t,e),t.prototype.compileNode=function(e){var t;return t=[this.makeCode("0/0")],e.level>=P?this.wrapInBraces(t):t},t}(W),e.StringLiteral=ut=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.RegexLiteral=nt=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.PassthroughLiteral=Z=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.IdentifierLiteral=T=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isAssignable=Nt,t}(B),e.PropertyName=et=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isAssignable=Nt,t}(B),e.StatementLiteral=lt=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isStatement=Nt,t.prototype.makeReturn=mt,t.prototype.jumps=function(e){return"break"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?"continue"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(){return[this.makeCode(""+this.tab+this.value+";")]},t}(B),e.ThisLiteral=gt=function(e){function t(){t.__super__.constructor.call(this,"this")}return Yt(t,e),t.prototype.compileNode=function(e){var t,n;return t=(null!=(n=e.scope.method)?n.bound:void 0)?e.scope.method.context:this.value,[this.makeCode(t)]},t}(B),e.UndefinedLiteral=kt=function(e){function t(){t.__super__.constructor.call(this,"undefined")}return Yt(t,e),t.prototype.compileNode=function(e){return[this.makeCode(e.level>=A?"(void 0)":"void 0")]},t}(B),e.NullLiteral=X=function(e){function t(){t.__super__.constructor.call(this,"null")}return Yt(t,e),t}(B),e.BooleanLiteral=s=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(B),e.Return=rt=function(e){function t(e){this.expression=e}return Yt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Nt,t.prototype.makeReturn=mt,t.prototype.jumps=mt,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t;return t=[],t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,M))),t.push(this.makeCode(";")),t},t}(r),e.YieldReturn=Lt=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(e){return null==e.scope.parent&&this.error("yield can only occur inside functions"),t.__super__.compileNode.apply(this,arguments)},t}(rt),e.Value=wt=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return Yt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(tt)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isNumber=function(){return this.bareLiteral(W)},t.prototype.isString=function(){return this.bareLiteral(ut)},t.prototype.isRegex=function(){return this.bareLiteral(nt)},t.prototype.isUndefined=function(){return this.bareLiteral(kt)},t.prototype.isNull=function(){return this.bareLiteral(X)},t.prototype.isBoolean=function(){return this.bareLiteral(s)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof a)return!1;return!0},t.prototype.isNotCallable=function(){return this.isNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()||this.isUndefined()||this.isNull()||this.isBoolean()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof J&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof at},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&"prototype"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,o,s,a;return a=this.properties,o=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=o?o.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new T(e.scope.freeVariable("base")),n=new t(new Q(new i(r,n)))),o?(o.isComplex()&&(s=new T(e.scope.freeVariable("name")),o=new S(new i(s,o.index)),s=new S(s)),[n.add(o),new t(r||n.base,[s||o])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,o;for(this.base.front=this.front,o=this.properties,t=this.base.compileToFragments(e,o.length?A:null),o.length&&ot.test(St(t))&&t.push(this.makeCode(".")),n=0,i=o.length;i>n;n++)r=o[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,o,s,a,c,l,u,h,d,f;if(s=n.base.unfoldSoak(e))return(h=s.body.properties).push.apply(h,n.properties),s;for(d=n.properties,o=a=0,c=d.length;c>a;o=++a)if(l=d[o],l.soak)return l.soak=!1,r=new t(n.base,n.properties.slice(0,o)),f=new t(n.base,n.properties.slice(o)),r.isComplex()&&(u=new T(e.scope.freeVariable("ref")),r=new Q(new i(u,r)),f.base=u),new N(new p(r),f,{soak:!0});return!1}}(this)()},t}(r),e.Comment=h=function(e){function t(e){this.comment=e}return Yt(t,e),t.prototype.isStatement=Nt,t.prototype.makeReturn=mt,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *"),n="/*"+Mt(i,this.tab)+(Wt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===j&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(r),e.Call=a=function(e){function t(e,t,n){this.variable=e,this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.variable instanceof wt&&this.variable.isNotCallable()&&this.variable.error("literal is not a function")}return Yt(t,e),t.prototype.children=["variable","args"],t.prototype.newInstance=function(){var e,n;return e=(null!=(n=this.variable)?n.base:void 0)||this.variable,e instanceof t&&!e.isNew?e.newInstance():this.isNew=!0,this},t.prototype.unfoldSoak=function(e){var n,i,r,o,s,a,c,l,u;if(this.soak){if(this instanceof pt)o=new B(this.superReference(e)),u=new wt(o);else{if(i=Gt(e,this,"variable"))return i;c=new wt(this.variable).cacheReference(e),o=c[0],u=c[1]}return u=new t(u,this.args),u.isNew=this.isNew,o=new B("typeof "+o.compile(e)+' === "function"'),new N(o,new wt(u),{soak:!0})}for(n=this,a=[];;)if(n.variable instanceof t)a.push(n),n=n.variable;else{if(!(n.variable instanceof wt))break;if(a.push(n),!((n=n.variable.base)instanceof t))break}for(l=a.reverse(),r=0,s=l.length;s>r;r++)n=l[r],i&&(n.variable instanceof t?n.variable=i:n.variable.base=i),i=Gt(e,n,"variable");return i},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,l,u;if(null!=(l=this.variable)&&(l.front=this.front),r=ct.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],u=this.args,n=s=0,a=u.length;a>s;n=++s)t=u[n],n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,$));return o=[],this instanceof pt?(c=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(c+=", "),o.push(this.makeCode(c))):(this.isNew&&o.push(this.makeCode("new ")),o.push.apply(o,this.variable.compileToFragments(e,A)),o.push(this.makeCode("("))),o.push.apply(o,i),o.push(this.makeCode(")")),o},t.prototype.compileSplat=function(e,t){var n,i,r,o,s,a;return this instanceof pt?[].concat(this.makeCode(this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(o=this.tab+ft,[].concat(this.makeCode("(function(func, args, ctor) {\n"+o+"ctor.prototype = func.prototype;\n"+o+"var child = new ctor, result = func.apply(child, args);\n"+o+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,$),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new wt(this.variable),(s=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,$),this.makeCode(")"),s.compileToFragments(e))):(r=i.compileToFragments(e,A),ot.test(St(r))&&(r=this.wrapInBraces(r)),s?(a=St(r),r.push.apply(r,s.compileToFragments(e))):a="null",n=n.concat(r)),n=n.concat(this.makeCode(".apply("+a+", "),t,this.makeCode(")")))},t}(r),e.SuperCall=pt=function(e){function n(e){n.__super__.constructor.call(this,null,null!=e?e:[new ct(new T("arguments"))]),this.isBare=null!=e}return Yt(n,e),n.prototype.superReference=function(e){var n,r,o,s,a,c,l,u;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(s=a.klass,c=a.name,u=a.variable,s.isComplex()&&(o=new T(e.scope.parent.freeVariable("base")),r=new wt(new Q(new i(o,s))),u.base=r,u.properties.splice(0,s.properties.length)),(c.isComplex()||c instanceof S&&c.index.isAssignable())&&(l=new T(e.scope.parent.freeVariable("name")),c=new S(new i(l,c.index)),u.properties.pop(),u.properties.push(c)),n=[new t(new et("__super__"))],a["static"]&&n.push(new t(new et("constructor"))),n.push(null!=l?new S(l):c),new wt(null!=o?o:s,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},n}(a),e.RegexWithInterpolations=it=function(e){function t(e){null==e&&(e=[]),t.__super__.constructor.call(this,new wt(new T("RegExp")),e,!1)}return Yt(t,e),t}(a),e.Extends=k=function(e){function t(e,t){this.child=e,this.parent=t}return Yt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new a(new wt(new B(qt("extend",e))),[this.child,this.parent]).compileToFragments(e)},t}(r),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak="soak"===t}return Yt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t,n,i;return t=this.name.compileToFragments(e),n=this.name.unwrap(),n instanceof et?(i=n.value,Wt.call(R,i)>=0?[this.makeCode('["')].concat(Jt.call(t),[this.makeCode('"]')]):[this.makeCode(".")].concat(Jt.call(t))):[this.makeCode("[")].concat(Jt.call(t),[this.makeCode("]")])},t.prototype.isComplex=q,t}(r),e.Index=S=function(e){function t(e){this.index=e}return Yt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,M),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(r),e.Range=tt=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive="exclusive"===n,this.equals=this.exclusive?"":"="}return Yt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,o;return e=Pt(e,{top:!0}),t=Et(e,"isComplex"),n=this.cacheToCodeFragments(this.from.cache(e,$,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,$,t)),this.toC=i[0],this.toVar=i[1],(o=Et(e,"step"))&&(r=this.cacheToCodeFragments(o.cache(e,$,t)),this.step=r[0],this.stepVar=r[1]),this.fromNum=this.from.isNumber()?Number(this.fromVar):null,this.toNum=this.to.isNumber()?Number(this.toVar):null,this.stepNum=(null!=o?o.isNumber():void 0)?Number(this.stepVar):null},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,l,u,h,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=null!=this.fromNum&&null!=this.toNum,o=Et(e,"index"),s=Et(e,"name"),l=s&&s!==o,f=o+" = "+this.fromC,this.toC!==this.toVar&&(f+=", "+this.toC),this.step!==this.stepVar&&(f+=", "+this.step),u=[o+" <"+this.equals,o+" >"+this.equals],c=u[0],r=u[1],n=null!=this.stepNum?this.stepNum>0?c+" "+this.toVar:r+" "+this.toVar:a?(h=[this.fromNum,this.toNum],i=h[0],d=h[1],h,d>=i?c+" "+d:r+" "+d):(t=this.stepVar?this.stepVar+" > 0":this.fromVar+" <= "+this.toVar,t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),p=this.stepVar?o+" += "+this.stepVar:a?l?d>=i?"++"+o:"--"+o:d>=i?o+"++":o+"--":l?t+" ? ++"+o+" : --"+o:t+" ? "+o+"++ : "+o+"--",l&&(f=s+" = "+f),l&&(p=s+" = "+p),[this.makeCode(f+"; "+n+"; "+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,o,s,a,c,l,u,h,p,d,f;return a=null!=this.fromNum&&null!=this.toNum,a&&20>=Math.abs(this.fromNum-this.toNum)?(u=function(){d=[];for(var e=h=this.fromNum,t=this.toNum;t>=h?t>=e:e>=t;t>=h?e++:e--)d.push(e);return d}.apply(this),this.exclusive&&u.pop(),[this.makeCode("["+u.join(", ")+"]")]):(s=this.tab+ft,o=e.scope.freeVariable("i",{single:!0}),p=e.scope.freeVariable("results"),l="\n"+s+p+" = [];",a?(e.index=o,n=St(this.compileNode(e))):(f=o+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=this.fromVar+" <= "+this.toVar,n="var "+f+"; "+i+" ? "+o+" <"+this.equals+" "+this.toVar+" : "+o+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+o+"++ : "+o+"--"),c="{ "+p+".push("+o+"); }\n"+s+"return "+p+";\n"+e.indent,r=function(e){return null!=e?e.contains(Rt):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+l+"\n"+s+"for ("+n+")"+c+"}).apply(this"+(null!=t?t:"")+")")])},t}(r),e.Slice=at=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return Yt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;return o=this.range,s=o.to,i=o.from,r=i&&i.compileToFragments(e,M)||[this.makeCode("0")],s&&(t=s.compileToFragments(e,M),n=St(t),(this.range.exclusive||-1!==+n)&&(a=", "+(this.range.exclusive?n:s.isNumber()?""+(+n+1):(t=s.compileToFragments(e,A),"+"+St(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+St(r)+(a||"")+")")]},t}(r),e.Obj=J=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return Yt(n,e),n.prototype.children=["properties"],n.prototype.compileNode=function(e){var n,r,o,s,a,c,l,u,p,d,f,m,g,b,y,v,k,w,N,L,C;if(N=this.properties,this.generated)for(l=0,g=N.length;g>l;l++)v=N[l],v instanceof wt&&v.error("cannot have an implicit value in an implicit object");for(r=p=0,b=N.length;b>p&&(w=N[r],!((w.variable||w).base instanceof Q));r=++p);for(o=N.length>r,a=e.indent+=ft,m=this.lastNonComment(this.properties),n=[],o&&(k=e.scope.freeVariable("obj"),n.push(this.makeCode("(\n"+a+k+" = "))),n.push(this.makeCode("{"+(0===N.length||0===r?"}":"\n"))),s=f=0,y=N.length;y>f;s=++f)w=N[s],s===r&&(0!==s&&n.push(this.makeCode("\n"+a+"}")),n.push(this.makeCode(",\n"))),u=s===N.length-1||s===r-1?"":w===m||w instanceof h?"\n":",\n",c=w instanceof h?"":a,o&&r>s&&(c+=ft),w instanceof i&&("object"!==w.context&&w.operatorToken.error("unexpected "+w.operatorToken.value),w.variable instanceof wt&&w.variable.hasProperties()&&w.variable.error("invalid object key")),w instanceof wt&&w["this"]&&(w=new i(w.properties[0].name,w,"object")),w instanceof h||(r>s?(w instanceof i||(w=new i(w,w,"object")),(w.variable.base||w.variable).asKey=!0):(w instanceof i?(d=w.variable,C=w.value):(L=w.base.cache(e),d=L[0],C=L[1]),w=new i(new wt(new T(k),[new t(d)]),C))),c&&n.push(this.makeCode(c)),n.push.apply(n,w.compileToFragments(e,j)),u&&n.push(this.makeCode(u));return o?n.push(this.makeCode(",\n"+a+k+"\n"+this.tab+")")):0!==N.length&&n.push(this.makeCode("\n"+this.tab+"}")),this.front&&!o?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(r),e.Arr=n=function(e){function t(e){this.objects=e||[]}return Yt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;if(!this.objects.length)return[this.makeCode("[]")];if(e.indent+=ft,t=ct.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,$));return r}.call(this),r=o=0,s=n.length;s>o;r=++o)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return St(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(r),e.Class=c=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new o,this.boundFuncs=[],this.body.classBody=!0}return Yt(n,e),n.prototype.children=["variable","parent","body"],n.prototype.defaultClassVariableName="_Class",n.prototype.determineName=function(){var e,n,i,r,o;return this.variable?(r=this.variable.properties,o=r[r.length-1],i=o?o instanceof t&&o.name:this.variable.base,i instanceof T||i instanceof et?(n=i.value,o||(e=Ot(n),e&&this.variable.error(e)),Wt.call(R,n)>=0?"_"+n:n):this.defaultClassVariableName):this.defaultClassVariableName},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof gt?t.value=e:t instanceof l&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,o,s;for(s=this.boundFuncs,i=0,r=s.length;r>i;i++)n=s[i],o=new wt(new gt,[new t(n)]).compile(e),this.ctor.body.unshift(new B(o+" = "+qt("bind",e)+"("+o+", this)"))},n.prototype.addProperties=function(e,n,r){var o,s,a,c,u,h;return h=e.base.properties.slice(0),c=function(){var e;for(e=[];s=h.shift();)s instanceof i&&(a=s.variable.base,delete s.context,u=s.value,"constructor"===a.value?(this.ctor&&s.error("cannot define more than one constructor in a class"),u.bound&&s.error("cannot define a constructor as a bound function"),u instanceof l?s=this.ctor=u:(this.externalCtor=r.classScope.freeVariable("ctor"),s=new i(new T(this.externalCtor),u))):s.variable["this"]?u["static"]=!0:(o=a.isComplex()?new S(a):new t(a),s.variable=new wt(new T(n),[new t(new et("prototype")),o]),u instanceof l&&u.bound&&(this.boundFuncs.push(a),u.bound=!1))),e.push(s); -return e}.call(this),Ft(c)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(s){var a,c,l,u,h,p,d;if(a=!0,s instanceof n)return!1;if(s instanceof o){for(d=c=s.expressions,l=u=0,h=d.length;h>u;l=++u)p=d[l],p instanceof i&&p.variable.looksStatic(e)?p.value["static"]=!0:p instanceof wt&&p.isObject(!0)&&(a=!1,c[l]=r.addProperties(p,e,t));s.expressions=c=_t(c)}return a&&!(s instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof h||n instanceof wt&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new l,this.externalCtor?this.ctor.body.push(new B(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new B(e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,s,c,u,h,p,d;return(s=this.body.jumps())&&s.error("Class bodies cannot contain pure statements"),(n=this.body.contains(Rt))&&n.error("Class bodies shouldn't reference arguments"),h=this.determineName(),u=new T(h),r=new l([],o.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(h),this.walkBody(h,e),this.ensureConstructor(h),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(u),this.parent&&(d=new T(e.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new k(u,d)),r.params.push(new K(d)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),c=new Q(new a(r,t)),this.variable&&(c=new i(this.variable,c,null,{moduleDeclaration:this.moduleDeclaration})),c.compileToFragments(e)},n}(r),e.ModuleDeclaration=V=function(e){function t(e,t){this.clause=e,this.source=t,this.checkSource()}return Yt(t,e),t.prototype.children=["clause","source"],t.prototype.isStatement=Nt,t.prototype.jumps=mt,t.prototype.makeReturn=mt,t.prototype.checkSource=function(){return null!=this.source&&this.source instanceof ht?this.source.error("the name of the module to be imported from must be an uninterpolated string"):void 0},t.prototype.checkScope=function(e,t){return 0!==e.indent.length?this.error(t+" statements must be at top-level scope"):void 0},t}(r),e.ImportDeclaration=C=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(e){var t,n;return this.checkScope(e,"import"),e.importedSymbols=[],t=[],t.push(this.makeCode(this.tab+"import ")),null!=this.clause&&t.push.apply(t,this.clause.compileNode(e)),null!=(null!=(n=this.source)?n.value:void 0)&&(null!==this.clause&&t.push(this.makeCode(" from ")),t.push(this.makeCode(this.source.value))),t.push(this.makeCode(";")),t},t}(V),e.ImportClause=L=function(e){function t(e,t){this.defaultBinding=e,this.namedImports=t}return Yt(t,e),t.prototype.children=["defaultBinding","namedImports"],t.prototype.compileNode=function(e){var t;return t=[],null!=this.defaultBinding&&(t.push.apply(t,this.defaultBinding.compileNode(e)),null!=this.namedImports&&t.push(this.makeCode(", "))),null!=this.namedImports&&t.push.apply(t,this.namedImports.compileNode(e)),t},t}(r),e.ExportDeclaration=m=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.compileNode=function(e){var t,n;return this.checkScope(e,"export"),t=[],t.push(this.makeCode(this.tab+"export ")),this instanceof g&&t.push(this.makeCode("default ")),this instanceof g||!(this.clause instanceof i||this.clause instanceof c)||(t.push(this.makeCode("var ")),this.clause.moduleDeclaration="export"),t=null!=this.clause.body&&this.clause.body instanceof o?t.concat(this.clause.compileToFragments(e,j)):t.concat(this.clause.compileNode(e)),null!=(null!=(n=this.source)?n.value:void 0)&&t.push(this.makeCode(" from "+this.source.value)),t.push(this.makeCode(";")),t},t}(V),e.ExportNamedDeclaration=b=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(m),e.ExportDefaultDeclaration=g=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(m),e.ExportAllDeclaration=f=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(m),e.ModuleSpecifierList=H=function(e){function t(e){this.specifiers=e}return Yt(t,e),t.prototype.children=["specifiers"],t.prototype.compileNode=function(e){var t,n,i,r,o,s,a;if(t=[],e.indent+=ft,n=function(){var t,n,i,r;for(i=this.specifiers,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,$));return r}.call(this),0!==this.specifiers.length){for(t.push(this.makeCode("{\n"+e.indent)),r=o=0,s=n.length;s>o;r=++o)i=n[r],r&&t.push(this.makeCode(",\n"+e.indent)),t.push.apply(t,i);t.push(this.makeCode("\n}"))}else t.push(this.makeCode("{}"));return t},t}(r),e.ImportSpecifierList=x=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(H),e.ExportSpecifierList=v=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(H),e.ModuleSpecifier=U=function(e){function t(e,t,n){this.original=e,this.alias=t,this.moduleDeclarationType=n,this.identifier=null!=this.alias?this.alias.value:this.original.value}return Yt(t,e),t.prototype.children=["original","alias"],t.prototype.compileNode=function(e){var t;return e.scope.add(this.identifier,this.moduleDeclarationType),t=[],t.push(this.makeCode(this.original.value)),null!=this.alias&&t.push(this.makeCode(" as "+this.alias.value)),t},t}(r),e.ImportSpecifier=D=function(e){function t(e,n){t.__super__.constructor.call(this,e,n,"import")}return Yt(t,e),t.prototype.compileNode=function(e){var n;return n=this.identifier,Wt.call(e.importedSymbols,n)>=0||e.scope.check(this.identifier)?this.error("'"+this.identifier+"' has already been declared"):e.importedSymbols.push(this.identifier),t.__super__.compileNode.call(this,e)},t}(U),e.ImportDefaultSpecifier=F=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(D),e.ImportNamespaceSpecifier=E=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(D),e.ExportSpecifier=y=function(e){function t(e,n){t.__super__.constructor.call(this,e,n,"export")}return Yt(t,e),t}(U),e.Assign=i=function(e){function n(e,t,n,i){this.variable=e,this.value=t,this.context=n,null==i&&(i={}),this.param=i.param,this.subpattern=i.subpattern,this.operatorToken=i.operatorToken,this.moduleDeclaration=i.moduleDeclaration}return Yt(n,e),n.prototype.children=["variable","value"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===j&&null!=this.context&&(this.moduleDeclaration||Wt.call(this.context,"?")>=0)},n.prototype.checkAssignability=function(e,t){return Object.prototype.hasOwnProperty.call(e.scope.positions,t.value)&&"import"===e.scope.variables[e.scope.positions[t.value]].type?t.error("'"+t.value+"' is read-only"):void 0},n.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){return Gt(e,this,"variable")},n.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,u,h,p,d,f,m,g;if(i=this.variable instanceof wt){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if("||="===(c=this.context)||"&&="===c||"?="===c)return this.compileConditional(e);if("**="===(u=this.context)||"//="===u||"%%="===u)return this.compileSpecialMath(e)}return this.value instanceof l&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(h=this.variable.properties)?h.length:void 0)>=2&&(p=this.variable.properties,s=p.length>=3?Jt.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],o=p[r++],"prototype"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new wt(this.variable.base,s),this.value.name=o,this.value.variable=this.variable))),this.context||(g=this.variable.unwrapAll(),g.isAssignable()||this.variable.error("'"+this.variable.compile(e)+"' can't be assigned"),("function"==typeof g.hasProperties?g.hasProperties():void 0)||(this.moduleDeclaration?(this.checkAssignability(e,g),e.scope.add(g.value,this.moduleDeclaration)):this.param?e.scope.add(g.value,"var"):(this.checkAssignability(e,g),e.scope.find(g.value)))),m=this.value.compileToFragments(e,$),i&&this.variable.base instanceof J&&(this.variable.front=!0),n=this.variable.compileToFragments(e,$),"object"===this.context?(f=St(n),Wt.call(R,f)>=0&&(n.unshift(this.makeCode('"')),n.push(this.makeCode('"'))),n.concat(this.makeCode(": "),m)):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),m),$>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,o,s,a,c,l,u,h,p,f,m,g,b,y,v,k,w,N,L,C,F,E,D,x,_,I,R;if(D=e.level===j,_=this.value,v=this.variable.base.objects,!(k=v.length))return o=_.compileToFragments(e),e.level>=P?this.wrapInBraces(o):o;if(y=v[0],1===k&&y instanceof d&&y.error("Destructuring assignment has no target"),h=this.variable.isObject(),D&&1===k&&!(y instanceof ct))return s=null,y instanceof n&&"object"===y.context?(N=y,L=N.variable,u=L.base,y=N.value,y instanceof n&&(s=y.value,y=y.variable)):(y instanceof n&&(s=y.value,y=y.variable),u=h?y["this"]?y.properties[0].name:new et(y.unwrap().value):new W(0)),i=u.unwrap()instanceof et,_=new wt(_),_.properties.push(new(i?t:S)(u)),g=Ot(y.unwrap().value),g&&y.error(g),s&&(_=new z("?",_,s)),new n(y,_,null,{param:this.param}).compileToFragments(e,j);for(I=_.compileToFragments(e,$),R=St(I),r=[],a=!1,_.unwrap()instanceof T&&!this.variable.assigns(R)||(r.push([this.makeCode((w=e.scope.freeVariable("ref"))+" = ")].concat(Jt.call(I))),I=[this.makeCode(w)],R=w),l=f=0,m=v.length;m>f;l=++f){if(y=v[l],u=l,!a&&y instanceof ct)b=y.name.unwrap().value,y=y.unwrap(),x=k+" <= "+R+".length ? "+qt("slice",e)+".call("+R+", "+l,(E=k-l-1)?(p=e.scope.freeVariable("i",{single:!0}),x+=", "+p+" = "+R+".length - "+E+") : ("+p+" = "+l+", [])"):x+=") : []",x=new B(x),a=p+"++";else{if(!a&&y instanceof d){(E=k-l-1)&&(1===E?a=R+".length - 1":(p=e.scope.freeVariable("i",{single:!0}),x=new B(p+" = "+R+".length - "+E),a=p+"++",r.push(x.compileToFragments(e,$))));continue}(y instanceof ct||y instanceof d)&&y.error("multiple splats/expansions are disallowed in an assignment"),s=null,y instanceof n&&"object"===y.context?(C=y,F=C.variable,u=F.base,y=C.value,y instanceof n&&(s=y.value,y=y.variable)):(y instanceof n&&(s=y.value,y=y.variable),u=h?y["this"]?y.properties[0].name:new et(y.unwrap().value):new B(a||u)),b=y.unwrap().value,i=u.unwrap()instanceof et,x=new wt(new B(R),[new(i?t:S)(u)]),s&&(x=new z("?",x,s))}null!=b&&(g=Ot(b),g&&y.error(g)),r.push(new n(y,x,null,{param:this.param,subpattern:!0}).compileToFragments(e,$))}return D||this.subpattern||r.push(I),c=this.joinFragmentArrays(r,", "),$>e.level?c:this.wrapInBraces(c)},n.prototype.compileConditional=function(e){var t,i,r,o;return r=this.variable.cacheReference(e),i=r[0],o=r[1],i.properties.length||!(i.base instanceof B)||i.base instanceof gt||e.scope.check(i.base.value)||this.variable.error('the variable "'+i.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),Wt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new N(new p(i),o,{type:"if"}).addElse(new n(o,this.value,"=")).compileToFragments(e)):(t=new z(this.context.slice(0,-1),i,new n(o,this.value,"=")).compileToFragments(e),$>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new z(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,o,s,a,c,l,u,h,p;return a=this.variable.properties.pop().range,i=a.from,u=a.to,n=a.exclusive,s=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,P)),r=c[0],o=c[1]):r=o="0",u?(null!=i?i.isNumber():void 0)&&u.isNumber()?(u=u.compile(e)-o,n||(u+=1)):(u=u.compile(e,A)+" - "+o,n||(u+=" + 1")):u="9e9",l=this.value.cache(e,$),h=l[0],p=l[1],t=[].concat(this.makeCode("[].splice.apply("+s+", ["+r+", "+u+"].concat("),h,this.makeCode(")), "),p),e.level>j?this.wrapInBraces(t):t},n}(r),e.Code=l=function(e){function t(e,t,n){this.params=e||[],this.body=t||new o,this.bound="boundfunc"===n,this.isGenerator=!!this.body.contains(function(e){return e instanceof z&&e.isYield()||e instanceof Lt})}return Yt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=q,t.prototype.makeScope=function(e){return new st(e,this.body,this)},t.prototype.compileNode=function(e){var r,s,c,l,u,h,p,f,m,g,b,y,v,k,w,L,C,F,E,D,x,_,S,I,R,O,$,P,M,j,V,U,H;if(this.bound&&(null!=(S=e.scope.method)?S.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",H=new t([new K(new T(this.context))],new o([this])),s=new a(H,[new gt]),s.updateLocationDataIfMissing(this.locationData),s.compileNode(e);for(e.scope=Et(e,"classScope")||this.makeScope(e.scope),e.scope.shared=Et(e,"sharedScope"),e.indent+=ft,delete e.bare,delete e.isExistentialEquals,E=[],l=[],I=this.params,h=0,m=I.length;m>h;h++)F=I[h],F instanceof d||e.scope.parameter(F.asReference(e));for(R=this.params,p=0,g=R.length;g>p;p++)if(F=R[p],F.splat||F instanceof d){for(O=this.params,f=0,b=O.length;b>f;f++)C=O[f],C instanceof d||!C.name.value||e.scope.add(C.name.value,"var",!0);M=new i(new wt(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)C=i[n],r.push(C.asReference(e));return r}.call(this))),new wt(new T("arguments")));break}for($=this.params,L=0,y=$.length;y>L;L++)F=$[L],F.isComplex()?(V=_=F.asReference(e),F.value&&(V=new z("?",_,F.value)),l.push(new i(new wt(F.name),V,"=",{param:!0}))):(_=F,F.value&&(w=new B(_.name.value+" == null"),V=new i(new wt(F.name),F.value,"="),l.push(new N(w,V)))),M||E.push(_);for(U=this.body.isEmpty(),M&&l.unshift(M),l.length&&(P=this.body.expressions).unshift.apply(P,l),u=D=0,v=E.length;v>D;u=++D)C=E[u],E[u]=C.compileToFragments(e),e.scope.parameter(St(E[u]));for(j=[],this.eachParamName(function(e,t){return Wt.call(j,e)>=0&&t.error("multiple parameters named "+e),j.push(e)}),U||this.noReturn||this.body.makeReturn(),c="function",this.isGenerator&&(c+="*"),this.ctor&&(c+=" "+this.name),c+="(",r=[this.makeCode(c)],u=x=0,k=E.length;k>x;u=++x)C=E[u],u&&r.push(this.makeCode(", ")),r.push.apply(r,C);return r.push(this.makeCode(") {")),this.body.isEmpty()||(r=r.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),r.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Jt.call(r)):this.front||e.level>=A?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,o;for(r=this.params,o=[],t=0,n=r.length;n>t;t++)i=r[t],o.push(i.eachName(e));return o},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(r),e.Param=K=function(e){function t(e,t,n){var i,r;this.name=e,this.value=t,this.splat=n,i=Ot(this.name.unwrapAll().value),i&&this.name.error(i),this.name instanceof J&&this.name.generated&&(r=this.name.objects[0].operatorToken,r.error("unexpected "+r.value))}return Yt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,$)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n["this"]?(t=n.properties[0].name.value,Wt.call(R,t)>=0&&(t="_"+t),n=new T(e.scope.freeVariable(t))):n.isComplex()&&(n=new T(e.scope.freeVariable("arg"))),n=new wt(n),this.splat&&(n=new ct(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,o,s,a,c,l;if(null==t&&(t=this.name),n=function(t){return e("@"+t.properties[0].name.value,t)},t instanceof B)return e(t.value,t);if(t instanceof wt)return n(t);for(l=null!=(c=t.objects)?c:[],r=0,o=l.length;o>r;r++)a=l[r],a instanceof i&&null==a.context&&(a=a.variable),a instanceof i?(a.value instanceof i&&(a=a.value),this.eachName(e,a.value.unwrap())):a instanceof ct?(s=a.name.unwrap(),e(s.value,s)):a instanceof wt?a.isArray()||a.isObject()?this.eachName(e,a.base):a["this"]?n(a):e(a.base.value,a.base):a instanceof d||a.error("illegal parameter "+a.compile())},t}(r),e.Splat=ct=function(e){function t(e){this.name=e.compile?e:new B(e)}return Yt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=Nt,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,o,s,a,c,l,u,h,p,d,f;for(u=-1;(f=n[++u])&&!(f instanceof t););if(u>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,$),i?c:[].concat(f.makeCode(qt("slice",e)+".call("),c,f.makeCode(")"));for(r=n.slice(u),l=h=0,d=r.length;d>h;l=++h)f=r[l],s=f.compileToFragments(e,$),r[l]=f instanceof t?[].concat(f.makeCode(qt("slice",e)+".call("),s,f.makeCode(")")):[].concat(f.makeCode("["),s,f.makeCode("]"));return 0===u?(f=n[0],a=f.joinFragmentArrays(r.slice(1),", "),r[0].concat(f.makeCode(".concat("),a,f.makeCode(")"))):(o=function(){var t,i,r,o;for(r=n.slice(0,u),o=[],t=0,i=r.length;i>t;t++)f=r[t],o.push(f.compileToFragments(e,$));return o}(),o=n[0].joinFragmentArrays(o,", "),a=n[u].joinFragmentArrays(r,", "),p=n[n.length-1],[].concat(n[0].makeCode("["),o,n[u].makeCode("].concat("),a,p.makeCode(")")))},t}(r),e.Expansion=d=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t.prototype.isComplex=q,t.prototype.compileNode=function(){return this.error("Expansion must be used inside a destructuring assignment or parameter list")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(r),e.While=Tt=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return Yt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=Nt,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=ft,r="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(i=e.scope.freeVariable("results")),r=""+this.tab+i+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new N(new Q(this.guard).invert(),new lt("continue"))):this.guard&&(n=o.wrap([new N(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,j),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,M),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+i+";")),t},t}(r),e.Op=z=function(e){function n(e,t,n,i){if("in"===e)return new _(t,n);if("do"===e)return this.generateDo(t);if("new"===e){if(t instanceof a&&!t["do"]&&!t.isNew)return t.newInstance();(t instanceof l&&t.bound||t["do"])&&(t=new Q(t))}return this.operator=r[e]||e,this.first=t,this.second=n,this.flip=!!i,this}var r,o;return Yt(n,e),r={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},o={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isNumber=function(){var e;return this.isUnary()&&("+"===(e=this.operator)||"-"===e)&&this.first instanceof wt&&this.first.isNumber()},n.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){return!this.isNumber()},n.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},n.prototype.invert=function(){var e,t,i,r,s;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in o),t=t.first;if(!e)return new Q(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=o[t.operator],t=t.first;return this}return(r=o[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new Q(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof n&&("!"===(s=i.operator)||"in"===s||"instanceof"===s)?i:new n("!",this)},n.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&Gt(e,this,"first")},n.prototype.generateDo=function(e){var t,n,r,o,s,c,u,h;for(c=[],n=e instanceof i&&(u=e.value.unwrap())instanceof l?u:e,h=n.params||[],r=0,o=h.length;o>r;r++)s=h[r],s.value?(c.push(s.value),delete s.value):c.push(s);return t=new a(e,c),t["do"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,o,s;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),"delete"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),("--"===(o=this.operator)||"++"===o)&&(r=Ot(this.first.unwrapAll().value),r&&this.first.error(r)),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case"?":return this.compileExistence(e);case"**":return this.compilePower(e);case"//":return this.compileFloorDivision(e);case"%%":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,P),s=this.second.compileToFragments(e,P),t=[].concat(i,this.makeCode(" "+this.operator+" "),s),P>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,P),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,P)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new T(e.scope.freeVariable("ref")),t=new Q(new i(n,this.first))):(t=this.first,n=t),new N(new p(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),"!"===t&&this.first instanceof p?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=A?new Q(this).compileToFragments(e):(r="+"===t||"-"===t,("new"===t||"typeof"===t||"delete"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof n||"new"===t&&this.first.isStatement(e))&&(this.first=new Q(this.first)),i.push(this.first.compileToFragments(e,P)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},n.prototype.compileYield=function(e){var t,n,i;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield can only occur inside functions"),Wt.call(Object.keys(this.first),"expression")>=0&&!(this.first instanceof bt)?null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,P)):(e.level>=M&&n.push([this.makeCode("(")]),n.push([this.makeCode(t)]),""!==(null!=(i=this.first.base)?i.value:void 0)&&n.push([this.makeCode(" ")]),n.push(this.first.compileToFragments(e,P)),e.level>=M&&n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},n.prototype.compilePower=function(e){var n;return n=new wt(new T("Math"),[new t(new et("pow"))]),new a(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new wt(new T("Math"),[new t(new et("floor"))]),i=new n("/",this.first,this.second),new a(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new wt(new B(qt("modulo",e))),new a(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},n}(r),e.In=_=function(e){function t(e,t){this.object=e,this.array=t}return Yt(t,e),t.prototype.children=["object","array"],t.prototype.invert=G,t.prototype.compileNode=function(e){var t,n,i,r,o;if(this.array instanceof wt&&this.array.isArray()&&this.array.base.objects.length){for(o=this.array.base.objects,n=0,i=o.length;i>n;n++)if(r=o[n],r instanceof ct){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,o,s,a,c,l,u,h,p;for(c=this.object.cache(e,P),h=c[0],a=c[1],l=this.negated?[" !== "," && "]:[" === "," || "],t=l[0],n=l[1],p=[],u=this.array.base.objects,i=o=0,s=u.length;s>o;i=++o)r=u[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:h,this.makeCode(t),r.compileToFragments(e,A));return P>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,$),r=i[0],n=i[1],t=[].concat(this.makeCode(qt("indexOf",e)+".call("),this.array.compileToFragments(e,$),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),St(r)===St(n)?t:(t=r.concat(this.makeCode(", "),t),$>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(r),e.Try=yt=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return Yt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=Nt,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,o,s,a;return e.indent+=ft,a=this.attempt.compileToFragments(e,j),t=this.recovery?(r=e.scope.freeVariable("error",{reserve:!1}),s=new T(r),this.errorVariable?(o=Ot(this.errorVariable.unwrapAll().value),o?this.errorVariable.error(o):void 0,this.recovery.unshift(new i(this.errorVariable,s))):void 0,[].concat(this.makeCode(" catch ("),s.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,j),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:(r=e.scope.freeVariable("error",{reserve:!1}),[this.makeCode(" catch ("+r+") {}")]),n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,j),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(this.tab+"try {\n"),a,this.makeCode("\n"+this.tab+"}"),t,n)},t}(r),e.Throw=bt=function(e){function t(e){this.expression=e}return Yt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Nt,t.prototype.jumps=q,t.prototype.makeReturn=mt,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(r),e.Existence=p=function(e){function t(e){this.expression=e}return Yt(t,e),t.prototype.children=["expression"],t.prototype.invert=G,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,P),this.expression.unwrap()instanceof T&&!e.scope.check(i)?(r=this.negated?["===","||"]:["!==","&&"],t=r[0],n=r[1],i="typeof "+i+" "+t+' "undefined" '+n+" "+i+" "+t+" null"):i=i+" "+(this.negated?"==":"!=")+" null",[this.makeCode(O>=e.level?i:"("+i+")")]},t}(r),e.Parens=Q=function(e){function t(e){this.body=e}return Yt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof wt&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,M),t=P>e.level&&(n instanceof z||n instanceof a||n instanceof w&&n.returns),t?i:this.wrapInBraces(i))},t}(r),e.StringWithInterpolations=ht=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return Yt(t,e),t}(Q),e.For=w=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=o.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof wt&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof wt&&this.source.base instanceof tt&&!this.source.properties.length,this.pattern=this.name instanceof wt,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return Yt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k,w,L,C,F,E,D,x,_,S,I,R,A,O,P,M,V;return t=o.wrap([this.body]),E=t.expressions,k=E[E.length-1],(null!=k?k.jumps():void 0)instanceof rt&&(this.returns=!1),R=this.range?this.source.base:this.source,I=e.scope,this.pattern||(L=this.name&&this.name.compile(e,$)),g=this.index&&this.index.compile(e,$),L&&!this.pattern&&I.find(L),g&&I.find(g),this.returns&&(S=I.freeVariable("results")),b=this.object&&g||I.freeVariable("i",{single:!0}),y=this.range&&L||g||b,v=y!==b?y+" = ":"",this.step&&!this.range&&(D=this.cacheToCodeFragments(this.step.cache(e,$,It)),A=D[0],P=D[1],this.step.isNumber()&&(O=Number(P))),this.pattern&&(L=b),V="",d="",l="",f=this.tab+ft,this.range?p=R.compileToFragments(Pt(e,{index:b,name:L,step:this.step,isComplex:It})):(M=this.source.compile(e,$),!L&&!this.own||this.source.unwrap()instanceof T||(l+=""+this.tab+(F=I.freeVariable("ref"))+" = "+M+";\n",M=F),L&&!this.pattern&&(C=L+" = "+M+"["+y+"]"),this.object||(A!==P&&(l+=""+this.tab+A+";\n"),h=0>O,this.step&&null!=O&&h||(w=I.freeVariable("len")),a=""+v+b+" = 0, "+w+" = "+M+".length",c=""+v+b+" = "+M+".length - 1",r=b+" < "+w,s=b+" >= 0",this.step?(null!=O?h&&(r=s,a=c):(r=P+" > 0 ? "+r+" : "+s,a="("+P+" > 0 ? ("+a+") : "+c+")"),m=b+" += "+P):m=""+(y!==b?"++"+b:b+"++"),p=[this.makeCode(a+"; "+r+"; "+v+m)])),this.returns&&(x=""+this.tab+S+" = [];\n",_="\n"+this.tab+"return "+S+";",t.makeReturn(S)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new N(new Q(this.guard).invert(),new lt("continue"))):this.guard&&(t=o.wrap([new N(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new B(M+"["+y+"]"))),u=[].concat(this.makeCode(l),this.pluckDirectCall(e,t)),C&&(V="\n"+f+C+";"),this.object&&(p=[this.makeCode(y+" in "+M)],this.own&&(d="\n"+f+"if (!"+qt("hasProp",e)+".call("+M+", "+y+")) continue;")),n=t.compileToFragments(Pt(e,{indent:f}),j),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(u,this.makeCode(""+(x||"")+this.tab+"for ("),p,this.makeCode(") {"+d+V),n,this.makeCode(this.tab+"}"+(_||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,o,s,c,u,h,p,d,f,m,g,b,y,v,k;for(r=[],d=t.expressions,c=u=0,h=d.length;h>u;c=++u)o=d[c],o=o.unwrapAll(),o instanceof a&&(k=null!=(f=o.variable)?f.unwrapAll():void 0,(k instanceof l||k instanceof wt&&(null!=(m=k.base)?m.unwrapAll():void 0)instanceof l&&1===k.properties.length&&("call"===(g=null!=(b=k.properties[0].name)?b.value:void 0)||"apply"===g))&&(s=(null!=(y=k.base)?y.unwrapAll():void 0)||k,p=new T(e.scope.freeVariable("fn")),n=new wt(p),k.base&&(v=[n,k],k.base=v[0],n=v[1]),t.expressions[c]=new a(n,o.args),r=r.concat(this.makeCode(this.tab),new i(p,s).compileToFragments(e,j),this.makeCode(";\n")))); -return r},t}(Tt),e.Switch=dt=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return Yt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=Nt,t.prototype.jumps=function(e){var t,n,i,r,o,s,a,c;for(null==e&&(e={block:!0}),s=this.cases,i=0,o=s.length;o>i;i++)if(a=s[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,s;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new o([new B("void 0")]))),null!=(s=this.otherwise)&&s.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g;for(c=e.indent+ft,l=e.indent=c+ft,s=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,M):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=u=0,p=f.length;p>u;a=++u){for(m=f[a],r=m[0],t=m[1],g=_t([r]),h=0,d=g.length;d>h;h++)i=g[h],this.subject||(i=i.invert()),s=s.concat(this.makeCode(c+"case "),i.compileToFragments(e,M),this.makeCode(":\n"));if((n=t.compileToFragments(e,j)).length>0&&(s=s.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;o=this.lastNonComment(t.expressions),o instanceof rt||o instanceof B&&o.jumps()&&"debugger"!==o.value||s.push(i.makeCode(l+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&s.push.apply(s,[this.makeCode(c+"default:\n")].concat(Jt.call(this.otherwise.compileToFragments(e,j)),[this.makeCode("\n")])),s.push(this.makeCode(this.tab+"}")),s},t}(r),e.If=N=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition="unless"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return Yt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===j||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new o([new B("void 0")]))),this.body&&(this.body=new o([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new o([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof o?e:new o([e])},t.prototype.compileStatement=function(e){var n,i,r,o,s,a,c;return r=Et(e,"chainChild"),(s=Et(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+ft,o=this.condition.compileToFragments(e,M),i=this.ensureBlock(this.body).compileToFragments(Pt(e,{indent:c})),a=[].concat(this.makeCode("if ("),o,this.makeCode(") {\n"),i,this.makeCode("\n"+this.tab+"}")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,j))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Pt(e,{indent:c}),j),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,O),n=this.bodyNode().compileToFragments(e,$),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,$):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=O?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(r),vt={extend:function(e){return"function(child, parent) { for (var key in parent) { if ("+qt("hasProp",e)+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b = +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},j=1,M=2,$=3,O=4,P=5,A=6,ft=" ",ot=/^[+-]?\d+$/,qt=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,vt[e](t)),i.utilities[e]=n)},Mt=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},Rt=function(e){return e instanceof B&&"arguments"===e.value&&!e.asKey},At=function(e){return e instanceof gt&&!e.asKey||e instanceof l&&e.bound||e instanceof pt},It=function(e){return e.isComplex()||("function"==typeof e.isAssignable?e.isAssignable():void 0)},Gt=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new wt(t),i}}.call(this),t.exports}(),require["./sourcemap"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,o;return t.prototype.add=function(t,n,i){var r,o,s,a;return null==i&&(i={}),s=n[0],o=n[1],a=(r=this.lines)[s]||(r[s]=new e(s)),a.add(o,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b;for(null==e&&(e={}),null==t&&(t=null),b=0,o=0,a=0,s=0,d=!1,n="",f=this.lines,h=i=0,c=f.length;c>i;h=++i)if(u=f[h])for(m=u.columns,r=0,l=m.length;l>r;r++)if(p=m[r]){for(;p.line>b;)o=0,d=!1,n+=";",b++;d&&(n+=",",d=!1),n+=this.encodeVlq(p.column-o),o=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-s),s=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inlineMap&&(g.sourcesContent=[t]),g},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+s;a||!t;)n=a&o,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e)}()},t}(),t.exports=n}.call(this),t.exports}(),require["./coffee-script"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,o,s,a,c,l,u,h,p,d,f,m,g,b,y,v,k={}.hasOwnProperty;if(c=require("fs"),y=require("vm"),m=require("path"),t=require("./lexer").Lexer,f=require("./parser").parser,u=require("./helpers"),n=require("./sourcemap"),e.VERSION="1.11.0",e.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md"],e.helpers=u,i=function(e){switch(!1){case"function"!=typeof Buffer:return new Buffer(e).toString("base64");case"function"!=typeof btoa:return btoa(e);default:throw Error("Unable to base64 encode inline sourcemap.")}},v=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n)}catch(r){if(i=r,"string"!=typeof t)throw i;throw u.updateSyntaxError(i,t,n.filename)}}},e.compile=r=v(function(e,t){var r,o,s,a,c,l,h,p,m,g,b,y,v,k,w,T,N,L,C,F,E,D,x;if(w=u.merge,a=u.extend,t=a({},t),h=t.sourceMap||t.inlineMap,h&&(k=new n),D=d.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=D.length;t>e;e++)E=D[e],"IDENTIFIER"===E[0]&&n.push(E[1]);return n}(),null==t.bare||t.bare!==!0)for(m=0,y=D.length;y>m;m++)if(E=D[m],"IMPORT"===(N=E[0])||"EXPORT"===N){t.bare=!0;break}for(l=f.parse(D).compileToFragments(t),o=0,t.header&&(o+=1),t.shiftLine&&(o+=1),r=0,b="",g=0,v=l.length;v>g;g++)c=l[g],h&&(c.locationData&&!/^[;\s]*$/.test(c.code)&&k.add([c.locationData.first_line,c.locationData.first_column],[o,r],{noReplace:!0}),T=u.count(c.code,"\n"),o+=T,T?r=c.code.length-(c.code.lastIndexOf("\n")+1):r+=c.code.length),b+=c.code;return t.header&&(p="Generated by CoffeeScript "+this.VERSION,b="// "+p+"\n"+b),h&&(x=k.generate(t,e)),t.inlineMap&&(s=i(JSON.stringify(x)),C="//# sourceMappingURL=data:application/json;base64,"+s,F="//# sourceURL="+(null!=(L=t.filename)?L:"coffeescript"),b=b+"\n"+C+"\n"+F),t.sourceMap?{js:b,sourceMap:k,v3SourceMap:JSON.stringify(x,null,2)}:b}),e.tokens=v(function(e,t){return d.tokenize(e,t)}),e.nodes=v(function(e,t){return"string"==typeof e?f.parse(d.tokenize(e,t)):f.parse(e)}),e.run=function(e,t){var n,i,o,s;return null==t&&(t={}),o=require.main,o.filename=process.argv[1]=t.filename?c.realpathSync(t.filename):".",o.moduleCache&&(o.moduleCache={}),i=t.filename?m.dirname(c.realpathSync(t.filename)):c.realpathSync("."),o.paths=require("module")._nodeModulePaths(i),(!u.isCoffee(o.filename)||require.extensions)&&(n=r(e,t),e=null!=(s=n.js)?s:n),o._compile(e,o.filename)},e.eval=function(e,t){var n,i,o,s,a,c,l,u,h,p,d,f,g,b,v,w,T;if(null==t&&(t={}),e=e.trim()){if(s=null!=(f=y.Script.createContext)?f:y.createContext,c=null!=(g=y.isContext)?g:function(){return t.sandbox instanceof s().constructor},s){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=s(),b=t.sandbox;for(u in b)k.call(b,u)&&(T=b[u],w[u]=T)}w.global=w.root=w.GLOBAL=w}else w=global;if(w.__filename=t.filename||"eval",w.__dirname=m.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=require("module"),w.module=i=new n(t.modulename||"eval"),w.require=o=function(e){return n._load(e,i,!0)},i.filename=w.__filename,v=Object.getOwnPropertyNames(require),a=0,h=v.length;h>a;a++)d=v[a],"paths"!==d&&"arguments"!==d&&"caller"!==d&&(o[d]=require[d]);o.paths=i.paths=n._nodeModulePaths(process.cwd()),o.resolve=function(e){return n._resolveFilename(e,i)}}}p={};for(u in t)k.call(t,u)&&(T=t[u],p[u]=T);return p.bare=!0,l=r(e,p),w===global?y.runInThisContext(l):y.runInContext(l,w)}},e.register=function(){return require("./register")},require.extensions)for(g=this.FILE_EXTENSIONS,s=function(e){var t;return null!=(t=require.extensions)[e]?t[e]:t[e]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+e+" files.")}},h=0,p=g.length;p>h;h++)o=g[h],s(o);e._compileFile=function(e,t,n){var i,o,s,a;null==t&&(t=!1),null==n&&(n=!1),s=c.readFileSync(e,"utf8"),a=65279===s.charCodeAt(0)?s.substring(1):s;try{i=r(a,{filename:e,sourceMap:t,inlineMap:n,sourceFiles:[e],literate:u.isLiterate(e)})}catch(l){throw o=l,u.updateSyntaxError(o,a,e)}return i},d=new t,f.lexer={lex:function(){var e,t;return t=f.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],f.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return f.tokens=e,this.pos=0},upcomingInput:function(){return""}},f.yy=require("./nodes"),f.yy.parseError=function(e,t){var n,i,r,o,s,a;return s=t.token,o=f.errorToken,a=f.tokens,i=o[0],r=o[1],n=o[2],r=function(){switch(!1){case o!==a[a.length-1]:return"end of input";case"INDENT"!==i&&"OUTDENT"!==i:return"indentation";case"IDENTIFIER"!==i&&"NUMBER"!==i&&"INFINITY"!==i&&"STRING"!==i&&"STRING_START"!==i&&"REGEX"!==i&&"REGEX_START"!==i:return i.replace(/_START$/,"").toLowerCase();default:return u.nameWhitespaceCharacter(r)}}(),u.throwSyntaxError("unexpected "+r,n)},a=function(e,t){var n,i,r,o,s,a,c,l,u,h,p,d;return o=void 0,r="",e.isNative()?r="native":(e.isEval()?(o=e.getScriptNameOrSourceURL(),o||(r=e.getEvalOrigin()+", ")):o=e.getFileName(),o||(o=""),l=e.getLineNumber(),i=e.getColumnNumber(),h=t(o,l,i),r=h?o+":"+h[0]+":"+h[1]:o+":"+l+":"+i),s=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(u=e.getMethodName(),d=e.getTypeName(),s?(p=n="",d&&s.indexOf(d)&&(p=d+"."),u&&s.indexOf("."+u)!==s.length-u.length-1&&(n=" [as "+u+"]"),""+p+s+n+" ("+r+")"):d+"."+(u||"")+" ("+r+")"):a?"new "+(s||"")+" ("+r+")":s?s+" ("+r+")":r},b={},l=function(t){var n,i,r,s;if(b[t])return b[t];for(s=e.FILE_EXTENSIONS,i=0,r=s.length;r>i;i++)if(o=s[i],u.ends(t,o))return n=e._compileFile(t,!0),b[t]=n.sourceMap;return null},Error.prepareStackTrace=function(t,n){var i,r,o;return o=function(e,t,n){var i,r;return r=l(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var t,r,s;for(s=[],t=0,r=n.length;r>t&&(i=n[t],i.getFunction()!==e.run);t++)s.push(" at "+a(i,o));return s}(),""+t+"\n"+r.join("\n")+"\n"}}.call(this),t.exports}(),require["./browser"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=require("./coffee-script"),CoffeeScript.require=require,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&(compile=function(e,t){return null==t&&(t={}),t.inlineMap=!0,CoffeeScript.compile(e,t)}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var o,s;if(4===r.readyState){if(0!==(s=r.status)&&200!==s)throw Error("Could not load "+e);if(o=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,o),t)return t(o)}},r.send(null)},runScripts=function(){var e,t,n,i,r,o,s,a,c,l,u;for(u=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=u.length;n>e;e++)c=u[e],i=c.type,indexOf.call(t,i)>=0&&r.push(c);return r}(),o=0,n=function(){var t;return t=e[o],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),o++,n()):void 0},i=function(i,r){var o,s;return o={literate:i.type===t[1]},s=i.src||i.getAttribute("data-src"),s?CoffeeScript.load(s,function(t){return e[r]=t,n()},o,!0):(o.sourceFiles=["embedded"],e[r]=[i.innerHTML,o])},r=s=0,a=e.length;a>s;r=++s)l=e[r],i(l,r);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts))}.call(this),module.exports}(),require["./coffee-script"]}();"function"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript})(this); \ No newline at end of file From 2ca8a01667e23bdeecad1bbc631345893069411a Mon Sep 17 00:00:00 2001 From: Gabe Date: Sun, 25 Sep 2016 16:22:39 -0700 Subject: [PATCH 19/35] Make 'async' reserved word --- src/lexer.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lexer.coffee b/src/lexer.coffee index 18dc3e5fff..e0fcc40b9b 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -832,7 +832,7 @@ COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat COFFEE_ALIASES RESERVED = [ 'case', 'function', 'var', 'void', 'with', 'const', 'let', 'enum' 'native', 'implements', 'interface', 'package', 'private' - 'protected', 'public', 'static' + 'protected', 'public', 'static', 'async' ] STRICT_PROSCRIBED = ['arguments', 'eval'] From 8a34f2349d37f16553270e7a6c2b2d56d27b2958 Mon Sep 17 00:00:00 2001 From: Gabe Date: Sun, 25 Sep 2016 19:24:53 -0700 Subject: [PATCH 20/35] Remove all async polyfills --- Cakefile | 12 ++---------- bin/cake | 2 +- bin/coffee | 2 +- lib/coffee-script/cake.js | 6 +++--- lib/coffee-script/helpers.js | 28 +--------------------------- lib/coffee-script/lexer.js | 2 +- package.json | 2 +- src/cake.coffee | 4 ++-- src/helpers.coffee | 16 ---------------- test/functions.coffee | 6 +++--- 10 files changed, 15 insertions(+), 65 deletions(-) diff --git a/Cakefile b/Cakefile index c3696821fd..518e4945ac 100644 --- a/Cakefile +++ b/Cakefile @@ -218,7 +218,7 @@ task 'bench', 'quick benchmark of compilation time', -> # Run the CoffeeScript test suite. -runTests = helpers.async (CoffeeScript) -> +runTests = (CoffeeScript) -> CoffeeScript.register() startTime = Date.now() currentFile = null @@ -274,14 +274,7 @@ runTests = helpers.async (CoffeeScript) -> # Run every test in the `test` folder, recording failures. files = fs.readdirSync 'test' - asyncIsAvailable = '--harmony' in process.execArgv or - '--harmony_async_await' in process.execArgv - for file in files when helpers.isCoffee file - # skip async/await tests if JS runtime doesn't support it - if not asyncIsAvailable and file == 'async.coffee' - continue - literate = helpers.isLiterate file currentFile = filename = path.join 'test', file code = fs.readFileSync filename @@ -291,8 +284,7 @@ runTests = helpers.async (CoffeeScript) -> for {description, fn} in testCases try fn.test = {description, currentFile} - val = fn.call(fn) - yield val + await fn.call(fn) ++passedTests catch e failures.push diff --git a/bin/cake b/bin/cake index 5965f4ee5d..1b8613e34d 100755 --- a/bin/cake +++ b/bin/cake @@ -1,4 +1,4 @@ -#!/usr/bin/env node +#!/usr/bin/env node --harmony var path = require('path'); var fs = require('fs'); diff --git a/bin/coffee b/bin/coffee index 3d1d71c8c5..818499a89a 100755 --- a/bin/coffee +++ b/bin/coffee @@ -1,4 +1,4 @@ -#!/usr/bin/env node +#!/usr/bin/env node --harmony var path = require('path'); var fs = require('fs'); diff --git a/lib/coffee-script/cake.js b/lib/coffee-script/cake.js index b2f133b4cb..41bd9a3865 100644 --- a/lib/coffee-script/cake.js +++ b/lib/coffee-script/cake.js @@ -45,7 +45,7 @@ } }); - exports.run = helpers.async(function*() { + exports.run = async function() { var arg, args, e, i, len, ref, results; global.__originalDirname = fs.realpathSync('.'); process.chdir(cakefileDirectory(__originalDirname)); @@ -67,10 +67,10 @@ results = []; for (i = 0, len = ref.length; i < len; i++) { arg = ref[i]; - results.push((yield invoke(arg))); + results.push((await invoke(arg))); } return results; - }); + }; printTasks = function() { var cakefilePath, desc, name, relative, spaces, task; diff --git a/lib/coffee-script/helpers.js b/lib/coffee-script/helpers.js index d9739c1885..1450ca9222 100644 --- a/lib/coffee-script/helpers.js +++ b/lib/coffee-script/helpers.js @@ -1,32 +1,6 @@ // Generated by CoffeeScript 1.11.0 (function() { - var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString, - slice = [].slice; - - exports.async = function(generatorFunction) { - return function() { - var args, generator, proceed, rejector, resolver; - args = 1 <= arguments.length ? slice.call(arguments, 0) : []; - proceed = function(arg) { - var done, promise, value; - done = arg.done, value = arg.value; - promise = Promise.resolve(value); - if (done) { - return promise; - } else { - return promise.then(resolver, rejector); - } - }; - resolver = function(value) { - return proceed(generator.next(value)); - }; - rejector = function(error) { - return proceed(generator["throw"](error)); - }; - generator = generatorFunction.apply(this, args); - return proceed(generator.next()); - }; - }; + var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString; exports.starts = function(string, literal, start) { return literal === string.substr(start, literal.length); diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index 82ff69ed37..2c7b32a517 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -958,7 +958,7 @@ COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); - RESERVED = ['case', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'native', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static']; + RESERVED = ['case', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'native', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'async']; STRICT_PROSCRIBED = ['arguments', 'eval']; diff --git a/package.json b/package.json index e2a0d379fe..db037654e3 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "version": "1.11.0", "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=7.0.0" }, "directories": { "lib": "./lib/coffee-script" diff --git a/src/cake.coffee b/src/cake.coffee index cd769a3526..c204f37c3d 100644 --- a/src/cake.coffee +++ b/src/cake.coffee @@ -46,7 +46,7 @@ helpers.extend global, # asynchrony may cause tasks to execute in a different order than you'd expect. # If no tasks are passed, print the help screen. Keep a reference to the # original directory name, when running Cake tasks from subdirectories. -exports.run = helpers.async -> +exports.run = -> global.__originalDirname = fs.realpathSync '.' process.chdir cakefileDirectory __originalDirname args = process.argv[2..] @@ -57,7 +57,7 @@ exports.run = helpers.async -> options = oparse.parse(args) catch e return fatalError "#{e}" - yield invoke arg for arg in options.arguments + await invoke arg for arg in options.arguments # Display the list of Cake tasks in a format similar to `rake -T` printTasks = -> diff --git a/src/helpers.coffee b/src/helpers.coffee index 19bd13791c..9672399c30 100644 --- a/src/helpers.coffee +++ b/src/helpers.coffee @@ -2,22 +2,6 @@ # the **Lexer**, **Rewriter**, and the **Nodes**. Merge objects, flatten # arrays, count characters, that sort of thing. -# async/await for test-suite -exports.async = (generatorFunction) -> - return (args...) -> - proceed = ({done, value}) -> - promise = Promise.resolve value - if done - promise - else - promise.then resolver, rejector - resolver = (value) -> - proceed generator.next value - rejector = (error) -> - proceed generator.throw error - - generator = generatorFunction.apply this, args - proceed generator.next() # Peek at the beginning of a given string to see if it matches a sequence. exports.starts = (string, literal, start) -> diff --git a/test/functions.coffee b/test/functions.coffee index 005700cda2..a71a6c4a85 100644 --- a/test/functions.coffee +++ b/test/functions.coffee @@ -164,17 +164,17 @@ test "destructuring in function definition", -> ) {a: 5} ajax = (url, { - async = true, + isAsync = true, beforeSend = (->), cache = true, method = 'get', data = {} }) -> - {url, async, beforeSend, cache, method, data} + {url, isAsync, beforeSend, cache, method, data} fn = -> deepEqual ajax('/home', beforeSend: fn, cache: null, method: 'post'), { - url: '/home', async: true, beforeSend: fn, cache: true, method: 'post', data: {} + url: '/home', isAsync: true, beforeSend: fn, cache: true, method: 'post', data: {} } test "#4005: `([a = {}]..., b) ->` weirdness", -> From e142e43d8bba939264e270d1f23d0d46907b2a03 Mon Sep 17 00:00:00 2001 From: Gabe Date: Fri, 21 Oct 2016 14:10:12 -0700 Subject: [PATCH 21/35] fix merge conflict --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 712a1a0d72..fdf92ed580 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "version": "1.11.1", "license": "MIT", "engines": { - "node": ">=7.0.0" + "node": ">=6.0.0" }, "directories": { "lib": "./lib/coffee-script" From 88fff702aa614bdd49ed105451dbf2b17d2735f5 Mon Sep 17 00:00:00 2001 From: Gabe Date: Sat, 22 Oct 2016 03:02:59 -0700 Subject: [PATCH 22/35] make async testing opt-in --- Cakefile | 9 +++++++-- bin/cake | 2 +- bin/coffee | 2 +- lib/coffee-script/cake.js | 6 +++--- lib/coffee-script/command.js | 2 +- lib/coffee-script/helpers.js | 28 +++++++++++++++++++++++++++- lib/coffee-script/lexer.js | 25 ++++++++++++++++++++----- lib/coffee-script/nodes.js | 14 ++++++++------ package.json | 2 +- src/cake.coffee | 4 ++-- src/helpers.coffee | 15 +++++++++++++++ test/literate.litcoffee | 5 ----- 12 files changed, 86 insertions(+), 28 deletions(-) diff --git a/Cakefile b/Cakefile index 80bd11fbcc..d7e46d7c8f 100644 --- a/Cakefile +++ b/Cakefile @@ -218,7 +218,7 @@ task 'bench', 'quick benchmark of compilation time', -> # Run the CoffeeScript test suite. -runTests = (CoffeeScript) -> +runTests = helpers.async (CoffeeScript) -> CoffeeScript.register() startTime = Date.now() currentFile = null @@ -273,8 +273,13 @@ runTests = (CoffeeScript) -> # Run every test in the `test` folder, recording failures. files = fs.readdirSync 'test' + harmonySupport = '--harmony' in process.execArgv + harmonyFiles = new Set ['async.coffee'] for file in files when helpers.isCoffee file + # skip file if harmony only when harmony support is abscent + if harmonyFiles.has(file) and not harmonySupport + continue literate = helpers.isLiterate file currentFile = filename = path.join 'test', file code = fs.readFileSync filename @@ -284,7 +289,7 @@ runTests = (CoffeeScript) -> for {description, fn} in testCases try fn.test = {description, currentFile} - await fn.call(fn) + yield fn.call(fn) ++passedTests catch e failures.push diff --git a/bin/cake b/bin/cake index 1b8613e34d..5965f4ee5d 100755 --- a/bin/cake +++ b/bin/cake @@ -1,4 +1,4 @@ -#!/usr/bin/env node --harmony +#!/usr/bin/env node var path = require('path'); var fs = require('fs'); diff --git a/bin/coffee b/bin/coffee index 818499a89a..3d1d71c8c5 100755 --- a/bin/coffee +++ b/bin/coffee @@ -1,4 +1,4 @@ -#!/usr/bin/env node --harmony +#!/usr/bin/env node var path = require('path'); var fs = require('fs'); diff --git a/lib/coffee-script/cake.js b/lib/coffee-script/cake.js index abcef1ce94..b118a3e810 100644 --- a/lib/coffee-script/cake.js +++ b/lib/coffee-script/cake.js @@ -45,7 +45,7 @@ } }); - exports.run = async function() { + exports.run = helpers["async"](function*() { var arg, args, e, i, len, ref, results; global.__originalDirname = fs.realpathSync('.'); process.chdir(cakefileDirectory(__originalDirname)); @@ -67,10 +67,10 @@ results = []; for (i = 0, len = ref.length; i < len; i++) { arg = ref[i]; - results.push((await invoke(arg))); + results.push((yield invoke(arg))); } return results; - }; + }); printTasks = function() { var cakefilePath, desc, name, relative, spaces, task; diff --git a/lib/coffee-script/command.js b/lib/coffee-script/command.js index c6b28f1f56..796206432c 100644 --- a/lib/coffee-script/command.js +++ b/lib/coffee-script/command.js @@ -458,7 +458,7 @@ mkdirp = function(dir, fn) { var mkdirs, mode; - mode = 0x1ff & ~process.umask(); + mode = 0o777 & ~process.umask(); return (mkdirs = function(p, fn) { return fs.exists(p, function(exists) { if (exists) { diff --git a/lib/coffee-script/helpers.js b/lib/coffee-script/helpers.js index 5bf524e5db..6b4868b37d 100644 --- a/lib/coffee-script/helpers.js +++ b/lib/coffee-script/helpers.js @@ -1,6 +1,32 @@ // Generated by CoffeeScript 1.11.1 (function() { - var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString; + var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString, + slice = [].slice; + + exports["async"] = function(generatorFunction) { + return function() { + var args, generator, next, proceed, raise; + args = 1 <= arguments.length ? slice.call(arguments, 0) : []; + next = function(val) { + return proceed(generator.next(val)); + }; + raise = function(err) { + return proceed(generator["throw"](err)); + }; + proceed = function(arg) { + var done, promise, value; + done = arg.done, value = arg.value; + promise = Promise.resolve(value); + if (done) { + return promise; + } else { + return promise.then(next, raise); + } + }; + generator = generatorFunction.apply(this, args); + return proceed(generator.next()); + }; + }; exports.starts = function(string, literal, start) { return literal === string.substr(start, literal.length); diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index 42e2f494c2..96be7aa645 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -22,6 +22,7 @@ this.indebt = 0; this.outdebt = 0; this.indents = []; + this.indentLiteral = ''; this.ends = []; this.tokens = []; this.seenFor = false; @@ -174,7 +175,7 @@ }; Lexer.prototype.numberToken = function() { - var base, lexedLength, match, number, numberValue, ref2, tag; + var base, lexedLength, match, number, numberValue, tag; if (!(match = NUMBER.exec(this.chunk))) { return 0; } @@ -214,9 +215,6 @@ } })(); numberValue = base != null ? parseInt(number.slice(2), base) : parseFloat(number); - if ((ref2 = number.charAt(1)) === 'b' || ref2 === 'o') { - number = "0x" + (numberValue.toString(16)); - } tag = numberValue === 2e308 ? 'INFINITY' : 'NUMBER'; this.token(tag, number, 0, lexedLength); return lexedLength; @@ -408,7 +406,7 @@ }; Lexer.prototype.lineToken = function() { - var diff, indent, match, noNewlines, size; + var diff, indent, match, minLiteralLength, newIndentLiteral, noNewlines, size; if (!(match = MULTI_DENT.exec(this.chunk))) { return 0; } @@ -416,6 +414,20 @@ this.seenFor = false; size = indent.length - 1 - indent.lastIndexOf('\n'); noNewlines = this.unfinished(); + newIndentLiteral = size > 0 ? indent.slice(-size) : ''; + if (!/^(.?)\1*$/.exec(newIndentLiteral)) { + this.error('mixed indentation', { + offset: indent.length + }); + return indent.length; + } + minLiteralLength = Math.min(newIndentLiteral.length, this.indentLiteral.length); + if (newIndentLiteral.slice(0, minLiteralLength) !== this.indentLiteral.slice(0, minLiteralLength)) { + this.error('indentation mismatch', { + offset: indent.length + }); + return indent.length; + } if (size - this.indebt === this.indent) { if (noNewlines) { this.suppressNewlines(); @@ -432,6 +444,7 @@ } if (!this.tokens.length) { this.baseIndent = this.indent = size; + this.indentLiteral = newIndentLiteral; return indent.length; } diff = size - this.indent + this.outdebt; @@ -442,6 +455,7 @@ }); this.outdebt = this.indebt = 0; this.indent = size; + this.indentLiteral = newIndentLiteral; } else if (size < this.baseIndent) { this.error('missing indentation', { offset: indent.length @@ -488,6 +502,7 @@ this.token('TERMINATOR', '\n', outdentLength, 0); } this.indent = decreasedIndent; + this.indentLiteral = this.indentLiteral.slice(0, decreasedIndent); return this; }; diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index 31d52b00f5..de44002b9f 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -2546,12 +2546,14 @@ o.scope.parameter(fragmentsToText(params[i])); } uniqs = []; - this.eachParamName(function(name, node) { - if (indexOf.call(uniqs, name) >= 0) { - node.error("multiple parameters named " + name); - } - return uniqs.push(name); - }); + this.eachParamName((function(_this) { + return function(name, node) { + if (indexOf.call(uniqs, name) >= 0) { + node.error("multiple parameters named '" + name + "'"); + } + return uniqs.push(name); + }; + })(this)); if (!(wasEmpty || this.noReturn)) { this.body.makeReturn(); } diff --git a/package.json b/package.json index 0eaef256d8..d5f75983b9 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "version": "2.0.0-alpha", "license": "MIT", "engines": { - "node": ">=7.0.0" + "node": ">=6.9.1" }, "directories": { "lib": "./lib/coffee-script" diff --git a/src/cake.coffee b/src/cake.coffee index c204f37c3d..cd769a3526 100644 --- a/src/cake.coffee +++ b/src/cake.coffee @@ -46,7 +46,7 @@ helpers.extend global, # asynchrony may cause tasks to execute in a different order than you'd expect. # If no tasks are passed, print the help screen. Keep a reference to the # original directory name, when running Cake tasks from subdirectories. -exports.run = -> +exports.run = helpers.async -> global.__originalDirname = fs.realpathSync '.' process.chdir cakefileDirectory __originalDirname args = process.argv[2..] @@ -57,7 +57,7 @@ exports.run = -> options = oparse.parse(args) catch e return fatalError "#{e}" - await invoke arg for arg in options.arguments + yield invoke arg for arg in options.arguments # Display the list of Cake tasks in a format similar to `rake -T` printTasks = -> diff --git a/src/helpers.coffee b/src/helpers.coffee index 9672399c30..52f5e39046 100644 --- a/src/helpers.coffee +++ b/src/helpers.coffee @@ -3,6 +3,21 @@ # arrays, count characters, that sort of thing. +# pollyfill for async/await +exports.async = (generatorFunction) -> + return (args...) -> + next = (val) -> proceed generator.next val + raise = (err) -> proceed generator.throw err + proceed = ({done, value}) -> + promise = Promise.resolve value + if done + promise + else + promise.then next, raise + + generator = generatorFunction.apply this, args + proceed generator.next() + # Peek at the beginning of a given string to see if it matches a sequence. exports.starts = (string, literal, start) -> literal is string.substr start, literal.length diff --git a/test/literate.litcoffee b/test/literate.litcoffee index c296827580..9dd322ac34 100644 --- a/test/literate.litcoffee +++ b/test/literate.litcoffee @@ -50,8 +50,3 @@ and unordered lists, are fine: * A * List - -Tabs work too: - - test "tabbed code", -> - ok yes From b083ef198d836593e8b183b1bc0753477ea9328f Mon Sep 17 00:00:00 2001 From: Gabe Date: Sat, 22 Oct 2016 11:56:10 -0700 Subject: [PATCH 23/35] restore test, remove confusing polyfill language --- src/helpers.coffee | 2 +- test/literate.litcoffee | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/helpers.coffee b/src/helpers.coffee index 52f5e39046..d82800aeae 100644 --- a/src/helpers.coffee +++ b/src/helpers.coffee @@ -3,7 +3,7 @@ # arrays, count characters, that sort of thing. -# pollyfill for async/await +# Adds async/await like functionality for Cake exports.async = (generatorFunction) -> return (args...) -> next = (val) -> proceed generator.next val diff --git a/test/literate.litcoffee b/test/literate.litcoffee index 9dd322ac34..c296827580 100644 --- a/test/literate.litcoffee +++ b/test/literate.litcoffee @@ -50,3 +50,8 @@ and unordered lists, are fine: * A * List + +Tabs work too: + + test "tabbed code", -> + ok yes From ed79f5654d9c1721cf5363c2f5bf22f3683f6e93 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 22 Oct 2016 18:09:38 -0700 Subject: [PATCH 24/35] Revert changes to test runners --- Cakefile | 39 +++++++++++++++--------------------- lib/coffee-script/cake.js | 6 +++--- lib/coffee-script/helpers.js | 28 +------------------------- package.json | 2 +- src/cake.coffee | 6 +++--- src/helpers.coffee | 16 --------------- test/comprehensions.coffee | 18 ++++++++--------- test/importing.coffee | 14 +++++++++++++ 8 files changed, 47 insertions(+), 82 deletions(-) diff --git a/Cakefile b/Cakefile index d7e46d7c8f..cf538b870b 100644 --- a/Cakefile +++ b/Cakefile @@ -218,13 +218,12 @@ task 'bench', 'quick benchmark of compilation time', -> # Run the CoffeeScript test suite. -runTests = helpers.async (CoffeeScript) -> +runTests = (CoffeeScript) -> CoffeeScript.register() startTime = Date.now() currentFile = null passedTests = 0 failures = [] - testCases = [] global[name] = func for name, func of require 'assert' @@ -234,7 +233,16 @@ runTests = helpers.async (CoffeeScript) -> # Our test helper function for delimiting different test cases. global.test = (description, fn) -> - testCases.push {description, fn} + try + fn.test = {description, currentFile} + fn.call(fn) + ++passedTests + catch e + failures.push + filename: currentFile + error: e + description: description if description? + source: fn.toString() if fn.toString? # See http://wiki.ecmascript.org/doku.php?id=harmony:egal egal = (a, b) -> @@ -254,11 +262,9 @@ runTests = helpers.async (CoffeeScript) -> global.eq = (a, b, msg) -> ok egal(a, b), msg ? "Expected #{a} to equal #{b}" global.arrayEq = (a, b, msg) -> ok arrayEgal(a,b), msg ? "Expected #{a} to deep equal #{b}" - # When all the tests have run, collect and print errors. # If a stacktrace is available, output the compiled function source. process.on 'exit', -> - time = ((Date.now() - startTime) / 1000).toFixed(2) message = "passed #{passedTests} tests in #{time} seconds#{reset}" return log(message, green) unless failures.length @@ -273,33 +279,20 @@ runTests = helpers.async (CoffeeScript) -> # Run every test in the `test` folder, recording failures. files = fs.readdirSync 'test' - harmonySupport = '--harmony' in process.execArgv - harmonyFiles = new Set ['async.coffee'] + + # Ignore generators test file if generators are not available + generatorsAreAvailable = '--harmony' in process.execArgv or + '--harmony-generators' in process.execArgv + files.splice files.indexOf('generators.coffee'), 1 if not generatorsAreAvailable for file in files when helpers.isCoffee file - # skip file if harmony only when harmony support is abscent - if harmonyFiles.has(file) and not harmonySupport - continue literate = helpers.isLiterate file currentFile = filename = path.join 'test', file code = fs.readFileSync filename - testCases = [] try CoffeeScript.run code.toString(), {filename, literate} - for {description, fn} in testCases - try - fn.test = {description, currentFile} - yield fn.call(fn) - ++passedTests - catch e - failures.push - filename: currentFile - error: e - description: description if description? - source: fn.toString() if fn.toString? catch error failures.push {filename, error} - return !failures.length diff --git a/lib/coffee-script/cake.js b/lib/coffee-script/cake.js index dec8f8362c..e1598c0b27 100644 --- a/lib/coffee-script/cake.js +++ b/lib/coffee-script/cake.js @@ -45,7 +45,7 @@ } }); - exports.run = helpers["async"](function*() { + exports.run = function() { var arg, args, e, i, len, ref, results; global.__originalDirname = fs.realpathSync('.'); process.chdir(cakefileDirectory(__originalDirname)); @@ -67,10 +67,10 @@ results = []; for (i = 0, len = ref.length; i < len; i++) { arg = ref[i]; - results.push((yield invoke(arg))); + results.push(invoke(arg)); } return results; - }); + }; printTasks = function() { var cakefilePath, desc, name, relative, spaces, task; diff --git a/lib/coffee-script/helpers.js b/lib/coffee-script/helpers.js index 8b858a12ab..5561151e27 100644 --- a/lib/coffee-script/helpers.js +++ b/lib/coffee-script/helpers.js @@ -1,32 +1,6 @@ // Generated by CoffeeScript 2.0.0-alpha (function() { - var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString, - slice = [].slice; - - exports["async"] = function(generatorFunction) { - return function() { - var args, generator, next, proceed, raise; - args = 1 <= arguments.length ? slice.call(arguments, 0) : []; - next = function(val) { - return proceed(generator.next(val)); - }; - raise = function(err) { - return proceed(generator["throw"](err)); - }; - proceed = function(arg) { - var done, promise, value; - done = arg.done, value = arg.value; - promise = Promise.resolve(value); - if (done) { - return promise; - } else { - return promise.then(next, raise); - } - }; - generator = generatorFunction.apply(this, args); - return proceed(generator.next()); - }; - }; + var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString; exports.starts = function(string, literal, start) { return literal === string.substr(start, literal.length); diff --git a/package.json b/package.json index 2b5cfa37ae..0278bf2110 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ ], "preferGlobal": true, "scripts": { - "test": "node ./bin/cake test", + "test": "node ./bin/cake test", "test-harmony": "node --harmony ./bin/cake test" }, "homepage": "http://coffeescript.org", diff --git a/src/cake.coffee b/src/cake.coffee index cd769a3526..b64959a68c 100644 --- a/src/cake.coffee +++ b/src/cake.coffee @@ -46,7 +46,7 @@ helpers.extend global, # asynchrony may cause tasks to execute in a different order than you'd expect. # If no tasks are passed, print the help screen. Keep a reference to the # original directory name, when running Cake tasks from subdirectories. -exports.run = helpers.async -> +exports.run = -> global.__originalDirname = fs.realpathSync '.' process.chdir cakefileDirectory __originalDirname args = process.argv[2..] @@ -57,7 +57,7 @@ exports.run = helpers.async -> options = oparse.parse(args) catch e return fatalError "#{e}" - yield invoke arg for arg in options.arguments + invoke arg for arg in options.arguments # Display the list of Cake tasks in a format similar to `rake -T` printTasks = -> @@ -85,4 +85,4 @@ cakefileDirectory = (dir) -> return dir if fs.existsSync path.join dir, 'Cakefile' parent = path.normalize path.join dir, '..' return cakefileDirectory parent unless parent is dir - throw new Error "Cakefile not found in #{process.cwd()}" \ No newline at end of file + throw new Error "Cakefile not found in #{process.cwd()}" diff --git a/src/helpers.coffee b/src/helpers.coffee index d82800aeae..b7d73acfa6 100644 --- a/src/helpers.coffee +++ b/src/helpers.coffee @@ -2,22 +2,6 @@ # the **Lexer**, **Rewriter**, and the **Nodes**. Merge objects, flatten # arrays, count characters, that sort of thing. - -# Adds async/await like functionality for Cake -exports.async = (generatorFunction) -> - return (args...) -> - next = (val) -> proceed generator.next val - raise = (err) -> proceed generator.throw err - proceed = ({done, value}) -> - promise = Promise.resolve value - if done - promise - else - promise.then next, raise - - generator = generatorFunction.apply this, args - proceed generator.next() - # Peek at the beginning of a given string to see if it matches a sequence. exports.starts = (string, literal, start) -> literal is string.substr start, literal.length diff --git a/test/comprehensions.coffee b/test/comprehensions.coffee index cb7c6e4cfa..6bbbda70a1 100644 --- a/test/comprehensions.coffee +++ b/test/comprehensions.coffee @@ -9,12 +9,6 @@ # TODO: refactor comprehension tests -evens = -> - for num in [1, 2, 3, 4, 5, 6] when not (num & 1) - num *= -1 - num -= 2 - num * -1 - test "Basic array comprehensions.", -> nums = (n * n for n in [1, 2, 3] when n & 1) @@ -82,11 +76,17 @@ test "Range comprehension gymnastics.", -> test "Multiline array comprehension with filter.", -> - eq evens() + '', '4,6,8' + evens = for num in [1, 2, 3, 4, 5, 6] when not (num & 1) + num *= -1 + num -= 2 + num * -1 + eq evens + '', '4,6,8' + + + test "The in operator still works, standalone.", -> -test "The in operator still works, standalone.", -> - ok 2 of evens() + ok 2 of evens test "all isn't reserved.", -> diff --git a/test/importing.coffee b/test/importing.coffee index 95dcfa46cb..96fff02028 100644 --- a/test/importing.coffee +++ b/test/importing.coffee @@ -2,6 +2,20 @@ # --------- unless window? or testingBrowser? + test "coffeescript modules can be imported and executed", -> + + magicKey = __filename + magicValue = 0xFFFF + + if global[magicKey]? + if exports? + local = magicValue + exports.method = -> local + else + global[magicKey] = {} + if require?.extensions? + ok require(__filename).method() is magicValue + delete global[magicKey] test "javascript modules can be imported", -> magicVal = 1 From 0cb15e4e8386f4bf40297cfcb18e45d55e2a620a Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 22 Oct 2016 18:13:26 -0700 Subject: [PATCH 25/35] Only run async tests where async/await is supported (Node 7+ with --harmony, for now) --- Cakefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cakefile b/Cakefile index cf538b870b..ffd96e2755 100644 --- a/Cakefile +++ b/Cakefile @@ -280,10 +280,10 @@ runTests = (CoffeeScript) -> # Run every test in the `test` folder, recording failures. files = fs.readdirSync 'test' - # Ignore generators test file if generators are not available - generatorsAreAvailable = '--harmony' in process.execArgv or - '--harmony-generators' in process.execArgv - files.splice files.indexOf('generators.coffee'), 1 if not generatorsAreAvailable + # Ignore async test file if async/await is not available + asyncSupported = parseInt(process.versions.node.split('.')[0]) >= 7 and + ('--harmony' in process.execArgv or '--harmony-async-await' in process.execArgv) + files.splice files.indexOf('async.coffee'), 1 unless asyncSupported for file in files when helpers.isCoffee file literate = helpers.isLiterate file From 75593d77f5f21529c589d33bd37c01541d9cb142 Mon Sep 17 00:00:00 2001 From: Gabe Date: Sat, 22 Oct 2016 18:44:28 -0700 Subject: [PATCH 26/35] remove 'async' from JS reserved words --- lib/coffee-script/lexer.js | 2 +- src/cake.coffee | 2 +- src/lexer.coffee | 2 +- test/importing.coffee | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index 8b44b30543..b74e613244 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -984,7 +984,7 @@ COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); - RESERVED = ['case', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'native', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'async']; + RESERVED = ['case', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'native', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static']; STRICT_PROSCRIBED = ['arguments', 'eval']; diff --git a/src/cake.coffee b/src/cake.coffee index cd769a3526..f1a87f26b0 100644 --- a/src/cake.coffee +++ b/src/cake.coffee @@ -85,4 +85,4 @@ cakefileDirectory = (dir) -> return dir if fs.existsSync path.join dir, 'Cakefile' parent = path.normalize path.join dir, '..' return cakefileDirectory parent unless parent is dir - throw new Error "Cakefile not found in #{process.cwd()}" \ No newline at end of file + throw new Error "Cakefile not found in #{process.cwd()}" diff --git a/src/lexer.coffee b/src/lexer.coffee index 8794c2e7ab..3b67ab296b 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -851,7 +851,7 @@ COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat COFFEE_ALIASES RESERVED = [ 'case', 'function', 'var', 'void', 'with', 'const', 'let', 'enum' 'native', 'implements', 'interface', 'package', 'private' - 'protected', 'public', 'static', 'async' + 'protected', 'public', 'static' ] STRICT_PROSCRIBED = ['arguments', 'eval'] diff --git a/test/importing.coffee b/test/importing.coffee index 95dcfa46cb..c5a824695e 100644 --- a/test/importing.coffee +++ b/test/importing.coffee @@ -2,7 +2,6 @@ # --------- unless window? or testingBrowser? - test "javascript modules can be imported", -> magicVal = 1 for module in 'import.js import2 .import2 import.extension.js import.unknownextension .coffee .coffee.md'.split ' ' From f1572c3c43ca2706bb30bab04201b1e296756cb2 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 22 Oct 2016 22:48:05 -0700 Subject: [PATCH 27/35] The async tests should use their own special async-capable version of `global.test`, which is only loaded for the async tests and only loaded by async-capable environments --- Cakefile | 12 ++++++++---- test/async.coffee | 23 +++++++++++++++++++++-- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Cakefile b/Cakefile index ffd96e2755..8705e7bb23 100644 --- a/Cakefile +++ b/Cakefile @@ -220,10 +220,14 @@ task 'bench', 'quick benchmark of compilation time', -> # Run the CoffeeScript test suite. runTests = (CoffeeScript) -> CoffeeScript.register() - startTime = Date.now() - currentFile = null - passedTests = 0 - failures = [] + startTime = Date.now() + + # These are attached to `global` so that they’re accessible from within + # `test/async.coffee`, which has an async-capable version of + # `global.test`. + global.currentFile = null + global.passedTests = 0 + global.failures = [] global[name] = func for name, func of require 'assert' diff --git a/test/async.coffee b/test/async.coffee index 959bddd85a..649f7467c7 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -1,3 +1,22 @@ +# Functions that contain the `await` keyword will compile into async +# functions, which currently only Node 7+ in harmony mode can even +# evaluate, much less run. Therefore we need to prevent runtimes +# which will choke on such code from even loading it. This file is +# only loaded by async-capable environments, so we redefine `test` +# here even though it is based on `test` defined in `Cakefile`. +# It replaces `test` for this file, and adds to the tracked +# `passedTests` and `failures` arrays which are global objects. +test = (description, fn) -> + try + fn.test = {description, currentFile} + await fn.call(fn) + ++passedTests + catch e + failures.push + filename: currentFile + error: e + description: description if description? + source: fn.toString() if fn.toString? # always fulfills @@ -77,7 +96,7 @@ test "async `this` scoping", -> bnd = null ubnd = null nst = null - obj = + obj = bound: -> return do => await return this @@ -131,7 +150,7 @@ test "`await` inside IIFEs", -> await winning(1) catch e await winning(4) - + z = for i in [0..5] a = i * i await winning(a) From 8c289dcf30e7e07e7dcddcd4397504d97b13addb Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sat, 22 Oct 2016 22:56:45 -0700 Subject: [PATCH 28/35] =?UTF-8?q?Reverting=20rename=20of=20`async`,=20it?= =?UTF-8?q?=E2=80=99s=20not=20a=20reserved=20word=20so=20there=E2=80=99s?= =?UTF-8?q?=20no=20longer=20a=20need=20for=20this=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/functions.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/functions.coffee b/test/functions.coffee index a71a6c4a85..005700cda2 100644 --- a/test/functions.coffee +++ b/test/functions.coffee @@ -164,17 +164,17 @@ test "destructuring in function definition", -> ) {a: 5} ajax = (url, { - isAsync = true, + async = true, beforeSend = (->), cache = true, method = 'get', data = {} }) -> - {url, isAsync, beforeSend, cache, method, data} + {url, async, beforeSend, cache, method, data} fn = -> deepEqual ajax('/home', beforeSend: fn, cache: null, method: 'post'), { - url: '/home', isAsync: true, beforeSend: fn, cache: true, method: 'post', data: {} + url: '/home', async: true, beforeSend: fn, cache: true, method: 'post', data: {} } test "#4005: `([a = {}]..., b) ->` weirdness", -> From 04c6ba47549a95e491972f1b359285e69f3d479f Mon Sep 17 00:00:00 2001 From: Gabe Date: Sun, 23 Oct 2016 11:41:18 -0700 Subject: [PATCH 29/35] async test refactoring and additions --- test/async.coffee | 19 +++++++++++-------- test/error_messages.coffee | 7 +++++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/test/async.coffee b/test/async.coffee index 649f7467c7..32f1d65f21 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -161,14 +161,6 @@ test "`await` inside IIFEs", -> arrayEq z, [0, 1, 4, 9, 16, 25] -test "error if function contains both `await`, and `yield` or `yieldfrom`", -> - throws -> CoffeeScript.compile '()-> yield 5; await a;' - throws -> CoffeeScript.compile '()-> yield from a; await b;' - -test "error if `await` occurs outside of a function", -> - throws -> CoffeeScript.compile 'await 1' - - test "error handling", -> res = null val = 0 @@ -188,3 +180,14 @@ test "error handling", -> ok res.message? eq res.message, "fail" + +test "await expression evaluates to argument if not A+", -> + eq(await 4, 4) + + +test "implicit call with `await`", -> + addOne = (arg) -> arg + 1 + + a = addOne await 3 + eq a, 4 + diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 390fca9e35..d6814c5d9b 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -1142,3 +1142,10 @@ test "imported members cannot be reassigned", -> export foo = 'bar' ^^^ ''' + +test "function cannot contain both `await`, and `yield` or `yieldfrom`", -> + throws -> CoffeeScript.compile '()-> yield 5; await a;' + throws -> CoffeeScript.compile '()-> yield from a; await b;' + +test "Cannnot have `await` outside a function", -> + throws -> CoffeeScript.compile 'await 1' From 85a6d5606b33f0546459335983da086c6eeb7ea3 Mon Sep 17 00:00:00 2001 From: Gabe Date: Tue, 25 Oct 2016 02:59:29 -0700 Subject: [PATCH 30/35] oops --- lib/coffee-script/lexer.js | 7 +++++++ test/async.coffee | 16 ++++++++++++++++ test/error_messages.coffee | 7 ------- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index b74e613244..8c235fc8a9 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -88,6 +88,9 @@ if (this.value() === '*') { this.tokens[this.tokens.length - 1][0] = 'IMPORT_ALL'; } + if (this.value() === 'await') { + this.tokens[this.tokens.length - 1][0] = 'IDENTIFIER'; + } this.token('AS', id); return id.length; } @@ -126,6 +129,10 @@ id = '!' + id; } } + } else if (tag === 'AWAIT') { + if (this.seenExport && prev[0] === 'AS') { + tag = 'IDENTIFIER'; + } } } if (tag === 'IDENTIFIER' && indexOf.call(RESERVED, id) >= 0) { diff --git a/test/async.coffee b/test/async.coffee index 32f1d65f21..5f563affd9 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -191,3 +191,19 @@ test "implicit call with `await`", -> a = addOne await 3 eq a, 4 +test "function cannot contain both `await`, and `yield` or `yieldfrom`", -> + throws -> CoffeeScript.compile '()-> yield 5; await a;' + throws -> CoffeeScript.compile '()-> yield from a; await b;' + +test "Cannnot have `await` outside a function", -> + throws -> CoffeeScript.compile 'await 1' + +test "ignore await in import lists", -> + CoffeeScript.compile "import {await as otherVar} from 'lib'" + throws -> + CoffeeScript.compile "import await from 'lib'" + +test "ignore await in export lists", -> + CoffeeScript.compile "export {otherVar as await}" + throws -> + CoffeeScript.compile "export {await as otherVar}" diff --git a/test/error_messages.coffee b/test/error_messages.coffee index d6814c5d9b..390fca9e35 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -1142,10 +1142,3 @@ test "imported members cannot be reassigned", -> export foo = 'bar' ^^^ ''' - -test "function cannot contain both `await`, and `yield` or `yieldfrom`", -> - throws -> CoffeeScript.compile '()-> yield 5; await a;' - throws -> CoffeeScript.compile '()-> yield from a; await b;' - -test "Cannnot have `await` outside a function", -> - throws -> CoffeeScript.compile 'await 1' From 03890a7425ee8c172e7d807b272f2769b67ab49a Mon Sep 17 00:00:00 2001 From: Gabe Date: Tue, 25 Oct 2016 16:52:56 -0700 Subject: [PATCH 31/35] sync --- lib/coffee-script/lexer.js | 7 ------- test/async.coffee | 10 ---------- 2 files changed, 17 deletions(-) diff --git a/lib/coffee-script/lexer.js b/lib/coffee-script/lexer.js index dff0cb4205..1df4cc5367 100644 --- a/lib/coffee-script/lexer.js +++ b/lib/coffee-script/lexer.js @@ -88,9 +88,6 @@ if (this.value() === '*') { this.tokens[this.tokens.length - 1][0] = 'IMPORT_ALL'; } - if (this.value() === 'await') { - this.tokens[this.tokens.length - 1][0] = 'IDENTIFIER'; - } this.token('AS', id); return id.length; } @@ -129,10 +126,6 @@ id = '!' + id; } } - } else if (tag === 'AWAIT') { - if (this.seenExport && prev[0] === 'AS') { - tag = 'IDENTIFIER'; - } } } if (tag === 'IDENTIFIER' && indexOf.call(RESERVED, id) >= 0) { diff --git a/test/async.coffee b/test/async.coffee index 5f563affd9..d0b5241015 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -197,13 +197,3 @@ test "function cannot contain both `await`, and `yield` or `yieldfrom`", -> test "Cannnot have `await` outside a function", -> throws -> CoffeeScript.compile 'await 1' - -test "ignore await in import lists", -> - CoffeeScript.compile "import {await as otherVar} from 'lib'" - throws -> - CoffeeScript.compile "import await from 'lib'" - -test "ignore await in export lists", -> - CoffeeScript.compile "export {otherVar as await}" - throws -> - CoffeeScript.compile "export {await as otherVar}" From cc537387b54d41728511d43807ec93d6be7f49c5 Mon Sep 17 00:00:00 2001 From: Gabe Date: Thu, 27 Oct 2016 13:16:07 -0700 Subject: [PATCH 32/35] better error reporting for `await` --- lib/coffee-script/nodes.js | 15 +++++++++------ src/nodes.coffee | 13 ++++++------- test/async.coffee | 7 ------- test/error_messages.coffee | 31 +++++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index 62a3479449..ab26b278e3 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -2394,13 +2394,16 @@ this.isGenerator = !!this.body.contains(function(node) { return (node instanceof Op && node.isYield()) || node instanceof YieldReturn; }); - this.isAsync = !!this.body.contains(function(node) { - return (node instanceof Op && node.isAwait()) || node instanceof AwaitReturn; + this.isAsync = !!this.body.contains((node) => { + if ((node instanceof Op && node.isAwait()) || node instanceof AwaitReturn) { + if (this.isGenerator) { + node.error("generator function can't contain await"); + } + return true; + } else { + return false; + } }); - this.isContinuation = this.isGenerator || this.isAsync; - if (this.isAsync && this.isGenerator) { - this.error("function can't contain both yield and await"); - } } Code.prototype.children = ['params', 'body']; diff --git a/src/nodes.coffee b/src/nodes.coffee index a6a093becb..18ab30a460 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -1604,13 +1604,12 @@ exports.Code = class Code extends Base @bound = tag is 'boundfunc' @isGenerator = !!@body.contains (node) -> (node instanceof Op and node.isYield()) or node instanceof YieldReturn - @isAsync = !!@body.contains (node) -> - (node instanceof Op and node.isAwait()) or node instanceof AwaitReturn - - @isContinuation = @isGenerator or @isAsync - - if @isAsync and @isGenerator - @error "function can't contain both yield and await" + @isAsync = !!@body.contains (node) => + if (node instanceof Op and node.isAwait()) or node instanceof AwaitReturn + node.error "generator function can't contain await" if @isGenerator + true + else + false children: ['params', 'body'] diff --git a/test/async.coffee b/test/async.coffee index d0b5241015..1be87f019b 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -190,10 +190,3 @@ test "implicit call with `await`", -> a = addOne await 3 eq a, 4 - -test "function cannot contain both `await`, and `yield` or `yieldfrom`", -> - throws -> CoffeeScript.compile '()-> yield 5; await a;' - throws -> CoffeeScript.compile '()-> yield from a; await b;' - -test "Cannnot have `await` outside a function", -> - throws -> CoffeeScript.compile 'await 1' diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 95b141535c..4b3ca57175 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -1169,3 +1169,34 @@ test "CoffeeScript keywords cannot be used as local names in import list aliases import { bar as unless, baz as bar } from 'lib' ^^^^^^ ''' + +test "function cannot contain both `await` and `yield`", -> + assertErrorFormat ''' + f = () -> + yield 5 + await a + ''', ''' + [stdin]:3:3: error: generator function can't contain await + await a + ^^^^^^^ + ''' + +test "function cannot contain both `await` and `yieldfrom`", -> + assertErrorFormat ''' + f = () -> + yield from a + await b + ''', ''' + [stdin]:3:3: error: generator function can't contain await + await b + ^^^^^^^ + ''' + +test "Cannnot have `await` outside a function", -> + assertErrorFormat ''' + await 1 + ''', ''' + [stdin]:1:1: error: await can only occur inside functions + await 1 + ^^^^^^^ + ''' From 5042d7a87f7c1415cd7e014b919a02585562f5e7 Mon Sep 17 00:00:00 2001 From: Gabe Date: Thu, 27 Oct 2016 18:50:21 -0700 Subject: [PATCH 33/35] more stuff geoffrey wants --- lib/coffee-script/nodes.js | 20 ++++++++++---------- src/nodes.coffee | 16 +++++++++------- test/async.coffee | 5 +++-- test/error_messages.coffee | 4 ++-- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index ab26b278e3..fcd3253ca2 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -2391,17 +2391,17 @@ this.params = params || []; this.body = body || new Block; this.bound = tag === 'boundfunc'; - this.isGenerator = !!this.body.contains(function(node) { - return (node instanceof Op && node.isYield()) || node instanceof YieldReturn; - }); - this.isAsync = !!this.body.contains((node) => { + this.isGenerator = false; + this.isAsync = false; + this.body.traverseChildren(false, (node) => { + if ((node instanceof Op && node.isYield()) || node instanceof YieldReturn) { + this.isGenerator = true; + } if ((node instanceof Op && node.isAwait()) || node instanceof AwaitReturn) { - if (this.isGenerator) { - node.error("generator function can't contain await"); - } - return true; - } else { - return false; + this.isAsync = true; + } + if (this.isGenerator && this.isAsync) { + return node.error("function can't contain both yield and await"); } }); } diff --git a/src/nodes.coffee b/src/nodes.coffee index 18ab30a460..2ce5c2d043 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -1602,14 +1602,16 @@ exports.Code = class Code extends Base @params = params or [] @body = body or new Block @bound = tag is 'boundfunc' - @isGenerator = !!@body.contains (node) -> - (node instanceof Op and node.isYield()) or node instanceof YieldReturn - @isAsync = !!@body.contains (node) => + @isGenerator = no + @isAsync = no + + @body.traverseChildren no, (node) => + if (node instanceof Op and node.isYield()) or node instanceof YieldReturn + @isGenerator = yes if (node instanceof Op and node.isAwait()) or node instanceof AwaitReturn - node.error "generator function can't contain await" if @isGenerator - true - else - false + @isAsync = yes + if @isGenerator and @isAsync + node.error "function can't contain both yield and await" children: ['params', 'body'] diff --git a/test/async.coffee b/test/async.coffee index 1be87f019b..7f39d2aa4c 100644 --- a/test/async.coffee +++ b/test/async.coffee @@ -32,8 +32,10 @@ test "async as argument", -> test "explicit async", -> a = do -> - await return [1, 2, 3] + await return 5 eq a.constructor, Promise + a.then (val) -> + eq val, 5 test "implicit async", -> a = do -> @@ -171,7 +173,6 @@ test "error handling", -> val = 7 # to assure the catch block runs return e - b = do -> res = await a() diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 4b3ca57175..05f3b057e0 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -1176,7 +1176,7 @@ test "function cannot contain both `await` and `yield`", -> yield 5 await a ''', ''' - [stdin]:3:3: error: generator function can't contain await + [stdin]:3:3: error: function can't contain both yield and await await a ^^^^^^^ ''' @@ -1187,7 +1187,7 @@ test "function cannot contain both `await` and `yieldfrom`", -> yield from a await b ''', ''' - [stdin]:3:3: error: generator function can't contain await + [stdin]:3:3: error: function can't contain both yield and await await b ^^^^^^^ ''' From e7d5fd9c2d7975c9c2a0719ff3b8cfa0ccba393e Mon Sep 17 00:00:00 2001 From: Gabe Date: Thu, 27 Oct 2016 19:24:20 -0700 Subject: [PATCH 34/35] fixed litcoffee tests --- test/literate.litcoffee | 108 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/test/literate.litcoffee b/test/literate.litcoffee index c296827580..df40dff858 100644 --- a/test/literate.litcoffee +++ b/test/literate.litcoffee @@ -55,3 +55,111 @@ Tabs work too: test "tabbed code", -> ok yes + +--- + + # keep track of whether code blocks are executed or not + executed = false + +

+ + executed = true # should not execute, this is just HTML para, not code! + +

+ + test "should ignore indented sections inside HTML", -> + eq executed, false + +--- + +* A list item with a code block: + + test "basic literate CoffeeScript parsing", -> + ok yes + +--- + +* Lorem ipsum dolor sit amet, consectetuer adipiscing elit. + Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, + viverra nec, fringilla in, laoreet vitae, risus. + +* Donec sit amet nisl. Aliquam semper ipsum sit amet velit. + Suspendisse id sem consectetuer libero luctus adipiscing. + +--- + +1. This is a list item with two paragraphs. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. Aliquam hendrerit + mi posuere lectus. + + Vestibulum enim wisi, viverra nec, fringilla in, laoreet + vitae, risus. Donec sit amet nisl. Aliquam semper ipsum + sit amet velit. + +2. Suspendisse id sem consectetuer libero luctus adipiscing. + +--- + +1. This is a list item with two paragraphs. Lorem ipsum dolor + sit amet, consectetuer adipiscing elit. Aliquam hendrerit + mi posuere lectus. + + Vestibulum enim wisi, viverra nec, fringilla in, laoreet + vitae, risus. Donec sit amet nisl. Aliquam semper ipsum + sit amet velit. + +2. Suspendisse id sem consectetuer libero luctus adipiscing. + +--- + +* A list item with a blockquote: + + > This is a blockquote + > inside a list item. + +--- + +This next one probably passes because a string is inoffensive in compiled js, also, can't get `marked` to parse it correctly, and not sure if empty line is permitted between title and reference + +This is [an example][id] reference-style link. +[id]: http://example.com/ + + "Optional Title Here" + +--- + + executed = no + +1986. What a great season. + executed = yes + +and test... + + test "should recognise indented code blocks in lists", -> + ok executed + +--- + + executed = no + +1986. What a great season. + + executed = yes + +and test... + + test "should recognise indented code blocks in lists with empty line as separator", -> + ok executed + +--- + + executed = no + +1986\. What a great season. + executed = yes + +and test... + + test "should ignore indented code in escaped list like number", -> + eq executed, no + From 9fcb43226e916d841a90d28203fb8be1ef34f2f9 Mon Sep 17 00:00:00 2001 From: Gabe Date: Fri, 28 Oct 2016 00:36:42 -0700 Subject: [PATCH 35/35] change test title --- test/error_messages.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/error_messages.coffee b/test/error_messages.coffee index 05f3b057e0..289a665d97 100644 --- a/test/error_messages.coffee +++ b/test/error_messages.coffee @@ -1181,7 +1181,7 @@ test "function cannot contain both `await` and `yield`", -> ^^^^^^^ ''' -test "function cannot contain both `await` and `yieldfrom`", -> +test "function cannot contain both `await` and `yield from`", -> assertErrorFormat ''' f = () -> yield from a