diff --git a/lib/coffee_script/grammar.y b/lib/coffee_script/grammar.y index 9f8378ef..8808d9fc 100644 --- a/lib/coffee_script/grammar.y +++ b/lib/coffee_script/grammar.y @@ -13,7 +13,6 @@ token FOR IN OF BY WHEN WHILE token SWITCH LEADING_WHEN token DELETE INSTANCEOF TYPEOF token SUPER EXTENDS -token ARGUMENTS token NEWLINE token COMMENT token JS @@ -98,7 +97,6 @@ rule | REGEX { result = LiteralNode.new(val[0]) } | BREAK { result = LiteralNode.new(val[0]) } | CONTINUE { result = LiteralNode.new(val[0]) } - | ARGUMENTS { result = LiteralNode.new(val[0]) } | TRUE { result = LiteralNode.new(Value.new(true)) } | FALSE { result = LiteralNode.new(Value.new(false)) } | YES { result = LiteralNode.new(Value.new(true)) } diff --git a/lib/coffee_script/lexer.rb b/lib/coffee_script/lexer.rb index 99f40a7f..8ce26df2 100644 --- a/lib/coffee_script/lexer.rb +++ b/lib/coffee_script/lexer.rb @@ -15,8 +15,7 @@ module CoffeeScript "for", "in", "of", "by", "where", "while", "delete", "instanceof", "typeof", "switch", "when", - "super", "extends", - "arguments"] + "super", "extends"] # Token matching regexes. IDENTIFIER = /\A([a-zA-Z$_](\w|\$)*)/ diff --git a/lib/coffee_script/nodes.rb b/lib/coffee_script/nodes.rb index aaaec0a4..87648c24 100644 --- a/lib/coffee_script/nodes.rb +++ b/lib/coffee_script/nodes.rb @@ -153,7 +153,7 @@ module CoffeeScript # at the top. def compile_with_declarations(o={}) code = compile_node(o) - args = self.contains? {|n| n.is_a?(LiteralNode) && n.arguments? } + args = self.contains? {|n| n.is_a?(ValueNode) && n.arguments? } argv = args && o[:scope].check('arguments') ? '' : 'var ' code = "#{idt}#{argv}arguments = Array.prototype.slice.call(arguments, 0);\n#{code}" if args code = "#{idt}var #{o[:scope].compiled_assignments};\n#{code}" if o[:scope].assignments?(self) @@ -203,10 +203,6 @@ module CoffeeScript end alias_method :statement_only?, :statement? - def arguments? - @value.to_s == 'arguments' - end - def compile_node(o) indent = statement? ? idt : '' ending = statement? ? ';' : '' @@ -361,6 +357,10 @@ module CoffeeScript properties? && @properties.last.is_a?(SliceNode) end + def arguments? + @base.to_s == 'arguments' + end + def unwrap @properties.empty? ? @base : self end diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb index c9340204..f0ba032b 100644 --- a/lib/coffee_script/parser.rb +++ b/lib/coffee_script/parser.rb @@ -10,7 +10,7 @@ module CoffeeScript class Parser < Racc::Parser -module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 462) +module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 460) # Lex and parse a CoffeeScript. def parse(code) # Uncomment the following line to enable grammar debugging, in combination @@ -34,351 +34,348 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 462) ##### State transition tables begin ### clist = [ -'135,60,143,28,31,34,39,42,47,53,57,62,65,105,106,107,178,105,106,107', -'287,288,102,271,104,77,102,262,104,258,58,66,131,136,60,50,300,152,262', -'-186,-186,166,147,151,171,43,50,111,55,310,202,13,17,186,112,187,60', -'147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164', -'168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144', -'148,172,60,177,13,17,200,29,274,35,38,11,46,208,28,31,34,39,42,47,53', -'57,62,65,11,202,212,213,1,-186,-186,21,25,147,151,202,97,41,291,270', -'54,58,66,67,96,296,60,210,6,12,60,22,97,32,36,97,43,251,50,55,96,13', -'17,96,72,74,4,9,15,19,13,17,200,60,124,45,49,201,84,50,13,17,200,262', -'13,17,186,279,97,147,151,50,13,17,297,50,96,98,50,280,98,-186,-186,281', -'2,7,206,207,60,29,189,35,38,11,46,60,28,31,34,39,42,47,53,57,62,65,84', -'13,17,97,1,50,190,21,25,-186,-186,96,195,41,-186,-186,54,58,66,67,287', -'288,-186,-186,6,12,196,22,197,32,36,290,43,283,50,55,-186,-186,13,17', -'72,74,4,9,15,19,50,2,7,147,151,45,49,147,151,155,158,161,163,165,130', -'134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,13,17,-186', -'-186,2,7,13,17,77,29,121,35,38,11,46,319,28,31,34,39,42,47,53,57,62', -'65,105,106,107,60,1,212,213,21,25,102,209,104,211,41,124,176,54,58,66', -'67,,,,,6,12,,22,,32,36,,43,,50,55,,105,106,107,72,74,4,9,15,19,102,', -'104,,313,45,49,147,151,155,158,161,163,165,130,134,139,142,146,150,154', -'157,160,164,168,129,133,138,141,145,,,,,2,7,,,,29,,35,38,11,46,,28,31', -'34,39,42,47,53,57,62,65,105,106,107,,1,,,21,25,102,,104,,41,,,54,58', -'66,67,,,,,6,12,,22,,32,36,,43,,50,55,,105,106,107,72,74,4,9,15,19,102', -',104,,,45,49,147,151,155,158,161,163,165,130,134,139,142,146,150,154', -'157,160,164,168,129,133,138,141,145,,,,,2,7,,,,29,,35,38,11,46,,28,31', -'34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12', -',22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,147,151,155,158', -'161,163,165,130,134,139,142,146,150,154,157,160,164,168,129,133,138', -'141,145,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,', -',,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,', -'72,74,4,9,15,19,,,,,,45,49,147,151,155,158,161,163,165,130,134,139,142', -'146,150,154,157,160,164,168,129,133,138,141,145,,,,,2,7,,,,29,,35,38', -'11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66', -'67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,147', -'151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164,168', -'129,133,138,141,145,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53', -'57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43', -',50,55,,,,,72,74,4,9,15,19,,,,,,45,49,147,151,155,158,161,163,165,130', -'134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,,,,,2,7', -',,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,', -'41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19', -',,,,,45,49,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157', -'160,164,168,129,133,138,141,145,,,,,2,7,,,,29,,35,38,11,46,,28,31,34', -'39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22', -',32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,147,151,155,158,161', -'163,165,130,134,139,142,146,150,154,157,147,151,155,158,161,163,165', -'130,134,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,', -',1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72', -'74,4,9,15,19,,,,,,45,49,147,151,155,158,161,163,165,130,134,139,142', -'146,150,154,157,147,151,155,158,161,163,165,130,134,,,,2,7,,,,29,,35', -'38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58', -'66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49', -'147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,147,151', -'155,158,161,163,165,130,134,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42', -'47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36', -',43,,50,55,,,,,72,74,4,9,15,19,,,,,303,45,49,147,151,155,158,161,163', -'165,130,134,139,142,146,150,154,157,147,151,155,158,161,163,165,130', -'134,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,', -',21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,147,151,155,158,161,163,165,130,134,147,151,155', -'158,161,163,165,130,134,147,151,155,158,161,163,165,,,2,7,,,,29,,35', -'38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58', -'66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49', -'147,151,155,158,161,163,165,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,113,,,,72,74,4,9,15,19', -',,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31', -'34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12', -',22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,', -',,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,', -'72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35', -'38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58', -'66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47', -'53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,', -'43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25', -',,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15', -'19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28', -'31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6', -'12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,', -',,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65', -',,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,122', -',,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35', -'38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58', -'66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47', -'53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,', -'43,,50,55,275,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,', -',,,2,7,13,17,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,', -',21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,', -',,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34', -'39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22', -',32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1', -',,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,', -',,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34', -'39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22', -',32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1', -',,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,', -',,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34', -'39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22', -',32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1', -',,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,', -',,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34', -'39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22', -',32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1', -',,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,', -',,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34', -'39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22', -',32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1', -',,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,113,,,,72,74,4,9,15,19,,,,,,45,49,,,', -',,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53', -'57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43', -',50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7', -',,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,', -'41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19', -',,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31', -'34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12', -',22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,', -',,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,', -',,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,', -'72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35', -'38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58', -'66,67,,,,,6,12,,22,,32,36,,43,,50,55,113,,,,72,74,4,9,15,19,,,,,,45', -'49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42', -'47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36', -',43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,', -',2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25', -',,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15', -'19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28', -'31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6', -'12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,', -',,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65', -',,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,', -',,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35', -'38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58', -'66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49', -',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47', -'53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,', -'43,,50,55,60,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,', -',,2,7,13,17,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,', -'21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,', -',,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34', -'39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22', -',32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,', -',,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1', -',,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74', -'4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11', -'46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67', -',,,,6,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,', -',,,,,,,,,,,,,,,,,,,,,2,7,,,,29,,35,38,11,46,,28,31,34,39,42,47,53,57', -'62,65,,,,,1,,,21,25,,,,,41,,,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50', -'55,,,,,72,74,4,9,15,19,,,,,,45,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', -'29,,35,38,11,46,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,,,,,41', -',,54,58,66,67,,,,,6,12,,22,,32,36,,43,,50,55,135,,143,,72,74,4,9,15', -'19,,,,,,45,49,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,2,7,,,,29,,35,38', -',46,,,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160', -'164,168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140', -'144,148,135,,143,,,,,,,,316,,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166', -',,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150,154', -'157,160,164,168,129,133,138,141,145,149,153,156,159,162,167,128,132', -'137,140,144,148,28,31,34,39,42,47,53,57,62,65,322,,,,1,,,21,25,,,,,41', -',,54,58,66,,,,,,,12,,22,,32,36,,43,,50,55,,,,,72,74,4,9,15,19,,28,31', -'34,39,42,47,53,57,62,65,,,,,,,,,,,,,,,,,,58,66,,,,,2,7,,,,29,,35,38', -'43,46,,55,,,,,,,,,,,,,,,,,,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21', -'25,,,,,41,,,54,58,66,67,,29,,35,38,12,46,22,,32,36,,43,,50,55,,,,,72', -'74,4,9,15,19,,,,,,45,49,,,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21', -'25,,,,,41,2,7,54,58,66,29,,35,38,,46,12,,22,,32,36,,43,,50,55,,,,,72', -'74,4,9,15,19,,,,,,,,,,,28,31,34,39,42,47,53,57,62,65,,,,,1,,,21,25,', -',,,41,2,7,54,58,66,29,,35,38,,46,12,,22,,32,36,,43,,50,55,135,,143,', -'72,74,4,9,15,19,,,,,,,,,,,,,,,,323,,,,,,,131,136,,,,152,,,,166,,,2,7', -',,,29,,35,38,,46,,,147,151,155,158,161,163,165,130,134,139,142,146,150', -'154,157,160,164,168,129,133,138,141,145,149,153,156,159,162,167,128', -'132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,', -',152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134,139,142', -'146,150,154,157,160,164,168,129,133,138,141,145,149,153,156,159,162', -'167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131', -'136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134', -'139,142,146,150,154,157,160,164,168,129,133,138,141,145,149,153,156', -'159,162,167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165', -'130,134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,149', -'153,156,159,162,167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161', -'163,165,130,134,139,142,146,150,154,157,160,164,168,129,133,138,141', -'145,149,153,156,159,162,167,128,132,137,140,144,148,135,,143,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155', -'158,161,163,165,130,134,139,142,146,150,154,157,160,164,168,129,133', -'138,141,145,149,153,156,159,162,167,128,132,137,140,144,148,135,,143', -',,,,,,,,,,,,,,,,,,,,,,272,,,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,', -',147,151,155,158,161,163,273,130,134,139,142,146,150,154,157,160,164', -'168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144', -'148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,', -',,,,,,,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157', -'160,164,168,129,133,138,141,145,149,153,156,159,162,167,128,132,137', -'140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,', -'166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150', -'154,157,160,164,168,129,133,138,141,145,149,153,156,159,162,167,128', -'132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,', -',152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134,139,142', -'146,150,154,157,160,164,168,129,133,138,141,145,149,153,156,159,162', -'167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131', -'136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134', -'139,142,146,150,154,157,160,164,168,129,133,138,141,145,149,153,156', -'159,162,167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165', -'130,134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,149', -'153,156,159,162,167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161', -'163,165,130,134,139,142,146,150,154,157,160,164,168,129,133,138,141', -'145,149,153,156,159,162,167,128,132,137,140,144,148,135,,143,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155', -'158,161,163,165,130,134,139,142,146,150,154,157,160,164,168,129,133', -'138,141,145,149,153,156,159,162,167,128,132,137,140,144,148,135,,143', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147', -'151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164,168', -'129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144,148', -'135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,', -',,,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160', -'164,168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140', -'144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166', -',,,,,,,185,,,,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150', -'154,157,160,164,168,129,133,138,141,145,149,153,156,159,162,167,128', -'132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,321,,,,,,,131,136', -',,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134,139', -'142,146,150,154,157,160,164,168,129,133,138,141,145,149,153,156,159', -'162,167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,204,130', -'134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,149,153', -'156,159,162,167,128,132,137,140,144,148,135,,143,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,60,,,,,,,,147,151,155,158,161', -'163,165,130,134,139,142,146,150,154,157,160,164,168,129,133,138,141', -'145,149,153,156,159,162,167,128,132,137,140,144,148,135,,143,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,,,,,,,,,147,151,155', -'158,161,163,165,130,134,139,142,146,150,154,157,160,164,168,129,133', -'138,141,145,149,153,156,159,162,167,128,132,137,140,144,148,135,,143', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,136,,,,152,,,,166,,,,,,,,60,,,,,,,', -'147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164', -'168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144', -'148,131,136,,,,,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130', -'134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,149,153', -'156,159,162,167,128,132,137,140,144,148,131,136,,,,,,,,166,,,,,,,,,', -',,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160', -'164,168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140', -'144,148,131,136,,,,,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165', -'130,134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,149', -'153,156,159,162,167,128,132,137,140,144,148,136,,,,,,,,166,,,,,,,,,', -',,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160', -'164,168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140', -'144,148,136,,,,,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130', -'134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,149,153', -'156,159,162,167,128,132,137,140,144,148,136,,,,,,,,166,,,,,,,,,,,,,', -',,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164', -'168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144', -'148,136,,,,,,,,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134', -'139,142,146,150,154,157,160,164,168,129,133,138,141,145,149,153,156', -'159,162,167,128,132,137,140,144,148,136,,,,,,,,166,,,,,,,,,,,,,,,,147', -'151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164,168', -'129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144,148', -'166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130,134,139,142,146,150', -'154,157,160,164,168,129,133,138,141,145,149,153,156,159,162,167,128', -'132,137,140,144,148,166,,,,,,,,,,,,,,,,147,151,155,158,161,163,165,130', -'134,139,142,146,150,154,157,160,164,168,129,133,138,141,145,149,153', -'156,159,162,167,128,132,137,140,144,148,166,,,,,,,,,,,,,,,,147,151,155', -'158,161,163,165,130,134,139,142,146,150,154,157,160,164,168,129,133', -'138,141,145,149,153,156,159,162,167,128,132,137,140,144,148,147,151', -'155,158,161,163,165,130,134,139,142,146,150,154,157,160,164,168,129', -'133,138,141,145,149,153,156,159,162,167,128,132,137,140,144,148,147', -'151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164,168', -'129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144,148', -'147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160,164', -'168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140,144', -'148,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157,160', -'164,168,129,133,138,141,145,149,153,156,159,162,167,128,132,137,140', -'144,148,147,151,155,158,161,163,165,130,134,139,142,146,150,154,157', -'160,164,168,129,133,138,141,145,149,153,156,159,162,167,128,132,137', -'140,144,148,147,151,155,158,161,163,165,130,134,139,142,146,150,154', -'157,160,164,168,129,133,138,141,145,149,153,156,159,162,167,128,132', -'137,140,144,148,147,151,155,158,161,163,165,130,134,139,142,146,150', -'154,157,160,164,168,129,133,138,141,145,149,153,156,159,162,167,128', -'132,137,140,144,148,147,151,155,158,161,163,165,130,134,139,142,146', -'150,154,157,160,164,168,129,133,138,141,145,149,153,156,159,162,167', -'128,132,137,140,144,148' ] - racc_action_table = arr = Array.new(11012, nil) +'134,54,143,27,30,33,38,42,45,51,56,60,63,102,103,104,181,247,102,103', +'104,262,100,270,101,286,287,100,46,101,57,64,130,135,102,103,104,151', +'54,262,299,164,123,100,170,101,46,49,280,199,8,14,190,123,188,185,142', +'147,150,154,157,159,161,167,129,133,138,141,146,149,153,156,160,163', +'166,128,132,137,140,145,148,152,155,158,162,165,127,131,136,139,144', +'171,12,180,8,14,201,25,278,31,34,12,40,204,27,30,33,38,42,45,51,56,60', +'63,199,54,8,14,2,54,96,20,24,54,199,54,96,41,93,293,52,57,64,65,93,265', +'187,96,7,13,54,21,209,32,35,93,282,46,49,142,147,72,3,67,71,74,5,10', +'16,8,14,201,46,311,37,44,198,262,46,8,14,201,142,147,46,119,96,294,54', +'46,8,14,190,96,93,-185,-185,8,14,-185,-185,93,290,72,3,212,213,54,25', +'54,31,34,12,40,194,27,30,33,38,42,45,51,56,60,63,195,8,14,46,2,94,113', +'20,24,196,46,279,94,41,8,14,52,57,64,65,-185,-185,-185,-185,7,13,108', +'21,277,32,35,142,147,46,49,78,102,103,104,67,71,74,5,10,16,100,257,101', +'206,207,37,44,142,147,150,154,157,159,161,167,129,133,138,141,146,149', +'153,156,160,163,166,128,132,137,140,212,213,-185,-185,72,3,-185,-185', +'316,25,179,31,34,12,40,208,27,30,33,38,42,45,51,56,60,63,102,103,104', +'81,2,286,287,20,24,100,211,101,78,41,8,14,52,57,64,65,142,147,-185,-185', +'7,13,81,21,289,32,35,-185,-185,46,49,,102,103,104,67,71,74,5,10,16,100', +',101,8,14,37,44,142,147,150,154,157,159,161,167,129,133,138,141,146', +'149,153,156,160,163,166,128,132,137,140,,,,,72,3,,,,25,,31,34,12,40', +',27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,', +',,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,142,147,150', +'154,157,159,161,167,129,133,138,141,146,149,153,156,160,163,166,128', +'132,137,140,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60', +'63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,', +',,67,71,74,5,10,16,,,,,,37,44,142,147,150,154,157,159,161,167,129,133', +'138,141,146,149,153,156,160,163,166,128,132,137,140,,,,,72,3,,,,25,', +'31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52', +'57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44', +'142,147,150,154,157,159,161,167,129,133,138,141,146,149,153,156,160', +'163,166,128,132,137,140,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42', +'45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35', +',,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,142,147,150,154,157,159,161', +'167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,,,,', +'72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24', +',,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16', +',,,,,37,44,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153', +'156,160,163,166,128,132,137,140,,,,,72,3,,,,25,,31,34,12,40,,27,30,33', +'38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21', +',32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,142,147,150,154,157,159', +'161,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140', +',,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20', +'24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10', +'16,,,,,,37,44,142,147,150,154,157,159,161,167,129,133,138,141,146,149', +'153,142,147,150,154,157,159,161,167,129,,,,72,3,,,,25,,31,34,12,40,', +'27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,', +',7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,142,147,150', +'154,157,159,161,167,129,133,138,141,146,149,153,142,147,150,154,157', +'159,161,167,129,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56', +'60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49', +',,,,67,71,74,5,10,16,,,,,,37,44,142,147,150,154,157,159,161,167,129', +'133,138,141,146,149,153,142,147,150,154,157,159,161,167,129,,,,72,3', +',,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,', +'41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,', +',,,37,44,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153', +'142,147,150,154,157,159,161,167,129,,,,72,3,,,,25,,31,34,12,40,,27,30', +'33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13', +',21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,142,147,150,154,157', +'159,161,167,129,142,147,150,154,157,159,161,167,129,142,147,150,154', +'157,159,161,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63', +',,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67', +'71,74,5,10,16,,,,,,37,44,142,147,150,154,157,159,161,,,,,,,,,,,,,,,', +',,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,', +'20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,110,,,,67,71', +'74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12', +'40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65', +',,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,312,37,44,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51', +'56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46', +'49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,', +',,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41', +',,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,', +'37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38', +'42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32', +'35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,', +',,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20', +'24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10', +'16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27', +'30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7', +'13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,', +',,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63', +',,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67', +'71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34', +'12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64', +'65,,,,,7,13,,21,,32,35,,,46,49,,120,,,67,71,74,5,10,16,,,,,,37,44,,', +',,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45', +'51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,', +',46,49,,,,,67,71,74,5,10,16,,,,,302,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,', +',72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24', +',,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16', +',,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30', +'33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13', +',21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,', +',2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71', +'74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12', +'40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65', +',,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,', +',,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56', +'60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49', +',,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25', +',31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52', +'57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44', +',,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45', +'51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,', +',46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,', +',,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16', +',,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30', +'33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13', +',21,,32,35,,,46,49,274,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,', +',,,,,,,,,,,,,72,3,8,14,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60', +'63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,', +',,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25', +',31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52', +'57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44', +',,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45', +'51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,', +',46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,', +',,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16', +',,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30', +'33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13', +',21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,', +',2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71', +'74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12', +'40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65', +',,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,', +',,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56', +'60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49', +',,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25', +',31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52', +'57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44', +',,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45', +'51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,', +',46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,', +',,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16', +',,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30', +'33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13', +',21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,', +',,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,', +',2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71', +'74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12', +'40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65', +',,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,', +',,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56', +'60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49', +',,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25', +',31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52', +'57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44', +',,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45', +'51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,', +',46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72', +'3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,', +',,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,110,,,,67,71,74,5,10', +'16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27', +'30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7', +'13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,', +',,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63', +',,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67', +'71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34', +'12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64', +'65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51', +'56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46', +'49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,', +',,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41', +',,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,', +'37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38', +'42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32', +'35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,', +',,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20', +'24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10', +'16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27', +'30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7', +'13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,', +',,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63', +',,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,110,', +',,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25', +',31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52', +'57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44', +',,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45', +'51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,', +',46,49,54,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'72,3,8,14,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20', +'24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10', +'16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27', +'30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7', +'13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,', +',,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63', +',,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67', +'71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34', +'12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64', +'65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,', +',,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51', +'56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46', +'49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,', +',,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41', +',,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,', +'37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38', +'42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32', +'35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,', +',,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20', +'24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10', +'16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27', +'30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7', +'13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,', +',,,,,,,,,,,,,72,3,,,,25,,31,34,12,40,,27,30,33,38,42,45,51,56,60,63', +',,,,2,,,20,24,,,,,41,,,52,57,64,65,,,,,7,13,,21,,32,35,,,46,49,,,,,67', +'71,74,5,10,16,,,,,,37,44,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,3,,,,25,,31,34', +'12,40,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64', +'65,,,,,7,13,,21,,32,35,,,46,49,134,,143,,67,71,74,5,10,16,,,,,,37,44', +',,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,72,3,,,,25,,31,34,,40,,142,147', +'150,154,157,159,161,167,129,133,138,141,146,149,153,156,160,163,166', +'128,132,137,140,145,148,152,155,158,162,165,127,131,136,139,144,134', +',143,,,,,,,,321,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,,,', +',,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153,156', +'160,163,166,128,132,137,140,145,148,152,155,158,162,165,127,131,136', +'139,144,27,30,33,38,42,45,51,56,60,63,315,,,,2,,,20,24,,,,,41,,,52,57', +'64,,,,,,,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,,,,,,27,30', +'33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,72,3,52,57,64,25,,31,34', +',40,13,,21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,,,,,,,,,,27,30,33,38', +'42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,72,3,52,57,64,25,,31,34,,40,13', +',21,,32,35,,,46,49,,,,,67,71,74,5,10,16,,27,30,33,38,42,45,51,56,60', +'63,,,,,,,,,,,,,,,,,,57,64,,,,,72,3,,,,25,,31,34,,40,49,,,,,,,,,,,,,', +',,,,,27,30,33,38,42,45,51,56,60,63,,,,,2,,,20,24,,,,,41,,,52,57,64,65', +',25,,31,34,13,40,21,,32,35,,,46,49,134,,143,,67,71,74,5,10,16,,,,,,37', +'44,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,72,3,,,,25,,31,34,,40,,142', +'147,150,154,157,159,161,167,129,133,138,141,146,149,153,156,160,163', +'166,128,132,137,140,145,148,152,155,158,162,165,127,131,136,139,144', +'134,,143,,,,,,,,,,,,,,,,,,,,,,,322,,,,,,,130,135,,,,151,,,,164,,,,,', +',,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153', +'156,160,163,166,128,132,137,140,145,148,152,155,158,162,165,127,131', +'136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,', +'164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146', +'149,153,156,160,163,166,128,132,137,140,145,148,152,155,158,162,165', +'127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,320,,,,,,,130,135', +',,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133', +'138,141,146,149,153,156,160,163,166,128,132,137,140,145,148,152,155', +'158,162,165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167', +'129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,145,148', +'152,155,158,162,165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,', +',,,271,,,,,,,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157', +'159,272,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137', +'140,145,148,152,155,158,162,165,127,131,136,139,144,134,,143,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150', +'154,157,159,161,167,129,133,138,141,146,149,153,156,160,163,166,128', +'132,137,140,145,148,152,155,158,162,165,127,131,136,139,144,134,,143', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142', +'147,150,154,157,159,161,167,129,133,138,141,146,149,153,156,160,163', +'166,128,132,137,140,145,148,152,155,158,162,165,127,131,136,139,144', +'134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,,', +',,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153,156', +'160,163,166,128,132,137,140,145,148,152,155,158,162,165,127,131,136', +'139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164', +',,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149', +'153,156,160,163,166,128,132,137,140,145,148,152,155,158,162,165,127', +'131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151', +',,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,202,167,129,133,138,141', +'146,149,153,156,160,163,166,128,132,137,140,145,148,152,155,158,162', +'165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135', +',,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133', +'138,141,146,149,153,156,160,163,166,128,132,137,140,145,148,152,155', +'158,162,165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167', +'129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,145,148', +'152,155,158,162,165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159', +'161,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140', +'145,148,152,155,158,162,165,127,131,136,139,144,134,,143,,,,,,,,,,,', +',,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154', +'157,159,161,167,129,133,138,141,146,149,153,156,160,163,166,128,132', +'137,140,145,148,152,155,158,162,165,127,131,136,139,144,134,,143,,,', +',,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,54,,,,,,,,142', +'147,150,154,157,159,161,167,129,133,138,141,146,149,153,156,160,163', +'166,128,132,137,140,145,148,152,155,158,162,165,127,131,136,139,144', +'134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,54', +',,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153,156', +'160,163,166,128,132,137,140,145,148,152,155,158,162,165,127,131,136', +'139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,,,151,,,,164', +',,,,,,184,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146', +'149,153,156,160,163,166,128,132,137,140,145,148,152,155,158,162,165', +'127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,135,,', +',151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133,138', +'141,146,149,153,156,160,163,166,128,132,137,140,145,148,152,155,158', +'162,165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130', +'135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129', +'133,138,141,146,149,153,156,160,163,166,128,132,137,140,145,148,152', +'155,158,162,165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161', +'167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,145', +'148,152,155,158,162,165,127,131,136,139,144,134,,143,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,130,135,,,,151,,,,164,,,,,,,,,,,,,,,142,147,150,154,157', +'159,161,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137', +'140,145,148,152,155,158,162,165,127,131,136,139,144,130,135,,,,,,,,164', +',,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149', +'153,156,160,163,166,128,132,137,140,145,148,152,155,158,162,165,127', +'131,136,139,144,130,135,,,,,,,,164,,,,,,,,,,,,,,,142,147,150,154,157', +'159,161,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137', +'140,145,148,152,155,158,162,165,127,131,136,139,144,130,135,,,,,,,,164', +',,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149', +'153,156,160,163,166,128,132,137,140,145,148,152,155,158,162,165,127', +'131,136,139,144,135,,,,,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159', +'161,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140', +'145,148,152,155,158,162,165,127,131,136,139,144,135,,,,,,,,164,,,,,', +',,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153', +'156,160,163,166,128,132,137,140,145,148,152,155,158,162,165,127,131', +'136,139,144,135,,,,,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161', +'167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,145', +'148,152,155,158,162,165,127,131,136,139,144,135,,,,,,,,164,,,,,,,,,', +',,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153,156', +'160,163,166,128,132,137,140,145,148,152,155,158,162,165,127,131,136', +'139,144,135,,,,,,,,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167', +'129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,145,148', +'152,155,158,162,165,127,131,136,139,144,164,,,,,,,,,,,,,,,142,147,150', +'154,157,159,161,167,129,133,138,141,146,149,153,156,160,163,166,128', +'132,137,140,145,148,152,155,158,162,165,127,131,136,139,144,164,,,,', +',,,,,,,,,,142,147,150,154,157,159,161,167,129,133,138,141,146,149,153', +'156,160,163,166,128,132,137,140,145,148,152,155,158,162,165,127,131', +'136,139,144,164,,,,,,,,,,,,,,,142,147,150,154,157,159,161,167,129,133', +'138,141,146,149,153,156,160,163,166,128,132,137,140,145,148,152,155', +'158,162,165,127,131,136,139,144,142,147,150,154,157,159,161,167,129', +'133,138,141,146,149,153,156,160,163,166,128,132,137,140,145,148,152', +'155,158,162,165,127,131,136,139,144,142,147,150,154,157,159,161,167', +'129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,145,148', +'152,155,158,162,165,127,131,136,139,144,142,147,150,154,157,159,161', +'167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140,145', +'148,152,155,158,162,165,127,131,136,139,144,142,147,150,154,157,159', +'161,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137,140', +'145,148,152,155,158,162,165,127,131,136,139,144,142,147,150,154,157', +'159,161,167,129,133,138,141,146,149,153,156,160,163,166,128,132,137', +'140,145,148,152,155,158,162,165,127,131,136,139,144,142,147,150,154', +'157,159,161,167,129,133,138,141,146,149,153,156,160,163,166,128,132', +'137,140,145,148,152,155,158,162,165,127,131,136,139,144,142,147,150', +'154,157,159,161,167,129,133,138,141,146,149,153,156,160,163,166,128', +'132,137,140,145,148,152,155,158,162,165,127,131,136,139,144,142,147', +'150,154,157,159,161,167,129,133,138,141,146,149,153,156,160,163,166', +'128,132,137,140,145,148,152,155,158,162,165,127,131,136,139,144' ] + racc_action_table = arr = Array.new(10897, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -388,385 +385,382 @@ clist = [ end clist = [ -'118,294,118,171,171,171,171,171,171,171,171,171,171,73,73,73,78,91,91', -'91,214,214,73,192,73,177,91,185,91,176,171,171,118,118,214,185,273,118', -'293,169,169,118,244,244,73,171,293,35,171,294,192,95,95,95,36,95,260', -'118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118', -'118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118', -'118,73,75,78,192,192,192,171,198,171,171,104,171,118,104,104,104,104', -'104,104,104,104,104,104,84,114,219,219,104,119,119,104,104,247,247,198', -'186,104,258,191,104,104,104,104,186,263,280,123,104,104,281,104,29,104', -'104,98,104,165,104,104,29,311,311,98,104,104,104,104,104,104,114,114', -'114,84,67,104,104,114,81,186,198,198,198,263,191,191,191,204,266,249', -'249,263,123,123,263,29,266,29,98,205,98,117,117,206,104,104,116,116', -'207,104,96,104,104,4,104,296,4,4,4,4,4,4,4,4,4,4,5,186,186,188,4,266', -'97,4,4,90,90,188,105,4,89,89,4,4,4,4,289,289,86,86,4,4,106,4,107,4,4', -'251,4,211,4,4,79,79,69,69,4,4,4,4,4,4,188,178,178,241,241,4,4,242,242', -'242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242', -'242,242,242,242,261,261,174,174,4,4,70,70,1,4,59,4,4,300,4,312,300,300', -'300,300,300,300,300,300,300,300,256,256,256,41,300,125,125,300,300,256', -'121,256,124,300,131,77,300,300,300,300,,,,,300,300,,300,,300,300,,300', -',300,300,,255,255,255,300,300,300,300,300,300,255,,255,,300,300,300', -'226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226', -'226,226,226,226,226,226,,,,,300,300,,,,300,,300,300,6,300,,6,6,6,6,6', -'6,6,6,6,6,92,92,92,,6,,,6,6,92,,92,,6,,,6,6,6,6,,,,,6,6,,6,,6,6,,6,', -'6,6,,33,33,33,6,6,6,6,6,6,33,,33,,,6,6,239,239,239,239,239,239,239,239', -'239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,,,,,6,6', -',,,6,,6,6,9,6,,9,9,9,9,9,9,9,9,9,9,,,,,9,,,9,9,,,,,9,,,9,9,9,9,,,,,9', -'9,,9,,9,9,,9,,9,9,,,,,9,9,9,9,9,9,,,,,,9,9,229,229,229,229,229,229,229', -'229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,,,,', -'9,9,,,,9,,9,9,11,9,,11,11,11,11,11,11,11,11,11,11,,,,,11,,,11,11,,,', -',11,,,11,11,11,11,,,,,11,11,,11,,11,11,,11,,11,11,,,,,11,11,11,11,11', -'11,,,,,,11,11,233,233,233,233,233,233,233,233,233,233,233,233,233,233', -'233,233,233,233,233,233,233,233,233,,,,,11,11,,,,11,,11,11,12,11,,12', -'12,12,12,12,12,12,12,12,12,,,,,12,,,12,12,,,,,12,,,12,12,12,12,,,,,12', -'12,,12,,12,12,,12,,12,12,,,,,12,12,12,12,12,12,,,,,,12,12,245,245,245', -'245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245', -'245,245,245,,,,,12,12,,,,12,,12,12,15,12,,15,15,15,15,15,15,15,15,15', -'15,,,,,15,,,15,15,,,,,15,,,15,15,15,15,,,,,15,15,,15,,15,15,,15,,15', -'15,,,,,15,15,15,15,15,15,,,,,,15,15,236,236,236,236,236,236,236,236', -'236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,,,,,15,15', -',,,15,,15,15,19,15,,19,19,19,19,19,19,19,19,19,19,,,,,19,,,19,19,,,', -',19,,,19,19,19,19,,,,,19,19,,19,,19,19,,19,,19,19,,,,,19,19,19,19,19', -'19,,,,,,19,19,221,221,221,221,221,221,221,221,221,221,221,221,221,221', -'221,221,221,221,221,221,221,221,221,,,,,19,19,,,,19,,19,19,288,19,,288', -'288,288,288,288,288,288,288,288,288,,,,,288,,,288,288,,,,,288,,,288', -'288,288,288,,,,,288,288,,288,,288,288,,288,,288,288,,,,,288,288,288', -'288,288,288,,,,,,288,288,250,250,250,250,250,250,250,250,250,250,250', -'250,250,250,250,227,227,227,227,227,227,227,227,227,,,,288,288,,,,288', -',288,288,22,288,,22,22,22,22,22,22,22,22,22,22,,,,,22,,,22,22,,,,,22', -',,22,22,22,22,,,,,22,22,,22,,22,22,,22,,22,22,,,,,22,22,22,22,22,22', -',,,,,22,22,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217', -'243,243,243,243,243,243,243,243,243,,,,22,22,,,,22,,22,22,287,22,,287', -'287,287,287,287,287,287,287,287,287,,,,,287,,,287,287,,,,,287,,,287', -'287,287,287,,,,,287,287,,287,,287,287,,287,,287,287,,,,,287,287,287', -'287,287,287,,,,,,287,287,254,254,254,254,254,254,254,254,254,254,254', -'254,254,254,254,234,234,234,234,234,234,234,234,234,,,,287,287,,,,287', -',287,287,279,287,,279,279,279,279,279,279,279,279,279,279,,,,,279,,', -'279,279,,,,,279,,,279,279,279,279,,,,,279,279,,279,,279,279,,279,,279', -'279,,,,,279,279,279,279,279,279,,,,,279,279,279,246,246,246,246,246', -'246,246,246,246,246,246,246,246,246,246,230,230,230,230,230,230,230', -'230,230,,,,279,279,,,,279,,279,279,32,279,,32,32,32,32,32,32,32,32,32', -'32,,,,,32,,,32,32,,,,,32,,,32,32,32,32,,,,,32,32,,32,,32,32,,32,,32', -'32,,,,,32,32,32,32,32,32,,,,,,32,32,240,240,240,240,240,240,240,240', -'240,237,237,237,237,237,237,237,237,237,222,222,222,222,222,222,222', -',,32,32,,,,32,,32,32,276,32,,276,276,276,276,276,276,276,276,276,276', -',,,,276,,,276,276,,,,,276,,,276,276,276,276,,,,,276,276,,276,,276,276', -',276,,276,276,,,,,276,276,276,276,276,276,,,,,,276,276,218,218,218,218', -'218,218,218,,,,,,,,,,,,,,,,,,,,,276,276,,,,276,,276,276,275,276,,275', -'275,275,275,275,275,275,275,275,275,,,,,275,,,275,275,,,,,275,,,275', -'275,275,275,,,,,275,275,,275,,275,275,,275,,275,275,,,,,275,275,275', -'275,275,275,,,,,,275,275,,,,,,,,,,,,,,,,,,,,,,,,,,,,275,275,,,,275,', -'275,275,262,275,,262,262,262,262,262,262,262,262,262,262,,,,,262,,,262', -'262,,,,,262,,,262,262,262,262,,,,,262,262,,262,,262,262,,262,,262,262', -',,,,262,262,262,262,262,262,,,,,,262,262,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'262,262,,,,262,,262,262,38,262,,38,38,38,38,38,38,38,38,38,38,,,,,38', -',,38,38,,,,,38,,,38,38,38,38,,,,,38,38,,38,,38,38,,38,,38,38,38,,,,38', -'38,38,38,38,38,,,,,,38,38,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,38,,,,38,,38', -'38,129,38,,129,129,129,129,129,129,129,129,129,129,,,,,129,,,129,129', -',,,,129,,,129,129,129,129,,,,,129,129,,129,,129,129,,129,,129,129,,', -',,129,129,129,129,129,129,,,,,,129,129,,,,,,,,,,,,,,,,,,,,,,,,,,,,129', -'129,,,,129,,129,129,45,129,,45,45,45,45,45,45,45,45,45,45,,,,,45,,,45', -'45,,,,,45,,,45,45,45,45,,,,,45,45,,45,,45,45,,45,,45,45,,,,,45,45,45', -'45,45,45,,,,,,45,45,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,45,,,,45,,45,45,46', -'45,,46,46,46,46,46,46,46,46,46,46,,,,,46,,,46,46,,,,,46,,,46,46,46,46', -',,,,46,46,,46,,46,46,,46,,46,46,,,,,46,46,46,46,46,46,,,,,,46,46,,,', -',,,,,,,,,,,,,,,,,,,,,,,,46,46,,,,46,,46,46,49,46,,49,49,49,49,49,49', -'49,49,49,49,,,,,49,,,49,49,,,,,49,,,49,49,49,49,,,,,49,49,,49,,49,49', -',49,,49,49,,,,,49,49,49,49,49,49,,,,,,49,49,,,,,,,,,,,,,,,,,,,,,,,,', -',,,49,49,,,,49,,49,49,54,49,,54,54,54,54,54,54,54,54,54,54,,,,,54,,', -'54,54,,,,,54,,,54,54,54,54,,,,,54,54,,54,,54,54,,54,,54,54,,,,,54,54', -'54,54,54,54,,,,,,54,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,54,54,,,,54,,54,54', -'212,54,,212,212,212,212,212,212,212,212,212,212,,,,,212,,,212,212,,', -',,212,,,212,212,212,212,,,,,212,212,,212,,212,212,,212,,212,212,,,,', -'212,212,212,212,212,212,,,,,,212,212,,,,,,,,,,,,,,,,,,,,,,,,,,,,212', -'212,,,,212,,212,212,60,212,,60,60,60,60,60,60,60,60,60,60,,,,,60,,,60', -'60,,,,,60,,,60,60,60,60,,,,,60,60,,60,,60,60,,60,,60,60,,60,,,60,60', -'60,60,60,60,,,,,,60,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,60,60,,,,60,,60,60', -'203,60,,203,203,203,203,203,203,203,203,203,203,,,,,203,,,203,203,,', -',,203,,,203,203,203,203,,,,,203,203,,203,,203,203,,203,,203,203,,,,', -'203,203,203,203,203,203,,,,,,203,203,,,,,,,,,,,,,,,,,,,,,,,,,,,,203', -'203,,,,203,,203,203,200,203,,200,200,200,200,200,200,200,200,200,200', -',,,,200,,,200,200,,,,,200,,,200,200,200,200,,,,,200,200,,200,,200,200', -',200,,200,200,200,,,,200,200,200,200,200,200,,,,,,200,200,,,,,,,,,,', -',,,,,,,,,,,,,,,,,200,200,200,200,,200,,200,200,190,200,,190,190,190', -'190,190,190,190,190,190,190,,,,,190,,,190,190,,,,,190,,,190,190,190', -'190,,,,,190,190,,190,,190,190,,190,,190,190,,,,,190,190,190,190,190', -'190,,,,,,190,190,,,,,,,,,,,,,,,,,,,,,,,,,,,,190,190,,,,190,,190,190', -'189,190,,189,189,189,189,189,189,189,189,189,189,,,,,189,,,189,189,', -',,,189,,,189,189,189,189,,,,,189,189,,189,,189,189,,189,,189,189,,,', -',189,189,189,189,189,189,,,,,,189,189,,,,,,,,,,,,,,,,,,,,,,,,,,,,189', -'189,,,,189,,189,189,72,189,,72,72,72,72,72,72,72,72,72,72,,,,,72,,,72', -'72,,,,,72,,,72,72,72,72,,,,,72,72,,72,,72,72,,72,,72,72,,,,,72,72,72', -'72,72,72,,,,,,72,72,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,72,,,,72,,72,72,172', -'72,,172,172,172,172,172,172,172,172,172,172,,,,,172,,,172,172,,,,,172', -',,172,172,172,172,,,,,172,172,,172,,172,172,,172,,172,172,,,,,172,172', -'172,172,172,172,,,,,,172,172,,,,,,,,,,,,,,,,,,,,,,,,,,,,172,172,,,,172', -',172,172,74,172,,74,74,74,74,74,74,74,74,74,74,,,,,74,,,74,74,,,,,74', -',,74,74,74,74,,,,,74,74,,74,,74,74,,74,,74,74,,,,,74,74,74,74,74,74', -',,,,,74,74,,,,,,,,,,,,,,,,,,,,,,,,,,,,74,74,,,,74,,74,74,168,74,,168', -'168,168,168,168,168,168,168,168,168,,,,,168,,,168,168,,,,,168,,,168', -'168,168,168,,,,,168,168,,168,,168,168,,168,,168,168,,,,,168,168,168', -'168,168,168,,,,,,168,168,,,,,,,,,,,,,,,,,,,,,,,,,,,,168,168,,,,168,', -'168,168,167,168,,167,167,167,167,167,167,167,167,167,167,,,,,167,,,167', -'167,,,,,167,,,167,167,167,167,,,,,167,167,,167,,167,167,,167,,167,167', -',,,,167,167,167,167,167,167,,,,,,167,167,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'167,167,,,,167,,167,167,166,167,,166,166,166,166,166,166,166,166,166', -'166,,,,,166,,,166,166,,,,,166,,,166,166,166,166,,,,,166,166,,166,,166', -'166,,166,,166,166,,,,,166,166,166,166,166,166,,,,,,166,166,,,,,,,,,', -',,,,,,,,,,,,,,,,,,166,166,,,,166,,166,166,164,166,,164,164,164,164,164', -'164,164,164,164,164,,,,,164,,,164,164,,,,,164,,,164,164,164,164,,,,', -'164,164,,164,,164,164,,164,,164,164,,,,,164,164,164,164,164,164,,,,', -',164,164,,,,,,,,,,,,,,,,,,,,,,,,,,,,164,164,,,,164,,164,164,162,164', -',162,162,162,162,162,162,162,162,162,162,,,,,162,,,162,162,,,,,162,', -',162,162,162,162,,,,,162,162,,162,,162,162,,162,,162,162,,,,,162,162', -'162,162,162,162,,,,,,162,162,,,,,,,,,,,,,,,,,,,,,,,,,,,,162,162,,,,162', -',162,162,161,162,,161,161,161,161,161,161,161,161,161,161,,,,,161,,', -'161,161,,,,,161,,,161,161,161,161,,,,,161,161,,161,,161,161,,161,,161', -'161,,,,,161,161,161,161,161,161,,,,,,161,161,,,,,,,,,,,,,,,,,,,,,,,', -',,,,161,161,,,,161,,161,161,160,161,,160,160,160,160,160,160,160,160', -'160,160,,,,,160,,,160,160,,,,,160,,,160,160,160,160,,,,,160,160,,160', -',160,160,,160,,160,160,,,,,160,160,160,160,160,160,,,,,,160,160,,,,', -',,,,,,,,,,,,,,,,,,,,,,,160,160,,,,160,,160,160,159,160,,159,159,159', -'159,159,159,159,159,159,159,,,,,159,,,159,159,,,,,159,,,159,159,159', -'159,,,,,159,159,,159,,159,159,,159,,159,159,,,,,159,159,159,159,159', -'159,,,,,,159,159,,,,,,,,,,,,,,,,,,,,,,,,,,,,159,159,,,,159,,159,159', -'158,159,,158,158,158,158,158,158,158,158,158,158,,,,,158,,,158,158,', -',,,158,,,158,158,158,158,,,,,158,158,,158,,158,158,,158,,158,158,,,', -',158,158,158,158,158,158,,,,,,158,158,,,,,,,,,,,,,,,,,,,,,,,,,,,,158', -'158,,,,158,,158,158,157,158,,157,157,157,157,157,157,157,157,157,157', -',,,,157,,,157,157,,,,,157,,,157,157,157,157,,,,,157,157,,157,,157,157', -',157,,157,157,,,,,157,157,157,157,157,157,,,,,,157,157,,,,,,,,,,,,,', -',,,,,,,,,,,,,,157,157,,,,157,,157,157,156,157,,156,156,156,156,156,156', -'156,156,156,156,,,,,156,,,156,156,,,,,156,,,156,156,156,156,,,,,156', -'156,,156,,156,156,,156,,156,156,,,,,156,156,156,156,156,156,,,,,,156', -'156,,,,,,,,,,,,,,,,,,,,,,,,,,,,156,156,,,,156,,156,156,155,156,,155', -'155,155,155,155,155,155,155,155,155,,,,,155,,,155,155,,,,,155,,,155', -'155,155,155,,,,,155,155,,155,,155,155,,155,,155,155,,,,,155,155,155', -'155,155,155,,,,,,155,155,,,,,,,,,,,,,,,,,,,,,,,,,,,,155,155,,,,155,', -'155,155,154,155,,154,154,154,154,154,154,154,154,154,154,,,,,154,,,154', -'154,,,,,154,,,154,154,154,154,,,,,154,154,,154,,154,154,,154,,154,154', -',,,,154,154,154,154,154,154,,,,,,154,154,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'154,154,,,,154,,154,154,153,154,,153,153,153,153,153,153,153,153,153', -'153,,,,,153,,,153,153,,,,,153,,,153,153,153,153,,,,,153,153,,153,,153', -'153,,153,,153,153,,,,,153,153,153,153,153,153,,,,,,153,153,,,,,,,,,', -',,,,,,,,,,,,,,,,,,153,153,,,,153,,153,153,152,153,,152,152,152,152,152', -'152,152,152,152,152,,,,,152,,,152,152,,,,,152,,,152,152,152,152,,,,', -'152,152,,152,,152,152,,152,,152,152,,,,,152,152,152,152,152,152,,,,', -',152,152,,,,,,,,,,,,,,,,,,,,,,,,,,,,152,152,,,,152,,152,152,150,152', -',150,150,150,150,150,150,150,150,150,150,,,,,150,,,150,150,,,,,150,', -',150,150,150,150,,,,,150,150,,150,,150,150,,150,,150,150,,,,,150,150', -'150,150,150,150,,,,,,150,150,,,,,,,,,,,,,,,,,,,,,,,,,,,,150,150,,,,150', -',150,150,149,150,,149,149,149,149,149,149,149,149,149,149,,,,,149,,', -'149,149,,,,,149,,,149,149,149,149,,,,,149,149,,149,,149,149,,149,,149', -'149,,,,,149,149,149,149,149,149,,,,,,149,149,,,,,,,,,,,,,,,,,,,,,,,', -',,,,149,149,,,,149,,149,149,148,149,,148,148,148,148,148,148,148,148', -'148,148,,,,,148,,,148,148,,,,,148,,,148,148,148,148,,,,,148,148,,148', -',148,148,,148,,148,148,,,,,148,148,148,148,148,148,,,,,,148,148,,,,', -',,,,,,,,,,,,,,,,,,,,,,,148,148,,,,148,,148,148,146,148,,146,146,146', -'146,146,146,146,146,146,146,,,,,146,,,146,146,,,,,146,,,146,146,146', -'146,,,,,146,146,,146,,146,146,,146,,146,146,,,,,146,146,146,146,146', -'146,,,,,,146,146,,,,,,,,,,,,,,,,,,,,,,,,,,,,146,146,,,,146,,146,146', -'145,146,,145,145,145,145,145,145,145,145,145,145,,,,,145,,,145,145,', -',,,145,,,145,145,145,145,,,,,145,145,,145,,145,145,,145,,145,145,,,', -',145,145,145,145,145,145,,,,,,145,145,,,,,,,,,,,,,,,,,,,,,,,,,,,,145', -'145,,,,145,,145,145,144,145,,144,144,144,144,144,144,144,144,144,144', -',,,,144,,,144,144,,,,,144,,,144,144,144,144,,,,,144,144,,144,,144,144', -',144,,144,144,,,,,144,144,144,144,144,144,,,,,,144,144,,,,,,,,,,,,,', -',,,,,,,,,,,,,,144,144,,,,144,,144,144,102,144,,102,102,102,102,102,102', -'102,102,102,102,,,,,102,,,102,102,,,,,102,,,102,102,102,102,,,,,102', -'102,,102,,102,102,,102,,102,102,102,,,,102,102,102,102,102,102,,,,,', -'102,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,102,102,,,,102,,102,102,310,102,', -'310,310,310,310,310,310,310,310,310,310,,,,,310,,,310,310,,,,,310,,', -'310,310,310,310,,,,,310,310,,310,,310,310,,310,,310,310,,,,,310,310', -'310,310,310,310,,,,,,310,310,,,,,,,,,,,,,,,,,,,,,,,,,,,,310,310,,,,310', -',310,310,143,310,,143,143,143,143,143,143,143,143,143,143,,,,,143,,', -'143,143,,,,,143,,,143,143,143,143,,,,,143,143,,143,,143,143,,143,,143', -'143,,,,,143,143,143,143,143,143,,,,,,143,143,,,,,,,,,,,,,,,,,,,,,,,', -',,,,143,143,,,,143,,143,143,142,143,,142,142,142,142,142,142,142,142', -'142,142,,,,,142,,,142,142,,,,,142,,,142,142,142,142,,,,,142,142,,142', -',142,142,,142,,142,142,,,,,142,142,142,142,142,142,,,,,,142,142,,,,', -',,,,,,,,,,,,,,,,,,,,,,,142,142,,,,142,,142,142,141,142,,141,141,141', -'141,141,141,141,141,141,141,,,,,141,,,141,141,,,,,141,,,141,141,141', -'141,,,,,141,141,,141,,141,141,,141,,141,141,,,,,141,141,141,141,141', -'141,,,,,,141,141,,,,,,,,,,,,,,,,,,,,,,,,,,,,141,141,,,,141,,141,141', -'112,141,,112,112,112,112,112,112,112,112,112,112,,,,,112,,,112,112,', -',,,112,,,112,112,112,112,,,,,112,112,,112,,112,112,,112,,112,112,112', -',,,112,112,112,112,112,112,,,,,,112,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,112', -'112,,,,112,,112,112,113,112,,113,113,113,113,113,113,113,113,113,113', -',,,,113,,,113,113,,,,,113,,,113,113,113,113,,,,,113,113,,113,,113,113', -',113,,113,113,,,,,113,113,113,113,113,113,,,,,,113,113,,,,,,,,,,,,,', -',,,,,,,,,,,,,,113,113,,,,113,,113,113,140,113,,140,140,140,140,140,140', -'140,140,140,140,,,,,140,,,140,140,,,,,140,,,140,140,140,140,,,,,140', -'140,,140,,140,140,,140,,140,140,,,,,140,140,140,140,140,140,,,,,,140', -'140,,,,,,,,,,,,,,,,,,,,,,,,,,,,140,140,,,,140,,140,140,139,140,,139', -'139,139,139,139,139,139,139,139,139,,,,,139,,,139,139,,,,,139,,,139', -'139,139,139,,,,,139,139,,139,,139,139,,139,,139,139,,,,,139,139,139', -'139,139,139,,,,,,139,139,,,,,,,,,,,,,,,,,,,,,,,,,,,,139,139,,,,139,', -'139,139,138,139,,138,138,138,138,138,138,138,138,138,138,,,,,138,,,138', -'138,,,,,138,,,138,138,138,138,,,,,138,138,,138,,138,138,,138,,138,138', -',,,,138,138,138,138,138,138,,,,,,138,138,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'138,138,,,,138,,138,138,137,138,,137,137,137,137,137,137,137,137,137', -'137,,,,,137,,,137,137,,,,,137,,,137,137,137,137,,,,,137,137,,137,,137', -'137,,137,,137,137,,,,,137,137,137,137,137,137,,,,,,137,137,,,,,,,,,', -',,,,,,,,,,,,,,,,,,137,137,,,,137,,137,137,0,137,,0,0,0,0,0,0,0,0,0,0', -',,,,0,,,0,0,,,,,0,,,0,0,0,0,,,,,0,0,,0,,0,0,,0,,0,0,0,,,,0,0,0,0,0,0', -',,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,,0,,0,0,136,0,,136,136,136', -'136,136,136,136,136,136,136,,,,,136,,,136,136,,,,,136,,,136,136,136', -'136,,,,,136,136,,136,,136,136,,136,,136,136,,,,,136,136,136,136,136', -'136,,,,,,136,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,136,136,,,,136,,136,136', -'135,136,,135,135,135,135,135,135,135,135,135,135,,,,,135,,,135,135,', -',,,135,,,135,135,135,135,,,,,135,135,,135,,135,135,,135,,135,135,,,', -',135,135,135,135,135,135,,,,,,135,135,,,,,,,,,,,,,,,,,,,,,,,,,,,,135', -'135,,,,135,,135,135,134,135,,134,134,134,134,134,134,134,134,134,134', -',,,,134,,,134,134,,,,,134,,,134,134,134,134,,,,,134,134,,134,,134,134', -',134,,134,134,,,,,134,134,134,134,134,134,,,,,,134,134,,,,,,,,,,,,,', -',,,,,,,,,,,,,,134,134,,,,134,,134,134,133,134,,133,133,133,133,133,133', -'133,133,133,133,,,,,133,,,133,133,,,,,133,,,133,133,133,133,,,,,133', -'133,,133,,133,133,,133,,133,133,,,,,133,133,133,133,133,133,,,,,,133', -'133,,,,,,,,,,,,,,,,,,,,,,,,,,,,133,133,,,,133,,133,133,132,133,,132', -'132,132,132,132,132,132,132,132,132,,,,,132,,,132,132,,,,,132,,,132', -'132,132,132,,,,,132,132,,132,,132,132,,132,,132,132,,,,,132,132,132', -'132,132,132,,,,,,132,132,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,132,,,,132,', -'132,132,130,132,,130,130,130,130,130,130,130,130,130,130,,,,,130,,,130', -'130,,,,,130,,,130,130,130,130,,,,,130,130,,130,,130,130,,130,,130,130', -',,,,130,130,130,130,130,130,,,,,,130,130,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'130,130,,,,130,,130,130,126,130,,126,126,126,126,126,126,126,126,126', -'126,,,,,126,,,126,126,,,,,126,,,126,126,126,126,,,,,126,126,,126,,126', -'126,,126,,126,126,,,,,126,126,126,126,126,126,,,,,,126,126,,,,,,,,,', -',,,,,,,,,,,,,,,,,,126,126,,,,126,,126,126,128,126,,128,128,128,128,128', -'128,128,128,128,128,,,,,128,,,128,128,,,,,128,,,128,128,128,128,,,,', -'128,128,,128,,128,128,,128,,128,128,,,,,128,128,128,128,128,128,,,,', -',128,128,,,,,,,,,,,,,,,,,,,,,,,,,,,,128,128,,,,128,,128,128,213,128', -',213,213,213,213,213,213,213,213,213,213,,,,,213,,,213,213,,,,,213,', -',213,213,213,213,,,,,213,213,,213,,213,213,,213,,213,213,304,,304,,213', -'213,213,213,213,213,,,,,,213,213,,,,,,,,,,,,,,,,304,304,,,,304,,,,304', -',,213,213,,,,213,,213,213,,213,,,304,304,304,304,304,304,304,304,304', -'304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304', -'304,304,304,304,304,304,304,304,304,315,,315,,,,,,,,304,,,,,,,,,,,,', -',,,,,,,,,315,315,,,,315,,,,315,,,,,,,,,,,,,,,,315,315,315,315,315,315', -'315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315', -'315,315,315,315,315,315,315,315,315,315,315,315,163,163,163,163,163', -'163,163,163,163,163,315,,,,163,,,163,163,,,,,163,,,163,163,163,,,,,', -',163,,163,,163,163,,163,,163,163,,,,,163,163,163,163,163,163,,21,21', -'21,21,21,21,21,21,21,21,,,,,,,,,,,,,,,,,,21,21,,,,,163,163,,,,163,,163', -'163,21,163,,21,,,,,,,,,,,,,,,,,,,25,25,25,25,25,25,25,25,25,25,,,,,25', -',,25,25,,,,,25,,,25,25,25,25,,21,,21,21,25,21,25,,25,25,,25,,25,25,', -',,,25,25,25,25,25,25,,,,,,25,25,,,,303,303,303,303,303,303,303,303,303', -'303,,,,,303,,,303,303,,,,,303,25,25,303,303,303,25,,25,25,,25,303,,303', -',303,303,,303,,303,303,,,,,303,303,303,303,303,303,,,,,,,,,,,313,313', -'313,313,313,313,313,313,313,313,,,,,313,,,313,313,,,,,313,303,303,313', -'313,313,303,,303,303,,303,313,,313,,313,313,,313,,313,313,320,,320,', -'313,313,313,313,313,313,,,,,,,,,,,,,,,,320,,,,,,,320,320,,,,320,,,,320', -',,313,313,,,,313,,313,313,,313,,,320,320,320,320,320,320,320,320,320', -'320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320', -'320,320,320,320,320,320,320,320,320,199,,199,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,,199,199,,,,199,,,,199,,,,,,,,,,,,,,,,199,199,199,199,199,199,199', -'199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199', -'199,199,199,199,199,199,199,199,199,199,199,269,,269,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,269,269,,,,269,,,,269,,,,,,,,,,,,,,,,269,269,269,269,269', -'269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269', -'269,269,269,269,269,269,269,269,269,269,269,269,269,215,,215,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,215,215,,,,215,,,,215,,,,,,,,,,,,,,,,215,215,215', -'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215', -'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,302,,302', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,302,302,,,,302,,,,302,,,,,,,,,,,,,,,,302', -'302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302', -'302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302', -'317,,317,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317,317,,,,317,,,,317,,,,,,,,', -',,,,,,,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317', -'317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317', -'317,317,194,,194,,,,,,,,,,,,,,,,,,,,,,,194,,,,,,,194,194,,,,194,,,,194', -',,,,,,,,,,,,,,,194,194,194,194,194,194,194,194,194,194,194,194,194,194', -'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194', -'194,194,194,194,301,,301,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,301,301,,,,301', -',,,301,,,,,,,,,,,,,,,,301,301,301,301,301,301,301,301,301,301,301,301', -'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301', -'301,301,301,301,301,301,295,,295,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295,295', -',,,295,,,,295,,,,,,,,,,,,,,,,295,295,295,295,295,295,295,295,295,295', -'295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295', -'295,295,295,295,295,295,295,295,238,,238,,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,238,238,,,,238,,,,238,,,,,,,,,,,,,,,,238,238,238,238,238,238,238,238', +'115,207,115,170,170,170,170,170,170,170,170,170,170,70,70,70,82,161', +'255,255,255,184,70,191,70,214,214,255,184,255,170,170,115,115,29,29', +'29,115,214,292,272,115,130,29,70,29,292,170,206,191,98,98,98,65,98,93', +'115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115', +'115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115', +'115,70,78,82,191,191,191,170,203,170,170,154,170,115,154,154,154,154', +'154,154,154,154,154,154,111,296,260,260,154,259,189,154,154,279,203', +'280,190,154,189,261,154,154,154,154,190,186,96,269,154,154,78,154,121', +'154,154,269,211,154,154,243,243,181,181,154,154,154,154,154,154,111', +'111,111,189,296,154,154,111,261,190,203,203,203,245,245,261,53,25,261', +'41,269,186,186,186,94,25,83,83,121,121,126,126,94,257,154,154,124,124', +'69,154,293,154,154,136,154,102,136,136,136,136,136,136,136,136,136,136', +'103,190,190,25,136,25,35,136,136,104,94,205,94,136,310,310,136,136,136', +'136,117,117,174,174,136,136,31,136,202,136,136,236,236,136,136,75,90', +'90,90,136,136,136,136,136,136,90,179,90,116,116,136,136,225,225,225', +'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225', +'225,225,225,218,218,114,114,136,136,173,173,309,136,81,136,136,5,136', +'119,5,5,5,5,5,5,5,5,5,5,254,254,254,2,5,288,288,5,5,254,123,254,1,5', +'66,66,5,5,5,5,240,240,85,85,5,5,180,5,247,5,5,88,88,5,5,,89,89,89,5', +'5,5,5,5,5,89,,89,61,61,5,5,241,241,241,241,241,241,241,241,241,241,241', +'241,241,241,241,241,241,241,241,241,241,241,241,,,,,5,5,,,,5,,5,5,7', +'5,,7,7,7,7,7,7,7,7,7,7,,,,,7,,,7,7,,,,,7,,,7,7,7,7,,,,,7,7,,7,,7,7,', +',7,7,,,,,7,7,7,7,7,7,,,,,,7,7,220,220,220,220,220,220,220,220,220,220', +'220,220,220,220,220,220,220,220,220,220,220,220,220,,,,,7,7,,,,7,,7', +'7,10,7,,10,10,10,10,10,10,10,10,10,10,,,,,10,,,10,10,,,,,10,,,10,10', +'10,10,,,,,10,10,,10,,10,10,,,10,10,,,,,10,10,10,10,10,10,,,,,,10,10', +'216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216', +'216,216,216,216,216,216,,,,,10,10,,,,10,,10,10,12,10,,12,12,12,12,12', +'12,12,12,12,12,,,,,12,,,12,12,,,,,12,,,12,12,12,12,,,,,12,12,,12,,12', +'12,,,12,12,,,,,12,12,12,12,12,12,,,,,,12,12,238,238,238,238,238,238', '238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238', -'238,238,238,238,238,238,238,238,238,238,277,,277,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,,277,277,,,,277,,,,277,,,,,,,,,,,,,,,,277,277,277,277,277,277', -'277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277', -'277,277,277,277,277,277,277,277,277,277,277,277,193,,193,,,,,,,,,,,', -',,,,,,,,,,,,,,,,,,193,193,,,,193,,,,193,,,,,,,,,,,,,,,,193,193,193,193', -'193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193', -'193,193,193,193,193,193,193,193,193,193,193,193,193,193,231,,231,,,', -',,,,,,,,,,,,,,,,,,,,,,,,,,231,231,,,,231,,,,231,,,,,,,,,,,,,,,,231,231', -'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', -'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,278', -',278,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,278,,,,278,,,,278,,,,,,,,,,,,', -',,,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278', -'278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278', -'278,268,,268,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,268,268,,,,268,,,,268,,,,', -',,,,,,,,,,,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268', -'268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268', -'268,268,268,223,,223,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,223,223,,,,223,,,', -'223,,,,,,,,,,,,,,,,223,223,223,223,223,223,223,223,223,223,223,223,223', -'223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223', -'223,223,223,223,223,88,,88,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,88,88,,,,88', -',,,88,,,,,,,,88,,,,,,,,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88', -'88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,314,,314', -',,,,,,,,,,,,,,,,,,,,,,314,,,,,,,314,314,,,,314,,,,314,,,,,,,,,,,,,,', +',,,,12,12,,,,12,,12,12,13,12,,13,13,13,13,13,13,13,13,13,13,,,,,13,', +',13,13,,,,,13,,,13,13,13,13,,,,,13,13,,13,,13,13,,,13,13,,,,,13,13,13', +'13,13,13,,,,,,13,13,232,232,232,232,232,232,232,232,232,232,232,232', +'232,232,232,232,232,232,232,232,232,232,232,,,,,13,13,,,,13,,13,13,16', +'13,,16,16,16,16,16,16,16,16,16,16,,,,,16,,,16,16,,,,,16,,,16,16,16,16', +',,,,16,16,,16,,16,16,,,16,16,,,,,16,16,16,16,16,16,,,,,,16,16,234,234', +'234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234', +'234,234,234,234,,,,,16,16,,,,16,,16,16,135,16,,135,135,135,135,135,135', +'135,135,135,135,,,,,135,,,135,135,,,,,135,,,135,135,135,135,,,,,135', +'135,,135,,135,135,,,135,135,,,,,135,135,135,135,135,135,,,,,,135,135', +'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228', +'228,228,228,228,228,228,,,,,135,135,,,,135,,135,135,21,135,,21,21,21', +'21,21,21,21,21,21,21,,,,,21,,,21,21,,,,,21,,,21,21,21,21,,,,,21,21,', +'21,,21,21,,,21,21,,,,,21,21,21,21,21,21,,,,,,21,21,249,249,249,249,249', +'249,249,249,249,249,249,249,249,249,249,221,221,221,221,221,221,221', +'221,221,,,,21,21,,,,21,,21,21,134,21,,134,134,134,134,134,134,134,134', +'134,134,,,,,134,,,134,134,,,,,134,,,134,134,134,134,,,,,134,134,,134', +',134,134,,,134,134,,,,,134,134,134,134,134,134,,,,,,134,134,252,252', +'252,252,252,252,252,252,252,252,252,252,252,252,252,229,229,229,229', +'229,229,229,229,229,,,,134,134,,,,134,,134,134,311,134,,311,311,311', +'311,311,311,311,311,311,311,,,,,311,,,311,311,,,,,311,,,311,311,311', +'311,,,,,311,311,,311,,311,311,,,311,311,,,,,311,311,311,311,311,311', +',,,,,311,311,246,246,246,246,246,246,246,246,246,246,246,246,246,246', +'246,233,233,233,233,233,233,233,233,233,,,,311,311,,,,311,,311,311,133', +'311,,133,133,133,133,133,133,133,133,133,133,,,,,133,,,133,133,,,,,133', +',,133,133,133,133,,,,,133,133,,133,,133,133,,,133,133,,,,,133,133,133', +'133,133,133,,,,,,133,133,242,242,242,242,242,242,242,242,242,242,242', +'242,242,242,242,239,239,239,239,239,239,239,239,239,,,,133,133,,,,133', +',133,133,132,133,,132,132,132,132,132,132,132,132,132,132,,,,,132,,', +'132,132,,,,,132,,,132,132,132,132,,,,,132,132,,132,,132,132,,,132,132', +',,,,132,132,132,132,132,132,,,,,,132,132,235,235,235,235,235,235,235', +'235,235,226,226,226,226,226,226,226,226,226,217,217,217,217,217,217', +'217,,,132,132,,,,132,,132,132,32,132,,32,32,32,32,32,32,32,32,32,32', +',,,,32,,,32,32,,,,,32,,,32,32,32,32,,,,,32,32,,32,,32,32,,,32,32,,,', +',32,32,32,32,32,32,,,,,,32,32,253,253,253,253,253,253,253,,,,,,,,,,', +',,,,,,,,,,32,32,,,,32,,32,32,34,32,,34,34,34,34,34,34,34,34,34,34,,', +',,34,,,34,34,,,,,34,,,34,34,34,34,,,,,34,34,,34,,34,34,,,34,34,34,,', +',34,34,34,34,34,34,,,,,,34,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,34', +',34,34,299,34,,299,299,299,299,299,299,299,299,299,299,,,,,299,,,299', +'299,,,,,299,,,299,299,299,299,,,,,299,299,,299,,299,299,,,299,299,,', +',,299,299,299,299,299,299,,,,,299,299,299,,,,,,,,,,,,,,,,,,,,,,,,,,', +',299,299,,,,299,,299,299,37,299,,37,37,37,37,37,37,37,37,37,37,,,,,37', +',,37,37,,,,,37,,,37,37,37,37,,,,,37,37,,37,,37,37,,,37,37,,,,,37,37', +'37,37,37,37,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,,,,37,,37,37', +'40,37,,40,40,40,40,40,40,40,40,40,40,,,,,40,,,40,40,,,,,40,,,40,40,40', +'40,,,,,40,40,,40,,40,40,,,40,40,,,,,40,40,40,40,40,40,,,,,,40,40,,,', +',,,,,,,,,,,,,,,,,,,,,,,,40,40,,,,40,,40,40,287,40,,287,287,287,287,287', +'287,287,287,287,287,,,,,287,,,287,287,,,,,287,,,287,287,287,287,,,,', +'287,287,,287,,287,287,,,287,287,,,,,287,287,287,287,287,287,,,,,,287', +'287,,,,,,,,,,,,,,,,,,,,,,,,,,,,287,287,,,,287,,287,287,44,287,,44,44', +'44,44,44,44,44,44,44,44,,,,,44,,,44,44,,,,,44,,,44,44,44,44,,,,,44,44', +',44,,44,44,,,44,44,,,,,44,44,44,44,44,44,,,,,,44,44,,,,,,,,,,,,,,,,', +',,,,,,,,,,,44,44,,,,44,,44,44,52,44,,52,52,52,52,52,52,52,52,52,52,', +',,,52,,,52,52,,,,,52,,,52,52,52,52,,,,,52,52,,52,,52,52,,,52,52,,,,', +'52,52,52,52,52,52,,,,,,52,52,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,52,,,,52', +',52,52,286,52,,286,286,286,286,286,286,286,286,286,286,,,,,286,,,286', +'286,,,,,286,,,286,286,286,286,,,,,286,286,,286,,286,286,,,286,286,,', +',,286,286,286,286,286,286,,,,,,286,286,,,,,,,,,,,,,,,,,,,,,,,,,,,,286', +'286,,,,286,,286,286,54,286,,54,54,54,54,54,54,54,54,54,54,,,,,54,,,54', +'54,,,,,54,,,54,54,54,54,,,,,54,54,,54,,54,54,,,54,54,,54,,,54,54,54', +'54,54,54,,,,,,54,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,54,54,,,,54,,54,54,277', +'54,,277,277,277,277,277,277,277,277,277,277,,,,,277,,,277,277,,,,,277', +',,277,277,277,277,,,,,277,277,,277,,277,277,,,277,277,,,,,277,277,277', +'277,277,277,,,,,277,277,277,,,,,,,,,,,,,,,,,,,,,,,,,,,,277,277,,,,277', +',277,277,275,277,,275,275,275,275,275,275,275,275,275,275,,,,,275,,', +'275,275,,,,,275,,,275,275,275,275,,,,,275,275,,275,,275,275,,,275,275', +',,,,275,275,275,275,275,275,,,,,,275,275,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'275,275,,,,275,,275,275,274,275,,274,274,274,274,274,274,274,274,274', +'274,,,,,274,,,274,274,,,,,274,,,274,274,274,274,,,,,274,274,,274,,274', +'274,,,274,274,,,,,274,274,274,274,274,274,,,,,,274,274,,,,,,,,,,,,,', +',,,,,,,,,,,,,,274,274,,,,274,,274,274,67,274,,67,67,67,67,67,67,67,67', +'67,67,,,,,67,,,67,67,,,,,67,,,67,67,67,67,,,,,67,67,,67,,67,67,,,67', +'67,,,,,67,67,67,67,67,67,,,,,,67,67,,,,,,,,,,,,,,,,,,,,,,,,,,,,67,67', +',,,67,,67,67,262,67,,262,262,262,262,262,262,262,262,262,262,,,,,262', +',,262,262,,,,,262,,,262,262,262,262,,,,,262,262,,262,,262,262,,,262', +'262,,,,,262,262,262,262,262,262,,,,,,262,262,,,,,,,,,,,,,,,,,,,,,,,', +',,,,262,262,,,,262,,262,262,213,262,,213,213,213,213,213,213,213,213', +'213,213,,,,,213,,,213,213,,,,,213,,,213,213,213,213,,,,,213,213,,213', +',213,213,,,213,213,,,,,213,213,213,213,213,213,,,,,,213,213,,,,,,,,', +',,,,,,,,,,,,,,,,,,,213,213,,,,213,,213,213,212,213,,212,212,212,212', +'212,212,212,212,212,212,,,,,212,,,212,212,,,,,212,,,212,212,212,212', +',,,,212,212,,212,,212,212,,,212,212,,,,,212,212,212,212,212,212,,,,', +',212,212,,,,,,,,,,,,,,,,,,,,,,,,,,,,212,212,,,,212,,212,212,71,212,', +'71,71,71,71,71,71,71,71,71,71,,,,,71,,,71,71,,,,,71,,,71,71,71,71,,', +',,71,71,,71,,71,71,,,71,71,,,,,71,71,71,71,71,71,,,,,,71,71,,,,,,,,', +',,,,,,,,,,,,,,,,,,,71,71,,,,71,,71,71,74,71,,74,74,74,74,74,74,74,74', +'74,74,,,,,74,,,74,74,,,,,74,,,74,74,74,74,,,,,74,74,,74,,74,74,,,74', +'74,,,,,74,74,74,74,74,74,,,,,,74,74,,,,,,,,,,,,,,,,,,,,,,,,,,,,74,74', +',,,74,,74,74,201,74,,201,201,201,201,201,201,201,201,201,201,,,,,201', +',,201,201,,,,,201,,,201,201,201,201,,,,,201,201,,201,,201,201,,,201', +'201,201,,,,201,201,201,201,201,201,,,,,,201,201,,,,,,,,,,,,,,,,,,,,', +',,,,,,,201,201,201,201,,201,,201,201,200,201,,200,200,200,200,200,200', +'200,200,200,200,,,,,200,,,200,200,,,,,200,,,200,200,200,200,,,,,200', +'200,,200,,200,200,,,200,200,,,,,200,200,200,200,200,200,,,,,,200,200', +',,,,,,,,,,,,,,,,,,,,,,,,,,,200,200,,,,200,,200,200,131,200,,131,131', +'131,131,131,131,131,131,131,131,,,,,131,,,131,131,,,,,131,,,131,131', +'131,131,,,,,131,131,,131,,131,131,,,131,131,,,,,131,131,131,131,131', +'131,,,,,,131,131,,,,,,,,,,,,,,,,,,,,,,,,,,,,131,131,,,,131,,131,131', +'187,131,,187,187,187,187,187,187,187,187,187,187,,,,,187,,,187,187,', +',,,187,,,187,187,187,187,,,,,187,187,,187,,187,187,,,187,187,,,,,187', +'187,187,187,187,187,,,,,,187,187,,,,,,,,,,,,,,,,,,,,,,,,,,,,187,187', +',,,187,,187,187,185,187,,185,185,185,185,185,185,185,185,185,185,,,', +',185,,,185,185,,,,,185,,,185,185,185,185,,,,,185,185,,185,,185,185,', +',185,185,,,,,185,185,185,185,185,185,,,,,,185,185,,,,,,,,,,,,,,,,,,', +',,,,,,,,,185,185,,,,185,,185,185,171,185,,171,171,171,171,171,171,171', +'171,171,171,,,,,171,,,171,171,,,,,171,,,171,171,171,171,,,,,171,171', +',171,,171,171,,,171,171,,,,,171,171,171,171,171,171,,,,,,171,171,,,', +',,,,,,,,,,,,,,,,,,,,,,,,171,171,,,,171,,171,171,138,171,,138,138,138', +'138,138,138,138,138,138,138,,,,,138,,,138,138,,,,,138,,,138,138,138', +'138,,,,,138,138,,138,,138,138,,,138,138,,,,,138,138,138,138,138,138', +',,,,,138,138,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,138,,,,138,,138,138,167', +'138,,167,167,167,167,167,167,167,167,167,167,,,,,167,,,167,167,,,,,167', +',,167,167,167,167,,,,,167,167,,167,,167,167,,,167,167,,,,,167,167,167', +'167,167,167,,,,,,167,167,,,,,,,,,,,,,,,,,,,,,,,,,,,,167,167,,,,167,', +'167,167,128,167,,128,128,128,128,128,128,128,128,128,128,,,,,128,,,128', +'128,,,,,128,,,128,128,128,128,,,,,128,128,,128,,128,128,,,128,128,,', +',,128,128,128,128,128,128,,,,,,128,128,,,,,,,,,,,,,,,,,,,,,,,,,,,,128', +'128,,,,128,,128,128,165,128,,165,165,165,165,165,165,165,165,165,165', +',,,,165,,,165,165,,,,,165,,,165,165,165,165,,,,,165,165,,165,,165,165', +',,165,165,,,,,165,165,165,165,165,165,,,,,,165,165,,,,,,,,,,,,,,,,,', +',,,,,,,,,,165,165,,,,165,,165,165,164,165,,164,164,164,164,164,164,164', +'164,164,164,,,,,164,,,164,164,,,,,164,,,164,164,164,164,,,,,164,164', +',164,,164,164,,,164,164,,,,,164,164,164,164,164,164,,,,,,164,164,,,', +',,,,,,,,,,,,,,,,,,,,,,,,164,164,,,,164,,164,164,163,164,,163,163,163', +'163,163,163,163,163,163,163,,,,,163,,,163,163,,,,,163,,,163,163,163', +'163,,,,,163,163,,163,,163,163,,,163,163,,,,,163,163,163,163,163,163', +',,,,,163,163,,,,,,,,,,,,,,,,,,,,,,,,,,,,163,163,,,,163,,163,163,162', +'163,,162,162,162,162,162,162,162,162,162,162,,,,,162,,,162,162,,,,,162', +',,162,162,162,162,,,,,162,162,,162,,162,162,,,162,162,,,,,162,162,162', +'162,162,162,,,,,,162,162,,,,,,,,,,,,,,,,,,,,,,,,,,,,162,162,,,,162,', +'162,162,160,162,,160,160,160,160,160,160,160,160,160,160,,,,,160,,,160', +'160,,,,,160,,,160,160,160,160,,,,,160,160,,160,,160,160,,,160,160,,', +',,160,160,160,160,160,160,,,,,,160,160,,,,,,,,,,,,,,,,,,,,,,,,,,,,160', +'160,,,,160,,160,160,129,160,,129,129,129,129,129,129,129,129,129,129', +',,,,129,,,129,129,,,,,129,,,129,129,129,129,,,,,129,129,,129,,129,129', +',,129,129,,,,,129,129,129,129,129,129,,,,,,129,129,,,,,,,,,,,,,,,,,', +',,,,,,,,,,129,129,,,,129,,129,129,158,129,,158,158,158,158,158,158,158', +'158,158,158,,,,,158,,,158,158,,,,,158,,,158,158,158,158,,,,,158,158', +',158,,158,158,,,158,158,,,,,158,158,158,158,158,158,,,,,,158,158,,,', +',,,,,,,,,,,,,,,,,,,,,,,,158,158,,,,158,,158,158,157,158,,157,157,157', +'157,157,157,157,157,157,157,,,,,157,,,157,157,,,,,157,,,157,157,157', +'157,,,,,157,157,,157,,157,157,,,157,157,,,,,157,157,157,157,157,157', +',,,,,157,157,,,,,,,,,,,,,,,,,,,,,,,,,,,,157,157,,,,157,,157,157,156', +'157,,156,156,156,156,156,156,156,156,156,156,,,,,156,,,156,156,,,,,156', +',,156,156,156,156,,,,,156,156,,156,,156,156,,,156,156,,,,,156,156,156', +'156,156,156,,,,,,156,156,,,,,,,,,,,,,,,,,,,,,,,,,,,,156,156,,,,156,', +'156,156,100,156,,100,100,100,100,100,100,100,100,100,100,,,,,100,,,100', +'100,,,,,100,,,100,100,100,100,,,,,100,100,,100,,100,100,,,100,100,100', +',,,100,100,100,100,100,100,,,,,,100,100,,,,,,,,,,,,,,,,,,,,,,,,,,,,100', +'100,,,,100,,100,100,101,100,,101,101,101,101,101,101,101,101,101,101', +',,,,101,,,101,101,,,,,101,,,101,101,101,101,,,,,101,101,,101,,101,101', +',,101,101,,,,,101,101,101,101,101,101,,,,,,101,101,,,,,,,,,,,,,,,,,', +',,,,,,,,,,101,101,,,,101,,101,101,155,101,,155,155,155,155,155,155,155', +'155,155,155,,,,,155,,,155,155,,,,,155,,,155,155,155,155,,,,,155,155', +',155,,155,155,,,155,155,,,,,155,155,155,155,155,155,,,,,,155,155,,,', +',,,,,,,,,,,,,,,,,,,,,,,,155,155,,,,155,,155,155,137,155,,137,137,137', +'137,137,137,137,137,137,137,,,,,137,,,137,137,,,,,137,,,137,137,137', +'137,,,,,137,137,,137,,137,137,,,137,137,,,,,137,137,137,137,137,137', +',,,,,137,137,,,,,,,,,,,,,,,,,,,,,,,,,,,,137,137,,,,137,,137,137,153', +'137,,153,153,153,153,153,153,153,153,153,153,,,,,153,,,153,153,,,,,153', +',,153,153,153,153,,,,,153,153,,153,,153,153,,,153,153,,,,,153,153,153', +'153,153,153,,,,,,153,153,,,,,,,,,,,,,,,,,,,,,,,,,,,,153,153,,,,153,', +'153,153,152,153,,152,152,152,152,152,152,152,152,152,152,,,,,152,,,152', +'152,,,,,152,,,152,152,152,152,,,,,152,152,,152,,152,152,,,152,152,,', +',,152,152,152,152,152,152,,,,,,152,152,,,,,,,,,,,,,,,,,,,,,,,,,,,,152', +'152,,,,152,,152,152,110,152,,110,110,110,110,110,110,110,110,110,110', +',,,,110,,,110,110,,,,,110,,,110,110,110,110,,,,,110,110,,110,,110,110', +',,110,110,,,,,110,110,110,110,110,110,,,,,,110,110,,,,,,,,,,,,,,,,,', +',,,,,,,,,,110,110,,,,110,,110,110,151,110,,151,151,151,151,151,151,151', +'151,151,151,,,,,151,,,151,151,,,,,151,,,151,151,151,151,,,,,151,151', +',151,,151,151,,,151,151,,,,,151,151,151,151,151,151,,,,,,151,151,,,', +',,,,,,,,,,,,,,,,,,,,,,,,151,151,,,,151,,151,151,150,151,,150,150,150', +'150,150,150,150,150,150,150,,,,,150,,,150,150,,,,,150,,,150,150,150', +'150,,,,,150,150,,150,,150,150,,,150,150,,,,,150,150,150,150,150,150', +',,,,,150,150,,,,,,,,,,,,,,,,,,,,,,,,,,,,150,150,,,,150,,150,150,113', +'150,,113,113,113,113,113,113,113,113,113,113,,,,,113,,,113,113,,,,,113', +',,113,113,113,113,,,,,113,113,,113,,113,113,,,113,113,113,,,,113,113', +'113,113,113,113,,,,,,113,113,,,,,,,,,,,,,,,,,,,,,,,,,,,,113,113,,,,113', +',113,113,149,113,,149,149,149,149,149,149,149,149,149,149,,,,,149,,', +'149,149,,,,,149,,,149,149,149,149,,,,,149,149,,149,,149,149,,,149,149', +',,,,149,149,149,149,149,149,,,,,,149,149,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'149,149,,,,149,,149,149,0,149,,0,0,0,0,0,0,0,0,0,0,,,,,0,,,0,0,,,,,0', +',,0,0,0,0,,,,,0,0,,0,,0,0,,,0,0,0,,,,0,0,0,0,0,0,,,,,,0,0,,,,,,,,,,', +',,,,,,,,,,,,,,,,,0,0,0,0,,0,,0,0,148,0,,148,148,148,148,148,148,148', +'148,148,148,,,,,148,,,148,148,,,,,148,,,148,148,148,148,,,,,148,148', +',148,,148,148,,,148,148,,,,,148,148,148,148,148,148,,,,,,148,148,,,', +',,,,,,,,,,,,,,,,,,,,,,,,148,148,,,,148,,148,148,146,148,,146,146,146', +'146,146,146,146,146,146,146,,,,,146,,,146,146,,,,,146,,,146,146,146', +'146,,,,,146,146,,146,,146,146,,,146,146,,,,,146,146,146,146,146,146', +',,,,,146,146,,,,,,,,,,,,,,,,,,,,,,,,,,,,146,146,,,,146,,146,146,145', +'146,,145,145,145,145,145,145,145,145,145,145,,,,,145,,,145,145,,,,,145', +',,145,145,145,145,,,,,145,145,,145,,145,145,,,145,145,,,,,145,145,145', +'145,145,145,,,,,,145,145,,,,,,,,,,,,,,,,,,,,,,,,,,,,145,145,,,,145,', +'145,145,144,145,,144,144,144,144,144,144,144,144,144,144,,,,,144,,,144', +'144,,,,,144,,,144,144,144,144,,,,,144,144,,144,,144,144,,,144,144,,', +',,144,144,144,144,144,144,,,,,,144,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,144', +'144,,,,144,,144,144,143,144,,143,143,143,143,143,143,143,143,143,143', +',,,,143,,,143,143,,,,,143,,,143,143,143,143,,,,,143,143,,143,,143,143', +',,143,143,,,,,143,143,143,143,143,143,,,,,,143,143,,,,,,,,,,,,,,,,,', +',,,,,,,,,,143,143,,,,143,,143,143,122,143,,122,122,122,122,122,122,122', +'122,122,122,,,,,122,,,122,122,,,,,122,,,122,122,122,122,,,,,122,122', +',122,,122,122,,,122,122,,,,,122,122,122,122,122,122,,,,,,122,122,,,', +',,,,,,,,,,,,,,,,,,,,,,,,122,122,,,,122,,122,122,141,122,,141,141,141', +'141,141,141,141,141,141,141,,,,,141,,,141,141,,,,,141,,,141,141,141', +'141,,,,,141,141,,141,,141,141,,,141,141,,,,,141,141,141,141,141,141', +',,,,,141,141,,,,,,,,,,,,,,,,,,,,,,,,,,,,141,141,,,,141,,141,141,140', +'141,,140,140,140,140,140,140,140,140,140,140,,,,,140,,,140,140,,,,,140', +',,140,140,140,140,,,,,140,140,,140,,140,140,,,140,140,,,,,140,140,140', +'140,140,140,,,,,,140,140,,,,,,,,,,,,,,,,,,,,,,,,,,,,140,140,,,,140,', +'140,140,139,140,,139,139,139,139,139,139,139,139,139,139,,,,,139,,,139', +'139,,,,,139,,,139,139,139,139,,,,,139,139,,139,,139,139,,,139,139,,', +',,139,139,139,139,139,139,,,,,,139,139,,,,,,,,,,,,,,,,,,,,,,,,,,,,139', +'139,,,,139,,139,139,127,139,,127,127,127,127,127,127,127,127,127,127', +',,,,127,,,127,127,,,,,127,,,127,127,127,127,,,,,127,127,,127,,127,127', +',,127,127,,,,,127,127,127,127,127,127,,,,,,127,127,,,,,,,,,,,,,,,,,', +',,,,,,,,,,127,127,,,,127,,127,127,166,127,,166,166,166,166,166,166,166', +'166,166,166,,,,,166,,,166,166,,,,,166,,,166,166,166,166,,,,,166,166', +',166,,166,166,,,166,166,314,,314,,166,166,166,166,166,166,,,,,,166,166', +',,,,,,,,,,,,,,,314,314,,,,314,,,,314,,,166,166,,,,166,,166,166,,166', ',314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314', '314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314', -'314,115,,115,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,115,115,,,,115,,,,115,,,,', -',,,,,,,,,,,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115', -'115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115', -'115,115,115,85,,85,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,85,85,,,,85,,,,85,,', -',,,,,85,,,,,,,,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85', -'85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,71,,71,,,,,,,,,,', -',,,,,,,,,,,,,,,,,,,71,71,,,,71,,,,71,,,,,,,,,,,,,,,,71,71,71,71,71,71', -'71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71', -'71,71,71,71,71,71,87,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,87,,,,87,,', -',87,,,,,,,,87,,,,,,,,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87', -'87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,120,120,,,', -',,,,120,,,,,,,,,,,,,,,,120,120,120,120,120,120,120,120,120,120,120,120', -'120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120', -'120,120,120,120,120,120,257,257,,,,,,,,257,,,,,,,,,,,,,,,,257,257,257', -'257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257', -'257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,94,94,,', -',,,,,94,,,,,,,,,,,,,,,,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94', -'94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,224,,,,', -',,,224,,,,,,,,,,,,,,,,224,224,224,224,224,224,224,224,224,224,224,224', -'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224', -'224,224,224,224,224,224,284,,,,,,,,284,,,,,,,,,,,,,,,,284,284,284,284', -'284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284', -'284,284,284,284,284,284,284,284,284,284,284,284,284,284,308,,,,,,,,308', -',,,,,,,,,,,,,,,308,308,308,308,308,308,308,308,308,308,308,308,308,308', -'308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308', -'308,308,308,308,307,,,,,,,,307,,,,,,,,,,,,,,,,307,307,307,307,307,307', +'314,303,,303,,,,,,,,314,,,,,,,,,,,,,,,,,,,,,,303,303,,,,303,,,,303,', +',,,,,,,,,,,,,303,303,303,303,303,303,303,303,303,303,303,303,303,303', +'303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303', +'303,303,303,303,159,159,159,159,159,159,159,159,159,159,303,,,,159,', +',159,159,,,,,159,,,159,159,159,,,,,,,159,,159,,159,159,,,159,159,,,', +',159,159,159,159,159,159,,,,,,,,,,,302,302,302,302,302,302,302,302,302', +'302,,,,,302,,,302,302,,,,,302,159,159,302,302,302,159,,159,159,,159', +'302,,302,,302,302,,,302,302,,,,,302,302,302,302,302,302,,,,,,,,,,,312', +'312,312,312,312,312,312,312,312,312,,,,,312,,,312,312,,,,,312,302,302', +'312,312,312,302,,302,302,,302,312,,312,,312,312,,,312,312,,,,,312,312', +'312,312,312,312,,20,20,20,20,20,20,20,20,20,20,,,,,,,,,,,,,,,,,,20,20', +',,,,312,312,,,,312,,312,312,,312,20,,,,,,,,,,,,,,,,,,,24,24,24,24,24', +'24,24,24,24,24,,,,,24,,,24,24,,,,,24,,,24,24,24,24,,20,,20,20,24,20', +'24,,24,24,,,24,24,273,,273,,24,24,24,24,24,24,,,,,,24,24,,,,,,,,,,,', +',,,,273,273,,,,273,,,,273,,,24,24,,,,24,,24,24,,24,,273,273,273,273', +'273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273', +'273,273,273,273,273,273,273,273,273,273,273,273,273,273,319,,319,,,', +',,,,,,,,,,,,,,,,,,,319,,,,,,,319,319,,,,319,,,,319,,,,,,,,,,,,,,,319', +'319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319', +'319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319', +'318,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,318,,,,318,,,,318,,,,,,,,', +',,,,,,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318', +'318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318', +'318,318,313,,313,,,,,,,,,,,,,,,,,,,,,,,313,,,,,,,313,313,,,,313,,,,313', +',,,,,,,,,,,,,,313,313,313,313,313,313,313,313,313,313,313,313,313,313', +'313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313', +'313,313,313,313,197,,197,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,197,197,,,,197', +',,,197,,,,,,,,,,,,,,,197,197,197,197,197,197,197,197,197,197,197,197', +'197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197', +'197,197,197,197,197,197,193,,193,,,,,,,,,,,,,,,,,,,,,,,193,,,,,,,193', +'193,,,,193,,,,193,,,,,,,,,,,,,,,193,193,193,193,193,193,193,193,193', +'193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193', +'193,193,193,193,193,193,193,193,193,192,,192,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,,192,192,,,,192,,,,192,,,,,,,,,,,,,,,192,192,192,192,192,192,192', +'192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192', +'192,192,192,192,192,192,192,192,192,192,192,237,,237,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,237,237,,,,237,,,,237,,,,,,,,,,,,,,,237,237,237,237,237', +'237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237', +'237,237,237,237,237,237,237,237,237,237,237,237,237,230,,230,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,230,230,,,,230,,,,230,,,,,,,,,,,,,,,230,230,230', +'230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230', +'230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,301,,301', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,,301,301,,,,301,,,,301,,,,,,,,,,,,,,,301', +'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301', +'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301', +'112,,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,112,112,,,,112,,,,112,,,,,,,,', +',,,,,,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112', +'112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112', +'112,112,210,,210,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,210,210,,,,210,,,,210', +',,,,,,,,,,,,,,210,210,210,210,210,210,210,210,210,210,210,210,210,210', +'210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210', +'210,210,210,210,222,,222,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,222,222,,,,222', +',,,222,,,,,,,,,,,,,,,222,222,222,222,222,222,222,222,222,222,222,222', +'222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222', +'222,222,222,222,222,222,300,,300,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,300,300', +',,,300,,,,300,,,,,,,,,,,,,,,300,300,300,300,300,300,300,300,300,300', +'300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300', +'300,300,300,300,300,300,300,300,297,,297,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,297,297,,,,297,,,,297,,,,,,,,,,,,,,,297,297,297,297,297,297,297,297', +'297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297', +'297,297,297,297,297,297,297,297,297,297,84,,84,,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,84,84,,,,84,,,,84,,,,,,,84,,,,,,,,84,84,84,84,84,84,84,84,84', +'84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84', +'84,84,84,86,,86,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,86,86,,,,86,,,,86,,,,,', +',86,,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86', +'86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,87,,87,,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,87,87,,,,87,,,,87,,,,,,,87,,,,,,,,87,87,87,87,87,87', +'87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87', +'87,87,87,87,87,87,68,,68,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,68,68,,,,68,,', +',68,,,,,,,,,,,,,,,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68', +'68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,276,,276,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,276,276,,,,276,,,,276,,,,,,,,,,,,,,,276,276', +'276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276', +'276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,266', +',266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,266,266,,,,266,,,,266,,,,,,,,,,,,', +',,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266', +'266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266', +'266,264,,264,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,264,264,,,,264,,,,264,,,,', +',,,,,,,,,,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264', +'264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264', +'264,264,264,118,118,,,,,,,,118,,,,,,,,,,,,,,,118,118,118,118,118,118', +'118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118', +'118,118,118,118,118,118,118,118,118,118,118,118,92,92,,,,,,,,92,,,,', +',,,,,,,,,,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92', +'92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,256,256,,,,,,,,256,,,,', +',,,,,,,,,,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256', +'256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256', +'256,256,256,307,,,,,,,,307,,,,,,,,,,,,,,,307,307,307,307,307,307,307', '307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307', -'307,307,307,307,307,307,307,307,307,307,307,307,285,,,,,,,,285,,,,,', -',,,,,,,,,,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285', -'285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285', -'285,285,285,252,,,,,,,,,,,,,,,,252,252,252,252,252,252,252,252,252,252', -'252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252', -'252,252,252,252,252,252,252,252,101,,,,,,,,,,,,,,,,101,101,101,101,101', -'101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101', -'101,101,101,101,101,101,101,101,101,101,101,101,101,93,,,,,,,,,,,,,', -',,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93', -'93,93,93,93,93,93,93,93,93,93,93,93,93,216,216,216,216,216,216,216,216', -'216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216', -'216,216,216,216,216,216,216,216,216,216,225,225,225,225,225,225,225', -'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225', -'225,225,225,225,225,225,225,225,225,225,225,228,228,228,228,228,228', -'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228', -'228,228,228,228,228,228,228,228,228,228,228,228,253,253,253,253,253', -'253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253', -'253,253,253,253,253,253,253,253,253,253,253,253,253,232,232,232,232', -'232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232', -'232,232,232,232,232,232,232,232,232,232,232,232,232,232,220,220,220', -'220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220', -'220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,248,248', +'307,307,307,307,307,307,307,307,307,307,307,283,,,,,,,,283,,,,,,,,,', +',,,,,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283', +'283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283', +'283,283,284,,,,,,,,284,,,,,,,,,,,,,,,284,284,284,284,284,284,284,284', +'284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284', +'284,284,284,284,284,284,284,284,284,284,223,,,,,,,,223,,,,,,,,,,,,,', +',223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223', +'223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223', +'223,306,,,,,,,,306,,,,,,,,,,,,,,,306,306,306,306,306,306,306,306,306', +'306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306', +'306,306,306,306,306,306,306,306,306,250,,,,,,,,,,,,,,,250,250,250,250', +'250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250', +'250,250,250,250,250,250,250,250,250,250,250,250,250,250,91,,,,,,,,,', +',,,,,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91', +'91,91,91,91,91,91,91,91,91,91,91,91,91,91,109,,,,,,,,,,,,,,,109,109', +'109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109', +'109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,251', +'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251', +'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251', +'219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219', +'219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219', +'219,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', +'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', +'231,231,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248', '248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248', -'248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,235', -'235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235', -'235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235' ] - racc_action_check = arr = Array.new(11012, nil) +'248,248,248,215,215,215,215,215,215,215,215,215,215,215,215,215,215', +'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215', +'215,215,215,215,224,224,224,224,224,224,224,224,224,224,224,224,224', +'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224', +'224,224,224,224,224,227,227,227,227,227,227,227,227,227,227,227,227', +'227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227', +'227,227,227,227,227,227,244,244,244,244,244,244,244,244,244,244,244', +'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244', +'244,244,244,244,244,244,244' ] + racc_action_check = arr = Array.new(10897, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -776,350 +770,349 @@ clist = [ end racc_action_pointer = [ - 6628, 281, nil, nil, 202, 214, 406, nil, nil, 508, - nil, 610, 712, nil, nil, 814, nil, nil, nil, 916, - nil, 7833, 1120, nil, nil, 7897, nil, nil, nil, 137, - nil, nil, 1426, 443, nil, 33, 30, nil, 1834, nil, - nil, 271, nil, nil, nil, 2038, 2140, nil, nil, 2242, - nil, nil, nil, nil, 2344, nil, nil, nil, nil, 303, - 2548, nil, nil, nil, nil, nil, nil, 151, nil, 158, - 202, 9918, 3058, -2, 3262, 42, nil, 269, -5, 194, - nil, 166, nil, nil, 113, 9826, 180, 10010, 9550, 172, - 167, 2, 406, 10638, 10190, -46, 107, 129, 140, nil, - nil, 10587, 5506, nil, 100, 215, 229, 231, nil, nil, - nil, nil, 6016, 6118, 64, 9734, 168, 133, -2, 61, - 10070, 329, nil, 86, 232, 289, 7342, nil, 7444, 1936, - 7240, 319, 7138, 7036, 6934, 6832, 6730, 6526, 6424, 6322, - 6220, 5914, 5812, 5710, 5404, 5302, 5200, nil, 5098, 4996, - 4894, nil, 4792, 4690, 4588, 4486, 4384, 4282, 4180, 4078, - 3976, 3874, 3772, 7776, 3670, 83, 3568, 3466, 3364, -20, - nil, -2, 3160, nil, 236, nil, -36, 5, 169, nil, - nil, nil, nil, nil, nil, -14, 121, nil, 214, 2956, - 2854, 78, -2, 9090, 8630, nil, nil, nil, 74, 8170, - 2752, nil, nil, 2650, 113, 160, 180, 148, nil, nil, - nil, 236, 2446, 7546, -17, 8354, 10673, 1129, 1537, 82, - 10848, 925, 1453, 9458, 10249, 10708, 313, 1042, 10743, 517, - 1348, 9182, 10813, 619, 1246, 10918, 823, 1444, 8906, 415, - 1435, 207, 211, 1144, -17, 721, 1333, 65, 10883, 121, - 1027, 183, 10536, 10778, 1231, 341, 304, 10130, 64, nil, - 5, 196, 1732, 133, nil, nil, 173, nil, 9366, 8262, - nil, nil, nil, -29, nil, 1630, 1528, 8998, 9274, 1324, - 86, 90, nil, nil, 10308, 10485, nil, 1222, 1018, 200, - nil, nil, nil, -3, -50, 8814, 155, nil, nil, nil, - 304, 8722, 8446, 7963, 7595, nil, nil, 10426, 10367, nil, - 5608, 55, 256, 8029, 9642, 7687, nil, 8538, nil, nil, - 8078, nil, nil, nil ] + 6361, 325, 299, nil, nil, 301, nil, 402, nil, nil, + 503, nil, 604, 705, nil, nil, 806, nil, nil, nil, + 7885, 1008, nil, nil, 7948, 170, nil, nil, nil, 19, + nil, 227, 1513, nil, 1614, 197, nil, 1816, nil, nil, + 1917, 128, nil, nil, 2119, nil, nil, nil, nil, nil, + nil, nil, 2220, 175, 2422, nil, nil, nil, nil, nil, + nil, 268, nil, nil, nil, 39, 234, 2826, 9634, 147, + -2, 3230, nil, nil, 3331, 247, nil, nil, 90, nil, + nil, 236, -5, 127, 9361, 280, 9452, 9543, 289, 337, + 236, 10474, 10025, -38, 177, nil, 43, nil, -46, nil, + 5250, 5351, 190, 201, 210, nil, nil, nil, nil, 10524, + 5856, 63, 8906, 6159, 234, -2, 234, 177, 9966, 305, + nil, 91, 6967, 228, 160, nil, 131, 7371, 4240, 4846, + 28, 3634, 1412, 1311, 1109, 907, 200, 5553, 4038, 7270, + 7169, 7068, nil, 6866, 6765, 6664, 6563, nil, 6462, 6260, + 6058, 5957, 5755, 5654, 99, 5452, 5149, 5048, 4947, 7699, + 4745, -47, 4644, 4543, 4442, 4341, 7472, 4139, nil, nil, + -2, 3937, nil, 238, 179, nil, nil, nil, nil, 197, + 322, 57, nil, nil, -20, 3836, 84, 3735, nil, 114, + 120, -2, 8542, 8451, nil, nil, nil, 8360, nil, nil, + 3533, 3432, 179, 73, nil, 196, 34, -49, nil, nil, + 8997, 132, 3129, 3028, -12, 10699, 512, 1439, 255, 10594, + 411, 1032, 9088, 10316, 10734, 209, 1430, 10769, 916, 1133, + 8724, 10629, 714, 1234, 815, 1421, 188, 8633, 613, 1335, + 278, 310, 1320, 91, 10804, 114, 1219, 280, 10664, 1017, + 10424, 10559, 1118, 1522, 301, 3, 10084, 128, nil, 69, + 20, 126, 2927, nil, 9907, nil, 9816, nil, nil, 131, + nil, nil, -24, 7996, 2725, 2624, 9725, 2523, nil, 73, + 75, nil, nil, 10200, 10258, nil, 2321, 2018, 284, nil, + nil, nil, -2, 149, nil, nil, 65, 9270, nil, 1715, + 9179, 8815, 7764, 7611, nil, nil, 10374, 10142, nil, 247, + 133, 1210, 7829, 8269, 7520, nil, nil, nil, 8178, 8087, + nil, nil, nil ] racc_action_default = [ - -1, -186, -97, -9, -186, -179, -186, -98, -10, -186, - -106, -186, -186, -26, -11, -186, -107, -27, -12, -186, - -108, -186, -186, -13, -109, -46, -14, -110, -28, -120, - -15, -29, -186, -126, -31, -134, -186, -16, -141, -35, - -17, -186, -36, -34, -18, -186, -186, -37, -19, -186, - -47, -20, -128, -38, -186, -30, -21, -39, -32, -186, - -186, -22, -40, -2, -23, -104, -33, -186, -105, -3, - -186, -5, -186, -8, -186, -186, -99, -101, -186, -49, - -177, -179, -181, -183, -186, -158, -53, -186, -186, -55, - -54, -186, -127, -56, -45, -186, -186, -186, -120, -44, - -121, -57, -141, -131, -186, -186, -186, -186, -112, -116, - -117, -135, -141, -186, -186, -142, -186, -51, -186, -50, - -155, -186, -25, -186, -162, -186, -7, -4, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -186, -186, -186, -186, -59, -186, -186, - -186, -58, -186, -186, -186, -186, -186, -186, -186, -186, - -186, -186, -186, -94, -186, -186, -186, -186, -186, -52, - -130, -186, -186, -111, -48, -96, -186, -186, -186, -178, - -182, -180, -176, -157, -175, -186, -186, -119, -186, -186, - -186, -186, -186, -142, -186, -113, -114, -115, -186, -143, - -186, -140, -148, -186, -186, -151, -186, -186, -156, 324, - -24, -186, -186, -186, -186, -6, -86, -74, -63, -186, - -87, -75, -64, -184, -93, -88, -76, -65, -89, -77, - -66, -185, -90, -78, -67, -91, -79, -68, -159, -80, - -69, -60, -81, -70, -61, -82, -71, -62, -84, -83, - -72, -186, -92, -85, -73, -129, -186, -41, -186, -100, - -186, -186, -186, -186, -170, -122, -186, -123, -42, -43, - -125, -132, -118, -186, -133, -186, -186, -144, -145, -186, - -186, -186, -152, -163, -164, -165, -161, -186, -186, -160, - -103, -102, -95, -186, -186, -149, -186, -168, -171, -124, - -186, -147, -146, -103, -186, -153, -154, -167, -166, -174, - -186, -172, -186, -103, -186, -186, -136, -150, -173, -169, - -186, -138, -137, -139 ] + -1, -178, -185, -97, -10, -185, -105, -185, -26, -11, + -185, -106, -185, -185, -27, -12, -185, -107, -13, -108, + -185, -185, -14, -109, -45, -119, -15, -28, -16, -125, + -29, -133, -185, -31, -140, -185, -17, -185, -34, -18, + -185, -185, -35, -19, -185, -36, -46, -20, -127, -30, + -21, -37, -185, -185, -185, -22, -38, -32, -2, -23, + -39, -3, -104, -103, -33, -185, -185, -185, -5, -185, + -8, -185, -96, -9, -185, -178, -180, -182, -185, -176, + -98, -100, -185, -52, -157, -54, -185, -185, -53, -185, + -126, -55, -44, -185, -119, -43, -185, -120, -185, -130, + -140, -185, -185, -185, -185, -111, -115, -116, -134, -56, + -185, -185, -141, -140, -50, -185, -185, -49, -154, -185, + -25, -185, -7, -161, -185, -4, -51, -185, -185, -185, + -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, + -185, -185, -58, -185, -185, -185, -185, -57, -185, -185, + -185, -185, -185, -185, -185, -185, -185, -185, -185, -93, + -185, -185, -185, -185, -185, -185, -185, -185, -95, -129, + -185, -185, -110, -47, -48, -181, -177, -179, -175, -185, + -185, -185, -156, -174, -185, -185, -185, -185, -118, -185, + -185, -185, -141, -185, -112, -113, -114, -142, -139, -147, + -185, -185, -185, -185, -155, -150, -185, -185, 323, -24, + -6, -185, -185, -185, -185, -86, -74, -63, -185, -87, + -75, -64, -183, -92, -88, -76, -65, -89, -77, -66, + -184, -90, -78, -67, -79, -68, -59, -158, -80, -69, + -60, -81, -70, -61, -83, -82, -71, -185, -84, -72, + -91, -85, -73, -62, -128, -185, -40, -185, -99, -185, + -185, -185, -185, -169, -41, -124, -42, -122, -121, -185, + -131, -117, -185, -144, -185, -185, -143, -185, -132, -185, + -185, -151, -162, -163, -164, -160, -185, -185, -159, -102, + -101, -94, -185, -185, -167, -170, -185, -148, -123, -185, + -146, -145, -102, -185, -152, -153, -166, -165, -173, -185, + -171, -185, -102, -185, -185, -135, -168, -172, -149, -185, + -137, -136, -138 ] racc_goto_table = [ - 63, 173, 170, 70, 76, 264, 214, 79, 80, 85, - 95, 265, 86, 267, 87, 88, 82, 99, 89, 173, - 170, 125, 90, 59, 294, 93, 263, 91, 94, 92, - 114, 205, 182, 69, 260, 101, 81, 78, 83, nil, - nil, 115, nil, nil, 116, nil, nil, nil, 117, 118, - nil, nil, 119, nil, nil, nil, nil, 120, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 126, - 127, nil, nil, nil, nil, 169, nil, 174, 175, 191, - nil, nil, nil, 298, 179, 219, 99, 181, 183, nil, - 184, 299, 180, 123, 192, 188, nil, nil, nil, nil, - 289, nil, nil, nil, 198, 193, nil, 194, nil, nil, - nil, nil, nil, 309, nil, 193, 199, nil, nil, nil, - nil, nil, nil, 126, nil, nil, nil, nil, nil, 215, - nil, 216, 217, 218, nil, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - nil, 235, 236, 237, nil, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, nil, 252, - 253, 254, nil, 261, 99, 257, 99, 255, nil, 256, - 259, nil, nil, 173, 170, nil, 266, nil, nil, nil, - nil, 188, 268, 269, nil, nil, nil, nil, nil, nil, - 276, nil, nil, 277, nil, nil, 278, nil, nil, nil, - 282, nil, nil, nil, nil, 284, 285, 286, nil, nil, + 58, 83, 80, 84, 172, 95, 85, 169, 86, 87, + 214, 263, 88, 267, 268, 89, 90, 91, 76, 124, + 92, 66, 98, 172, 61, 53, 169, 79, 109, 111, + 112, 296, 261, 114, 205, 178, 115, 259, 75, 82, + 117, 77, nil, nil, nil, nil, nil, nil, 118, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 122, 116, 126, nil, nil, 125, 173, nil, nil, + 174, nil, nil, nil, 95, nil, nil, nil, 121, nil, + nil, nil, nil, nil, 218, nil, nil, nil, 295, nil, + 168, 186, 175, 298, nil, 191, 192, 193, 189, 177, + nil, 176, nil, nil, 288, 182, 197, 183, 203, 192, + nil, nil, nil, nil, nil, nil, nil, nil, 210, 308, + nil, 122, nil, 215, 216, 217, nil, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, nil, 230, + 231, 232, 233, nil, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, nil, 248, 249, + 250, 251, 252, 253, 260, 254, 255, 256, nil, 95, + 95, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 258, 264, nil, 266, nil, nil, 189, nil, 172, nil, + 269, 169, nil, nil, nil, nil, 273, 276, nil, nil, + nil, 275, nil, nil, nil, nil, nil, nil, 283, 284, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 261, nil, nil, 99, nil, nil, nil, nil, nil, - nil, 293, nil, 292, nil, 295, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 301, 302, - nil, 261, 304, 305, 306, nil, nil, nil, nil, nil, - 307, 308, nil, nil, nil, nil, nil, 311, nil, 312, - nil, nil, nil, 314, nil, nil, 315, nil, nil, nil, - nil, 318, nil, 317, nil, nil, 320 ] + nil, nil, nil, nil, nil, nil, nil, nil, 281, nil, + nil, nil, nil, nil, nil, 285, nil, nil, nil, nil, + nil, 260, nil, nil, nil, nil, nil, nil, nil, 95, + nil, nil, nil, nil, nil, nil, nil, nil, 297, nil, + 292, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 300, 301, 260, 303, nil, nil, nil, nil, nil, nil, + 291, nil, 306, 307, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 313, nil, nil, 314, nil, + 304, 305, nil, nil, nil, nil, nil, 318, 319, nil, + 317, nil, nil, nil, 309, nil, nil, 310 ] racc_goto_check = [ - 2, 32, 38, 4, 26, 45, 43, 5, 47, 5, - 36, 23, 5, 23, 5, 5, 49, 21, 5, 32, - 38, 42, 5, 1, 40, 5, 44, 6, 5, 33, - 39, 41, 46, 3, 25, 5, 48, 24, 50, nil, - nil, 5, nil, nil, 4, nil, nil, nil, 5, 5, - nil, nil, 5, nil, nil, nil, nil, 5, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 2, - 2, nil, nil, nil, nil, 5, nil, 5, 4, 36, - nil, nil, nil, 45, 47, 42, 21, 4, 4, nil, - 4, 23, 49, 3, 39, 2, nil, nil, nil, nil, - 43, nil, nil, nil, 39, 5, nil, 5, nil, nil, - nil, nil, nil, 45, nil, 5, 5, nil, nil, nil, - nil, nil, nil, 2, nil, nil, nil, nil, nil, 5, - nil, 5, 5, 5, nil, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - nil, 5, 5, 5, nil, 5, 5, 5, 5, 5, + 2, 5, 26, 5, 32, 21, 5, 38, 5, 5, + 43, 45, 5, 23, 23, 6, 33, 5, 49, 42, + 5, 4, 36, 32, 3, 1, 38, 47, 5, 39, + 5, 40, 44, 5, 41, 46, 5, 25, 48, 24, + 5, 50, nil, nil, nil, nil, nil, nil, 5, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 2, 4, 5, nil, nil, 2, 5, nil, nil, + 5, nil, nil, nil, 21, nil, nil, nil, 3, nil, + nil, nil, nil, nil, 42, nil, nil, nil, 45, nil, + 4, 36, 49, 23, nil, 39, 5, 5, 2, 4, + nil, 47, nil, nil, 43, 4, 5, 4, 39, 5, + nil, nil, nil, nil, nil, nil, nil, nil, 5, 45, + nil, 2, nil, 5, 5, 5, nil, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, nil, 5, - 5, 5, nil, 21, 21, 5, 21, 6, nil, 33, - 26, nil, nil, 32, 38, nil, 2, nil, nil, nil, - nil, 2, 5, 5, nil, nil, nil, nil, nil, nil, - 2, nil, nil, 5, nil, nil, 5, nil, nil, nil, - 4, nil, nil, nil, nil, 5, 5, 4, nil, nil, + 5, 5, 5, nil, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, nil, 5, 5, + 5, 5, 5, 5, 21, 6, 33, 5, nil, 21, + 21, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 26, 5, nil, 5, nil, nil, 2, nil, 32, nil, + 2, 38, nil, nil, nil, nil, 5, 5, nil, nil, + nil, 2, nil, nil, nil, nil, nil, nil, 5, 5, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 21, nil, nil, 21, nil, nil, nil, nil, nil, - nil, 2, nil, 4, nil, 5, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 5, 5, - nil, 21, 5, 4, 4, nil, nil, nil, nil, nil, - 5, 5, nil, nil, nil, nil, nil, 4, nil, 4, - nil, nil, nil, 5, nil, nil, 5, nil, nil, nil, - nil, 2, nil, 5, nil, nil, 5 ] + nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, + nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, + nil, 21, nil, nil, nil, nil, nil, nil, nil, 21, + nil, nil, nil, nil, nil, nil, nil, nil, 5, nil, + 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 5, 5, 21, 5, nil, nil, nil, nil, nil, nil, + 4, nil, 5, 5, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 5, nil, nil, 5, nil, + 4, 4, nil, nil, nil, nil, nil, 5, 5, nil, + 2, nil, nil, nil, 4, nil, nil, 4 ] racc_goto_pointer = [ - nil, 23, 0, 33, 3, 3, 6, nil, nil, nil, + nil, 25, 0, 24, 21, -4, -5, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, -12, nil, -175, 36, -144, 3, nil, nil, nil, - nil, nil, -72, 8, nil, nil, -19, nil, -71, -8, - -238, -85, -46, -119, -159, -180, -52, 3, 31, 11, - 33 ] + nil, -20, nil, -176, 37, -144, 0, nil, nil, nil, + nil, nil, -66, -4, nil, nil, -3, nil, -63, -5, + -231, -82, -46, -114, -152, -173, -43, 26, 37, 17, + 40 ] racc_goto_default = [ - nil, nil, 203, nil, nil, 71, 73, 3, 8, 14, - 18, 23, 26, 30, 37, 40, 44, 48, 51, 56, - 61, 64, 68, 100, nil, 75, nil, 10, 16, 20, - 24, 27, 108, 33, 109, 110, nil, 52, 103, nil, - nil, nil, nil, nil, nil, nil, 5, nil, nil, nil, + nil, nil, 200, nil, nil, 68, 70, 73, 4, 9, + 15, 18, 22, 26, 28, 36, 39, 43, 47, 50, + 55, 59, 62, 97, nil, 69, nil, 6, 11, 17, + 19, 23, 105, 29, 106, 107, nil, 48, 99, nil, + nil, nil, nil, nil, nil, nil, 1, nil, nil, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, - 0, 108, :_reduce_1, - 1, 108, :_reduce_2, - 1, 108, :_reduce_3, - 2, 108, :_reduce_4, - 1, 110, :_reduce_5, - 3, 110, :_reduce_6, - 2, 110, :_reduce_7, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 1, 112, :_reduce_none, - 3, 111, :_reduce_24, - 2, 111, :_reduce_25, - 1, 109, :_reduce_none, - 1, 109, :_reduce_none, - 1, 129, :_reduce_28, - 1, 129, :_reduce_29, - 1, 129, :_reduce_30, - 1, 129, :_reduce_31, - 1, 129, :_reduce_32, - 1, 129, :_reduce_33, - 1, 129, :_reduce_34, - 1, 129, :_reduce_35, - 1, 129, :_reduce_36, - 1, 129, :_reduce_37, - 1, 129, :_reduce_38, - 1, 129, :_reduce_39, - 1, 129, :_reduce_40, - 3, 117, :_reduce_41, - 3, 130, :_reduce_42, - 3, 130, :_reduce_43, - 1, 130, :_reduce_44, - 2, 121, :_reduce_45, - 1, 121, :_reduce_46, - 1, 128, :_reduce_47, - 2, 116, :_reduce_48, - 2, 116, :_reduce_49, - 2, 116, :_reduce_50, - 2, 116, :_reduce_51, - 2, 116, :_reduce_52, - 2, 116, :_reduce_53, - 2, 116, :_reduce_54, - 2, 116, :_reduce_55, - 2, 116, :_reduce_56, - 2, 116, :_reduce_57, - 2, 116, :_reduce_58, - 2, 116, :_reduce_59, - 3, 116, :_reduce_60, - 3, 116, :_reduce_61, - 3, 116, :_reduce_62, - 3, 116, :_reduce_63, - 3, 116, :_reduce_64, - 3, 116, :_reduce_65, - 3, 116, :_reduce_66, - 3, 116, :_reduce_67, - 3, 116, :_reduce_68, - 3, 116, :_reduce_69, - 3, 116, :_reduce_70, - 3, 116, :_reduce_71, - 3, 116, :_reduce_72, - 3, 116, :_reduce_73, - 3, 116, :_reduce_74, - 3, 116, :_reduce_75, - 3, 116, :_reduce_76, - 3, 116, :_reduce_77, - 3, 116, :_reduce_78, - 3, 116, :_reduce_79, - 3, 116, :_reduce_80, - 3, 116, :_reduce_81, - 3, 116, :_reduce_82, - 3, 116, :_reduce_83, - 3, 116, :_reduce_84, - 3, 116, :_reduce_85, - 3, 116, :_reduce_86, - 3, 116, :_reduce_87, - 3, 116, :_reduce_88, - 3, 116, :_reduce_89, - 3, 116, :_reduce_90, - 3, 116, :_reduce_91, - 3, 116, :_reduce_92, - 3, 116, :_reduce_93, - 2, 127, :_reduce_94, - 5, 115, :_reduce_95, - 2, 115, :_reduce_96, - 1, 132, :_reduce_97, - 1, 132, :_reduce_98, - 1, 131, :_reduce_99, - 3, 131, :_reduce_100, - 1, 133, :_reduce_none, - 4, 133, :_reduce_102, - 4, 126, :_reduce_103, - 1, 113, :_reduce_104, - 1, 113, :_reduce_105, - 1, 113, :_reduce_106, - 1, 113, :_reduce_107, - 1, 113, :_reduce_108, - 1, 113, :_reduce_109, - 1, 113, :_reduce_110, - 2, 113, :_reduce_111, - 2, 113, :_reduce_112, - 2, 139, :_reduce_113, - 2, 139, :_reduce_114, - 2, 139, :_reduce_115, - 1, 139, :_reduce_116, - 1, 139, :_reduce_117, - 3, 141, :_reduce_118, - 3, 135, :_reduce_119, - 0, 143, :_reduce_120, - 1, 143, :_reduce_121, - 3, 143, :_reduce_122, - 3, 143, :_reduce_123, - 4, 143, :_reduce_124, - 3, 143, :_reduce_125, - 1, 114, :_reduce_126, - 2, 114, :_reduce_127, - 1, 114, :_reduce_128, - 3, 125, :_reduce_129, - 2, 140, :_reduce_130, - 2, 140, :_reduce_131, - 3, 145, :_reduce_132, - 4, 144, :_reduce_133, - 1, 138, :_reduce_134, - 2, 138, :_reduce_135, - 6, 137, :_reduce_136, - 7, 137, :_reduce_137, - 6, 142, :_reduce_138, - 7, 142, :_reduce_139, - 3, 134, :_reduce_140, - 0, 146, :_reduce_141, - 1, 146, :_reduce_142, - 2, 146, :_reduce_143, - 3, 146, :_reduce_144, - 3, 146, :_reduce_145, - 4, 146, :_reduce_146, - 4, 146, :_reduce_147, - 2, 146, :_reduce_148, - 1, 147, :_reduce_149, - 3, 147, :_reduce_150, - 3, 119, :_reduce_151, - 4, 119, :_reduce_152, - 5, 119, :_reduce_153, - 3, 148, :_reduce_154, - 2, 120, :_reduce_155, - 3, 136, :_reduce_156, - 3, 122, :_reduce_157, - 2, 122, :_reduce_158, - 3, 122, :_reduce_159, - 4, 123, :_reduce_160, - 4, 123, :_reduce_161, - 1, 149, :_reduce_162, - 3, 149, :_reduce_163, - 2, 150, :_reduce_164, - 2, 150, :_reduce_165, - 3, 150, :_reduce_166, - 3, 150, :_reduce_167, - 5, 124, :_reduce_168, - 7, 124, :_reduce_169, - 1, 151, :_reduce_170, - 2, 151, :_reduce_171, - 3, 152, :_reduce_172, - 4, 152, :_reduce_173, + 0, 107, :_reduce_1, + 1, 107, :_reduce_2, + 1, 107, :_reduce_3, + 2, 107, :_reduce_4, + 1, 109, :_reduce_5, + 3, 109, :_reduce_6, + 2, 109, :_reduce_7, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 1, 111, :_reduce_none, + 3, 110, :_reduce_24, + 2, 110, :_reduce_25, + 1, 108, :_reduce_none, + 1, 108, :_reduce_none, + 1, 128, :_reduce_28, + 1, 128, :_reduce_29, + 1, 128, :_reduce_30, + 1, 128, :_reduce_31, + 1, 128, :_reduce_32, + 1, 128, :_reduce_33, + 1, 128, :_reduce_34, + 1, 128, :_reduce_35, + 1, 128, :_reduce_36, + 1, 128, :_reduce_37, + 1, 128, :_reduce_38, + 1, 128, :_reduce_39, + 3, 116, :_reduce_40, + 3, 129, :_reduce_41, + 3, 129, :_reduce_42, + 1, 129, :_reduce_43, + 2, 120, :_reduce_44, + 1, 120, :_reduce_45, + 1, 127, :_reduce_46, + 2, 115, :_reduce_47, + 2, 115, :_reduce_48, + 2, 115, :_reduce_49, + 2, 115, :_reduce_50, + 2, 115, :_reduce_51, + 2, 115, :_reduce_52, + 2, 115, :_reduce_53, + 2, 115, :_reduce_54, + 2, 115, :_reduce_55, + 2, 115, :_reduce_56, + 2, 115, :_reduce_57, + 2, 115, :_reduce_58, + 3, 115, :_reduce_59, + 3, 115, :_reduce_60, + 3, 115, :_reduce_61, + 3, 115, :_reduce_62, + 3, 115, :_reduce_63, + 3, 115, :_reduce_64, + 3, 115, :_reduce_65, + 3, 115, :_reduce_66, + 3, 115, :_reduce_67, + 3, 115, :_reduce_68, + 3, 115, :_reduce_69, + 3, 115, :_reduce_70, + 3, 115, :_reduce_71, + 3, 115, :_reduce_72, + 3, 115, :_reduce_73, + 3, 115, :_reduce_74, + 3, 115, :_reduce_75, + 3, 115, :_reduce_76, + 3, 115, :_reduce_77, + 3, 115, :_reduce_78, + 3, 115, :_reduce_79, + 3, 115, :_reduce_80, + 3, 115, :_reduce_81, + 3, 115, :_reduce_82, + 3, 115, :_reduce_83, + 3, 115, :_reduce_84, + 3, 115, :_reduce_85, + 3, 115, :_reduce_86, + 3, 115, :_reduce_87, + 3, 115, :_reduce_88, + 3, 115, :_reduce_89, + 3, 115, :_reduce_90, + 3, 115, :_reduce_91, + 3, 115, :_reduce_92, + 2, 126, :_reduce_93, + 5, 114, :_reduce_94, + 2, 114, :_reduce_95, + 1, 131, :_reduce_96, + 1, 131, :_reduce_97, + 1, 130, :_reduce_98, + 3, 130, :_reduce_99, + 1, 132, :_reduce_none, + 4, 132, :_reduce_101, + 4, 125, :_reduce_102, + 1, 112, :_reduce_103, + 1, 112, :_reduce_104, + 1, 112, :_reduce_105, + 1, 112, :_reduce_106, + 1, 112, :_reduce_107, + 1, 112, :_reduce_108, + 1, 112, :_reduce_109, + 2, 112, :_reduce_110, + 2, 112, :_reduce_111, + 2, 138, :_reduce_112, + 2, 138, :_reduce_113, + 2, 138, :_reduce_114, + 1, 138, :_reduce_115, + 1, 138, :_reduce_116, + 3, 140, :_reduce_117, + 3, 134, :_reduce_118, + 0, 142, :_reduce_119, + 1, 142, :_reduce_120, + 3, 142, :_reduce_121, + 3, 142, :_reduce_122, + 4, 142, :_reduce_123, + 3, 142, :_reduce_124, + 1, 113, :_reduce_125, + 2, 113, :_reduce_126, + 1, 113, :_reduce_127, + 3, 124, :_reduce_128, + 2, 139, :_reduce_129, + 2, 139, :_reduce_130, + 3, 144, :_reduce_131, + 4, 143, :_reduce_132, + 1, 137, :_reduce_133, + 2, 137, :_reduce_134, + 6, 136, :_reduce_135, + 7, 136, :_reduce_136, + 6, 141, :_reduce_137, + 7, 141, :_reduce_138, + 3, 133, :_reduce_139, + 0, 145, :_reduce_140, + 1, 145, :_reduce_141, + 2, 145, :_reduce_142, + 3, 145, :_reduce_143, + 3, 145, :_reduce_144, + 4, 145, :_reduce_145, + 4, 145, :_reduce_146, + 2, 145, :_reduce_147, + 1, 146, :_reduce_148, + 3, 146, :_reduce_149, + 3, 118, :_reduce_150, + 4, 118, :_reduce_151, + 5, 118, :_reduce_152, + 3, 147, :_reduce_153, + 2, 119, :_reduce_154, + 3, 135, :_reduce_155, + 3, 121, :_reduce_156, + 2, 121, :_reduce_157, + 3, 121, :_reduce_158, + 4, 122, :_reduce_159, + 4, 122, :_reduce_160, + 1, 148, :_reduce_161, + 3, 148, :_reduce_162, + 2, 149, :_reduce_163, + 2, 149, :_reduce_164, + 3, 149, :_reduce_165, + 3, 149, :_reduce_166, + 5, 123, :_reduce_167, + 7, 123, :_reduce_168, + 1, 150, :_reduce_169, + 2, 150, :_reduce_170, + 3, 151, :_reduce_171, + 4, 151, :_reduce_172, + 3, 151, :_reduce_173, 3, 152, :_reduce_174, - 3, 153, :_reduce_175, - 2, 154, :_reduce_176, - 1, 155, :_reduce_177, - 2, 155, :_reduce_178, - 0, 156, :_reduce_179, - 2, 156, :_reduce_180, - 1, 157, :_reduce_181, - 2, 157, :_reduce_182, - 2, 118, :_reduce_183, - 3, 118, :_reduce_184, - 3, 118, :_reduce_185 ] + 2, 153, :_reduce_175, + 1, 154, :_reduce_176, + 2, 154, :_reduce_177, + 0, 155, :_reduce_178, + 2, 155, :_reduce_179, + 1, 156, :_reduce_180, + 2, 156, :_reduce_181, + 2, 117, :_reduce_182, + 3, 117, :_reduce_183, + 3, 117, :_reduce_184 ] -racc_reduce_n = 186 +racc_reduce_n = 185 -racc_shift_n = 324 +racc_shift_n = 323 racc_token_table = { false => 0, @@ -1169,68 +1162,67 @@ racc_token_table = { :TYPEOF => 44, :SUPER => 45, :EXTENDS => 46, - :ARGUMENTS => 47, - :NEWLINE => 48, - :COMMENT => 49, - :JS => 50, - :INDENT => 51, - :OUTDENT => 52, - :UMINUS => 53, - :UPLUS => 54, - :NOT => 55, - "!" => 56, - "!!" => 57, - "~" => 58, - "++" => 59, - "--" => 60, - "*" => 61, - "/" => 62, - "%" => 63, - "?" => 64, - "." => 65, - "+" => 66, - "-" => 67, - "<<" => 68, - ">>" => 69, - ">>>" => 70, - "&" => 71, - "|" => 72, - "^" => 73, - "<=" => 74, - "<" => 75, - ">" => 76, - ">=" => 77, - "==" => 78, - "!=" => 79, - :IS => 80, - :ISNT => 81, - "&&" => 82, - "||" => 83, - :AND => 84, - :OR => 85, - "-=" => 86, - "+=" => 87, - "/=" => 88, - "*=" => 89, - "%=" => 90, - "||=" => 91, - "&&=" => 92, - "?=" => 93, - :ASSIGN => 94, - "->" => 95, - "=>" => 96, - "\n" => 97, - ";" => 98, - "," => 99, - "{" => 100, - "}" => 101, - "@" => 102, - "[" => 103, - "]" => 104, - "(" => 105, - ")" => 106 } + :NEWLINE => 47, + :COMMENT => 48, + :JS => 49, + :INDENT => 50, + :OUTDENT => 51, + :UMINUS => 52, + :UPLUS => 53, + :NOT => 54, + "!" => 55, + "!!" => 56, + "~" => 57, + "++" => 58, + "--" => 59, + "*" => 60, + "/" => 61, + "%" => 62, + "?" => 63, + "." => 64, + "+" => 65, + "-" => 66, + "<<" => 67, + ">>" => 68, + ">>>" => 69, + "&" => 70, + "|" => 71, + "^" => 72, + "<=" => 73, + "<" => 74, + ">" => 75, + ">=" => 76, + "==" => 77, + "!=" => 78, + :IS => 79, + :ISNT => 80, + "&&" => 81, + "||" => 82, + :AND => 83, + :OR => 84, + "-=" => 85, + "+=" => 86, + "/=" => 87, + "*=" => 88, + "%=" => 89, + "||=" => 90, + "&&=" => 91, + "?=" => 92, + :ASSIGN => 93, + "->" => 94, + "=>" => 95, + "\n" => 96, + ";" => 97, + "," => 98, + "{" => 99, + "}" => 100, + "@" => 101, + "[" => 102, + "]" => 103, + "(" => 104, + ")" => 105 } -racc_nt_base = 107 +racc_nt_base = 106 racc_use_result_var = true @@ -1298,7 +1290,6 @@ Racc_token_to_s_table = [ "TYPEOF", "SUPER", "EXTENDS", - "ARGUMENTS", "NEWLINE", "COMMENT", "JS", @@ -1416,49 +1407,49 @@ Racc_debug_parser = false # reduce 0 omitted -module_eval(<<'.,.,', 'grammar.y', 45) +module_eval(<<'.,.,', 'grammar.y', 44) def _reduce_1(val, _values, result) result = Expressions.new result end .,., -module_eval(<<'.,.,', 'grammar.y', 46) +module_eval(<<'.,.,', 'grammar.y', 45) def _reduce_2(val, _values, result) result = Expressions.new result end .,., -module_eval(<<'.,.,', 'grammar.y', 47) +module_eval(<<'.,.,', 'grammar.y', 46) def _reduce_3(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 48) +module_eval(<<'.,.,', 'grammar.y', 47) def _reduce_4(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 53) +module_eval(<<'.,.,', 'grammar.y', 52) def _reduce_5(val, _values, result) result = Expressions.wrap(val) result end .,., -module_eval(<<'.,.,', 'grammar.y', 54) +module_eval(<<'.,.,', 'grammar.y', 53) def _reduce_6(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 55) +module_eval(<<'.,.,', 'grammar.y', 54) def _reduce_7(val, _values, result) result = val[0] result @@ -1497,14 +1488,14 @@ module_eval(<<'.,.,', 'grammar.y', 55) # reduce 23 omitted -module_eval(<<'.,.,', 'grammar.y', 82) +module_eval(<<'.,.,', 'grammar.y', 81) def _reduce_24(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 83) +module_eval(<<'.,.,', 'grammar.y', 82) def _reduce_25(val, _values, result) result = Expressions.new result @@ -1515,217 +1506,217 @@ module_eval(<<'.,.,', 'grammar.y', 83) # reduce 27 omitted -module_eval(<<'.,.,', 'grammar.y', 94) +module_eval(<<'.,.,', 'grammar.y', 93) def _reduce_28(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 95) +module_eval(<<'.,.,', 'grammar.y', 94) def _reduce_29(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 96) +module_eval(<<'.,.,', 'grammar.y', 95) def _reduce_30(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 97) +module_eval(<<'.,.,', 'grammar.y', 96) def _reduce_31(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 98) +module_eval(<<'.,.,', 'grammar.y', 97) def _reduce_32(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 99) +module_eval(<<'.,.,', 'grammar.y', 98) def _reduce_33(val, _values, result) result = LiteralNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 100) +module_eval(<<'.,.,', 'grammar.y', 99) def _reduce_34(val, _values, result) - result = LiteralNode.new(val[0]) + result = LiteralNode.new(Value.new(true)) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 100) + def _reduce_35(val, _values, result) + result = LiteralNode.new(Value.new(false)) result end .,., module_eval(<<'.,.,', 'grammar.y', 101) - def _reduce_35(val, _values, result) + def _reduce_36(val, _values, result) result = LiteralNode.new(Value.new(true)) result end .,., module_eval(<<'.,.,', 'grammar.y', 102) - def _reduce_36(val, _values, result) + def _reduce_37(val, _values, result) result = LiteralNode.new(Value.new(false)) result end .,., module_eval(<<'.,.,', 'grammar.y', 103) - def _reduce_37(val, _values, result) + def _reduce_38(val, _values, result) result = LiteralNode.new(Value.new(true)) result end .,., module_eval(<<'.,.,', 'grammar.y', 104) - def _reduce_38(val, _values, result) - result = LiteralNode.new(Value.new(false)) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 105) def _reduce_39(val, _values, result) - result = LiteralNode.new(Value.new(true)) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 106) - def _reduce_40(val, _values, result) result = LiteralNode.new(Value.new(false)) result end .,., -module_eval(<<'.,.,', 'grammar.y', 111) - def _reduce_41(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 109) + def _reduce_40(val, _values, result) result = AssignNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 116) - def _reduce_42(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 114) + def _reduce_41(val, _values, result) result = AssignNode.new(ValueNode.new(val[0]), val[2], :object) result end .,., -module_eval(<<'.,.,', 'grammar.y', 117) - def _reduce_43(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 115) + def _reduce_42(val, _values, result) result = AssignNode.new(ValueNode.new(LiteralNode.new(val[0])), val[2], :object) result end .,., -module_eval(<<'.,.,', 'grammar.y', 118) - def _reduce_44(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 116) + def _reduce_43(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 123) - def _reduce_45(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 121) + def _reduce_44(val, _values, result) result = ReturnNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 124) - def _reduce_46(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 122) + def _reduce_45(val, _values, result) result = ReturnNode.new(ValueNode.new(Value.new('null'))) result end .,., -module_eval(<<'.,.,', 'grammar.y', 129) - def _reduce_47(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 127) + def _reduce_46(val, _values, result) result = CommentNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 136) +module_eval(<<'.,.,', 'grammar.y', 134) + def _reduce_47(val, _values, result) + result = OpNode.new(val[0], val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 135) def _reduce_48(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 137) +module_eval(<<'.,.,', 'grammar.y', 136) def _reduce_49(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 138) +module_eval(<<'.,.,', 'grammar.y', 137) def _reduce_50(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 139) +module_eval(<<'.,.,', 'grammar.y', 138) def _reduce_51(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 140) +module_eval(<<'.,.,', 'grammar.y', 139) def _reduce_52(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 141) +module_eval(<<'.,.,', 'grammar.y', 140) def _reduce_53(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 142) +module_eval(<<'.,.,', 'grammar.y', 141) def _reduce_54(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 143) +module_eval(<<'.,.,', 'grammar.y', 142) def _reduce_55(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 144) +module_eval(<<'.,.,', 'grammar.y', 143) def _reduce_56(val, _values, result) result = OpNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 145) +module_eval(<<'.,.,', 'grammar.y', 144) def _reduce_57(val, _values, result) - result = OpNode.new(val[0], val[1]) + result = OpNode.new(val[1], val[0], nil, true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 146) +module_eval(<<'.,.,', 'grammar.y', 145) def _reduce_58(val, _values, result) result = OpNode.new(val[1], val[0], nil, true) result @@ -1734,19 +1725,19 @@ module_eval(<<'.,.,', 'grammar.y', 146) module_eval(<<'.,.,', 'grammar.y', 147) def _reduce_59(val, _values, result) - result = OpNode.new(val[1], val[0], nil, true) + result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 149) +module_eval(<<'.,.,', 'grammar.y', 148) def _reduce_60(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 150) +module_eval(<<'.,.,', 'grammar.y', 149) def _reduce_61(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1760,7 +1751,7 @@ module_eval(<<'.,.,', 'grammar.y', 151) end .,., -module_eval(<<'.,.,', 'grammar.y', 153) +module_eval(<<'.,.,', 'grammar.y', 152) def _reduce_63(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1774,14 +1765,14 @@ module_eval(<<'.,.,', 'grammar.y', 154) end .,., -module_eval(<<'.,.,', 'grammar.y', 156) +module_eval(<<'.,.,', 'grammar.y', 155) def _reduce_65(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 157) +module_eval(<<'.,.,', 'grammar.y', 156) def _reduce_66(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1795,14 +1786,14 @@ module_eval(<<'.,.,', 'grammar.y', 158) end .,., -module_eval(<<'.,.,', 'grammar.y', 160) +module_eval(<<'.,.,', 'grammar.y', 159) def _reduce_68(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 161) +module_eval(<<'.,.,', 'grammar.y', 160) def _reduce_69(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1816,21 +1807,21 @@ module_eval(<<'.,.,', 'grammar.y', 162) end .,., -module_eval(<<'.,.,', 'grammar.y', 164) +module_eval(<<'.,.,', 'grammar.y', 163) def _reduce_71(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 165) +module_eval(<<'.,.,', 'grammar.y', 164) def _reduce_72(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 166) +module_eval(<<'.,.,', 'grammar.y', 165) def _reduce_73(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1844,21 +1835,21 @@ module_eval(<<'.,.,', 'grammar.y', 167) end .,., -module_eval(<<'.,.,', 'grammar.y', 169) +module_eval(<<'.,.,', 'grammar.y', 168) def _reduce_75(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 170) +module_eval(<<'.,.,', 'grammar.y', 169) def _reduce_76(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 171) +module_eval(<<'.,.,', 'grammar.y', 170) def _reduce_77(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1872,28 +1863,28 @@ module_eval(<<'.,.,', 'grammar.y', 172) end .,., -module_eval(<<'.,.,', 'grammar.y', 174) +module_eval(<<'.,.,', 'grammar.y', 173) def _reduce_79(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 175) +module_eval(<<'.,.,', 'grammar.y', 174) def _reduce_80(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 176) +module_eval(<<'.,.,', 'grammar.y', 175) def _reduce_81(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 177) +module_eval(<<'.,.,', 'grammar.y', 176) def _reduce_82(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1907,49 +1898,49 @@ module_eval(<<'.,.,', 'grammar.y', 178) end .,., -module_eval(<<'.,.,', 'grammar.y', 180) +module_eval(<<'.,.,', 'grammar.y', 179) def _reduce_84(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 181) +module_eval(<<'.,.,', 'grammar.y', 180) def _reduce_85(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 182) +module_eval(<<'.,.,', 'grammar.y', 181) def _reduce_86(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 183) +module_eval(<<'.,.,', 'grammar.y', 182) def _reduce_87(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 184) +module_eval(<<'.,.,', 'grammar.y', 183) def _reduce_88(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 185) +module_eval(<<'.,.,', 'grammar.y', 184) def _reduce_89(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 186) +module_eval(<<'.,.,', 'grammar.y', 185) def _reduce_90(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result @@ -1963,212 +1954,212 @@ module_eval(<<'.,.,', 'grammar.y', 187) end .,., -module_eval(<<'.,.,', 'grammar.y', 189) +module_eval(<<'.,.,', 'grammar.y', 188) def _reduce_92(val, _values, result) result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 190) +module_eval(<<'.,.,', 'grammar.y', 193) def _reduce_93(val, _values, result) - result = OpNode.new(val[1], val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 195) - def _reduce_94(val, _values, result) result = ExistenceNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 201) - def _reduce_95(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 199) + def _reduce_94(val, _values, result) result = CodeNode.new(val[1], val[4], val[3]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 202) - def _reduce_96(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 200) + def _reduce_95(val, _values, result) result = CodeNode.new([], val[1], val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 207) - def _reduce_97(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 205) + def _reduce_96(val, _values, result) result = :func result end .,., -module_eval(<<'.,.,', 'grammar.y', 208) - def _reduce_98(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 206) + def _reduce_97(val, _values, result) result = :boundfunc result end .,., -module_eval(<<'.,.,', 'grammar.y', 213) - def _reduce_99(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 211) + def _reduce_98(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 214) - def _reduce_100(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 212) + def _reduce_99(val, _values, result) result = val[0] << val[2] result end .,., -# reduce 101 omitted +# reduce 100 omitted -module_eval(<<'.,.,', 'grammar.y', 220) +module_eval(<<'.,.,', 'grammar.y', 218) + def _reduce_101(val, _values, result) + result = SplatNode.new(val[0]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 223) def _reduce_102(val, _values, result) result = SplatNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 225) +module_eval(<<'.,.,', 'grammar.y', 228) def _reduce_103(val, _values, result) - result = SplatNode.new(val[0]) + result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 230) +module_eval(<<'.,.,', 'grammar.y', 229) def _reduce_104(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 231) +module_eval(<<'.,.,', 'grammar.y', 230) def _reduce_105(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 232) +module_eval(<<'.,.,', 'grammar.y', 231) def _reduce_106(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 233) +module_eval(<<'.,.,', 'grammar.y', 232) def _reduce_107(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 234) +module_eval(<<'.,.,', 'grammar.y', 233) def _reduce_108(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 235) +module_eval(<<'.,.,', 'grammar.y', 234) def _reduce_109(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 236) +module_eval(<<'.,.,', 'grammar.y', 235) def _reduce_110(val, _values, result) - result = ValueNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 237) - def _reduce_111(val, _values, result) result = val[0] << val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 238) - def _reduce_112(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 236) + def _reduce_111(val, _values, result) result = ValueNode.new(val[0], [val[1]]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 243) - def _reduce_113(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 241) + def _reduce_112(val, _values, result) result = AccessorNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 244) - def _reduce_114(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 242) + def _reduce_113(val, _values, result) result = AccessorNode.new(val[1], :prototype) result end .,., -module_eval(<<'.,.,', 'grammar.y', 245) - def _reduce_115(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 243) + def _reduce_114(val, _values, result) result = AccessorNode.new(val[1], :soak) result end .,., -module_eval(<<'.,.,', 'grammar.y', 246) - def _reduce_116(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 244) + def _reduce_115(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 247) - def _reduce_117(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 245) + def _reduce_116(val, _values, result) result = SliceNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 252) - def _reduce_118(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 250) + def _reduce_117(val, _values, result) result = IndexNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 257) - def _reduce_119(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 255) + def _reduce_118(val, _values, result) result = ObjectNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 262) - def _reduce_120(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 260) + def _reduce_119(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 263) - def _reduce_121(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 261) + def _reduce_120(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 264) +module_eval(<<'.,.,', 'grammar.y', 262) + def _reduce_121(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 263) def _reduce_122(val, _values, result) result = val[0] << val[2] result @@ -2177,347 +2168,347 @@ module_eval(<<'.,.,', 'grammar.y', 264) module_eval(<<'.,.,', 'grammar.y', 265) def _reduce_123(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 267) - def _reduce_124(val, _values, result) result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 268) - def _reduce_125(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 266) + def _reduce_124(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 273) - def _reduce_126(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 271) + def _reduce_125(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 274) - def _reduce_127(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 272) + def _reduce_126(val, _values, result) result = val[1].new_instance result end .,., -module_eval(<<'.,.,', 'grammar.y', 275) - def _reduce_128(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 273) + def _reduce_127(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 280) - def _reduce_129(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 278) + def _reduce_128(val, _values, result) result = ExtendsNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 285) +module_eval(<<'.,.,', 'grammar.y', 283) + def _reduce_129(val, _values, result) + result = CallNode.new(val[0], val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 284) def _reduce_130(val, _values, result) result = CallNode.new(val[0], val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 286) +module_eval(<<'.,.,', 'grammar.y', 289) def _reduce_131(val, _values, result) - result = CallNode.new(val[0], val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 291) - def _reduce_132(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 296) - def _reduce_133(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 294) + def _reduce_132(val, _values, result) result = CallNode.new(Value.new('super'), val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 301) - def _reduce_134(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 299) + def _reduce_133(val, _values, result) result = ThisNode.new result end .,., -module_eval(<<'.,.,', 'grammar.y', 302) - def _reduce_135(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 300) + def _reduce_134(val, _values, result) result = ThisNode.new(val[1]) result end .,., +module_eval(<<'.,.,', 'grammar.y', 306) + def _reduce_135(val, _values, result) + result = RangeNode.new(val[1], val[4]) + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 308) def _reduce_136(val, _values, result) - result = RangeNode.new(val[1], val[4]) + result = RangeNode.new(val[1], val[5], true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 310) +module_eval(<<'.,.,', 'grammar.y', 314) def _reduce_137(val, _values, result) - result = RangeNode.new(val[1], val[5], true) + result = RangeNode.new(val[1], val[4]) result end .,., module_eval(<<'.,.,', 'grammar.y', 316) def _reduce_138(val, _values, result) - result = RangeNode.new(val[1], val[4]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 318) - def _reduce_139(val, _values, result) result = RangeNode.new(val[1], val[5], true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 323) - def _reduce_140(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 321) + def _reduce_139(val, _values, result) result = ArrayNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 328) - def _reduce_141(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 326) + def _reduce_140(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 329) - def _reduce_142(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 327) + def _reduce_141(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 330) - def _reduce_143(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 328) + def _reduce_142(val, _values, result) result = [val[1]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 331) +module_eval(<<'.,.,', 'grammar.y', 329) + def _reduce_143(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 330) def _reduce_144(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 332) +module_eval(<<'.,.,', 'grammar.y', 331) def _reduce_145(val, _values, result) - result = val[0] << val[2] + result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 333) +module_eval(<<'.,.,', 'grammar.y', 332) def _reduce_146(val, _values, result) result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 334) +module_eval(<<'.,.,', 'grammar.y', 333) def _reduce_147(val, _values, result) - result = val[0] << val[3] + result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 335) +module_eval(<<'.,.,', 'grammar.y', 338) def _reduce_148(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 340) +module_eval(<<'.,.,', 'grammar.y', 339) def _reduce_149(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 341) - def _reduce_150(val, _values, result) result = ([val[0]] << val[2]).flatten result end .,., -module_eval(<<'.,.,', 'grammar.y', 346) - def _reduce_151(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 344) + def _reduce_150(val, _values, result) result = TryNode.new(val[1], val[2][0], val[2][1]) result end .,., +module_eval(<<'.,.,', 'grammar.y', 345) + def _reduce_151(val, _values, result) + result = TryNode.new(val[1], nil, nil, val[3]) + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 347) def _reduce_152(val, _values, result) - result = TryNode.new(val[1], nil, nil, val[3]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 349) - def _reduce_153(val, _values, result) result = TryNode.new(val[1], val[2][0], val[2][1], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 354) - def _reduce_154(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 352) + def _reduce_153(val, _values, result) result = [val[1], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 359) - def _reduce_155(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 357) + def _reduce_154(val, _values, result) result = ThrowNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 364) - def _reduce_156(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 362) + def _reduce_155(val, _values, result) result = ParentheticalNode.new(val[1], val[0].line) result end .,., -module_eval(<<'.,.,', 'grammar.y', 369) - def _reduce_157(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 367) + def _reduce_156(val, _values, result) result = WhileNode.new(val[1], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 370) - def _reduce_158(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 368) + def _reduce_157(val, _values, result) result = WhileNode.new(val[1], nil) result end .,., -module_eval(<<'.,.,', 'grammar.y', 371) - def _reduce_159(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 369) + def _reduce_158(val, _values, result) result = WhileNode.new(val[2], Expressions.wrap(val[0])) result end .,., -module_eval(<<'.,.,', 'grammar.y', 378) - def _reduce_160(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 376) + def _reduce_159(val, _values, result) result = ForNode.new(val[0], val[3], val[2][0], val[2][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 379) - def _reduce_161(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 377) + def _reduce_160(val, _values, result) result = ForNode.new(val[3], val[2], val[1][0], val[1][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 384) - def _reduce_162(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 382) + def _reduce_161(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 385) - def _reduce_163(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 383) + def _reduce_162(val, _values, result) result = [val[0], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 390) - def _reduce_164(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 388) + def _reduce_163(val, _values, result) result = {:source => val[1]} result end .,., +module_eval(<<'.,.,', 'grammar.y', 389) + def _reduce_164(val, _values, result) + result = {:source => val[1], :object => true} + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 391) def _reduce_165(val, _values, result) - result = {:source => val[1], :object => true} + result = val[0].merge(:filter => val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 393) def _reduce_166(val, _values, result) - result = val[0].merge(:filter => val[2]) + result = val[0].merge(:step => val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 395) +module_eval(<<'.,.,', 'grammar.y', 399) def _reduce_167(val, _values, result) - result = val[0].merge(:step => val[2]) + result = val[3].rewrite_condition(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 401) def _reduce_168(val, _values, result) - result = val[3].rewrite_condition(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 403) - def _reduce_169(val, _values, result) result = val[3].rewrite_condition(val[1]).add_else(val[5]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 408) - def _reduce_170(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 406) + def _reduce_169(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 409) - def _reduce_171(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 407) + def _reduce_170(val, _values, result) result = val[0] << val[1] result end .,., +module_eval(<<'.,.,', 'grammar.y', 412) + def _reduce_171(val, _values, result) + result = IfNode.new(val[1], val[2], nil, {:statement => true}) + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 414) def _reduce_172(val, _values, result) result = IfNode.new(val[1], val[2], nil, {:statement => true}) @@ -2525,92 +2516,85 @@ module_eval(<<'.,.,', 'grammar.y', 414) end .,., -module_eval(<<'.,.,', 'grammar.y', 416) +module_eval(<<'.,.,', 'grammar.y', 415) def _reduce_173(val, _values, result) - result = IfNode.new(val[1], val[2], nil, {:statement => true}) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 417) - def _reduce_174(val, _values, result) result = val[2].add_comment(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 422) - def _reduce_175(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 420) + def _reduce_174(val, _values, result) result = IfNode.new(val[1], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 427) - def _reduce_176(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 425) + def _reduce_175(val, _values, result) result = val[1].force_statement result end .,., -module_eval(<<'.,.,', 'grammar.y', 432) - def _reduce_177(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 430) + def _reduce_176(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 433) - def _reduce_178(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 431) + def _reduce_177(val, _values, result) result = val[0].add_else(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 438) - def _reduce_179(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 436) + def _reduce_178(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'grammar.y', 439) - def _reduce_180(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 437) + def _reduce_179(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 444) - def _reduce_181(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 442) + def _reduce_180(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 445) +module_eval(<<'.,.,', 'grammar.y', 443) + def _reduce_181(val, _values, result) + result = val[0].add_else(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 448) def _reduce_182(val, _values, result) result = val[0].add_else(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 450) +module_eval(<<'.,.,', 'grammar.y', 449) def _reduce_183(val, _values, result) - result = val[0].add_else(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 451) - def _reduce_184(val, _values, result) result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true}) result end .,., -module_eval(<<'.,.,', 'grammar.y', 452) - def _reduce_185(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 450) + def _reduce_184(val, _values, result) result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true, :invert => true}) result end diff --git a/lib/coffee_script/rewriter.rb b/lib/coffee_script/rewriter.rb index 4a3845fc..c841f582 100644 --- a/lib/coffee_script/rewriter.rb +++ b/lib/coffee_script/rewriter.rb @@ -22,9 +22,9 @@ module CoffeeScript IMPLICIT_FUNC = [:IDENTIFIER, :SUPER, ')', :CALL_END, ']', :INDEX_END] IMPLICIT_END = [:IF, :UNLESS, :FOR, :WHILE, "\n", :OUTDENT] IMPLICIT_CALL = [:IDENTIFIER, :NUMBER, :STRING, :JS, :REGEX, :NEW, :PARAM_START, - :TRY, :DELETE, :TYPEOF, :SWITCH, :ARGUMENTS, + :TRY, :DELETE, :TYPEOF, :SWITCH, :TRUE, :FALSE, :YES, :NO, :ON, :OFF, '!', '!!', :NOT, - '->', '=>', '[', '(', '{'] + '@', '->', '=>', '[', '(', '{'] # The inverse mappings of token pairs we're trying to fix up. INVERSES = BALANCED_PAIRS.inject({}) do |memo, pair| diff --git a/test/fixtures/execution/test_arguments.coffee b/test/fixtures/execution/test_arguments.coffee index 00580a71..8ee45de0 100644 --- a/test/fixtures/execution/test_arguments.coffee +++ b/test/fixtures/execution/test_arguments.coffee @@ -30,3 +30,8 @@ func: -> arguments puts func(100) is 25 + + +# Arguments can be accessed as a property. +this.arguments: 10 +puts @arguments is 10